verificar si el object _gaq de Google Analytics está cargado y disponible

Tengo un código de seguimiento de Google Analytics (GATC) en mi sitio que desencadena llamadas al método _gaq.push en el código de Google.

En el caso de que GA no esté disponible o _gaq no se haya cargado, quiero asegurarme de que no tengo ningún error de JavaScript en la página. Al verificar que _gaq no sea idéntico a 'indefinido', ¿bastará con verificar si está disponible y es este x-browser? He echado un vistazo a la documentation de Google, pero no menciona nada sobre esto.

Estoy al tanto de comprobar si el object es null , pero no estoy seguro de si es necesario.

 if (typeof(_gaq) !== 'undefined') { _gaq.push(['_trackEvent', 'Downloaded Video', 'Yes']); _gaq.push(['rollup._trackEvent', 'Downloaded Video', 'Yes']); } 

    6 Solutions collect form web for “verificar si el object _gaq de Google Analytics está cargado y disponible”

    En el código javascript recomendado que obtienes de los análisis, incluye la siguiente fila:

     var _gaq = _gaq || []; 

    Por lo tanto, la matriz siempre debe estar disponible si mantiene esta línea en su código. Si agrega el código de análisis más tarde, simplemente agregue la línea anterior antes de sus scripts principales y funcionará.

    Tenga en count que este fragment es inofensivo incluso si definió _gaq antes, ya que solo lo define como un nuevo array si no está definido previamente.

    Esta es una gran manera de utilizar scripts asynchronouss, la matriz se define primero localmente y puede enviar commands a esta matriz siempre que lo necesite. Cuando se carga el script de análisis, puede usar esos commands cuando lo desee. Así que no es necesario verificar si la matriz no está definida o algo así.

    Si está utilizando Universal Analytics ( analytics.js ), cambie esto:

     _gaq.push(['_trackEvent', 'Downloaded Video', 'Yes']); 

    a esto:

     ga('send', 'event', 'Downloaded Video', 'Yes'); 

    Por lo general, no es necesario que verifique si está definido porque el fragment de código de Google Analytics lo hace por usted. Sin embargo, si está haciendo algo así como el seguimiento de events en otras secciones de su stie, ya que la pregunta sugiere que a veces es bueno comprobar si el script está cargado, ya que es asynchronous.

    Escribí un plugin de jQuery plugin para GA y quería verificar el código, ya sea que GA estuviera o no instalado, antes de intentar insert datos en él. Esto fue para cubrir el caso de que alguien trató de usar el complemento sin GA instalado o antes de que GA se inicializara.

     if (typeof(_gaq) == 'undefined') { console.error("Google Analytics is not installed"); } 

    Cuando se carga ga.js , define un object global window._gat (Mind the T en vez de Q), solo necesita probar si está definido o no (pero tenga en count que se carga de forma asíncrona, entonces puede retrasar su testing) .

    Como dijo @David , siempre que tengas var _gaq = _gaq || []; var _gaq = _gaq || []; fragment definido anteriormente, está bien y no hay necesidad de comprobar si _gaq está indefinido.

    El motivo por el cual _gaq se definió como una matriz vacía si no estaba definido previamente es para que tenga un método push . Esto permite que su código analítico se ejecute antes de que se cargue el código GA, o en algunos casos cuando no está disponible.

    Cuando GA se carga, _gaq se networkingefinirá como un object con un método push , y se ejecutará cualquier contenido existente de la antigua matriz _gaq.

    Es posible que desee agregar el seguimiento de events en js, pero el CMS solo agrega Google Analytics para visitantes no registrados o ciertas páginas. La siguiente comprobación para la function funcionará:

     if (typeof(ga) === 'function') { ga('send', 'event', 'what', 'has', 'happened'); } 
    Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.