2012-07-07 15 views
12

Estoy trabajando en una extensión de Google Chrome que modifica ciertas páginas con un script de contenido. Para entender cuándo y dónde se aplican esos cambios, buscamos en Google Analytics, ya que ya lo usamos para otras propiedades web.Seguimiento de secuencias de comandos de contenido con Google Analytics

Incluimos la biblioteca ga.js mediante el archivo de manifiesto y activamos _trackPageview con una llamada de página síncrona cuando aplicamos un cambio a una página.

var pageTracker = _gat._getTracker("UA-our-UA");  
pageTracker._setDomainName("none"); 
pageTracker._setAllowLinker(true);  
pageTracker._trackPageview(window.location.href); 

Problema aquí es que cada página Ver en un dominio diferente cuenta como una nueva visita y visitante. ¿Hay alguna forma de eludir eso? Por ejemplo, utiliza una base de datos sqlite de extensión de cromo o un almacén de valores clave en el navegador para almacenar el ID de usuario único y visitar el dominio de id de manera independiente. es posible?

Gracias

Respuesta

18

No debe ejecutar ese código dentro de los sitios de otras personas. La configuración de Google Analytics es algo delicada y si un sitio tiene una implementación personalizada, es posible que la rompa para ese visitante.

Debe incluir Google Analytics en su propia página de antecedentes. Y luego, comuníquese desde content_script a su página de fondo cada vez que necesite rastrear un evento.

Al incluir la secuencia de comandos GA en su script de fondo es bueno porque no interfiere con otros códigos en el sitio web y siempre se ejecuta desde el mismo dominio y por lo tanto utilizará las mismas cookies que no causan visitas duplicadas.

Aquí hay más información sobre cómo instalar GA en su página de fondo.

http://code.google.com/chrome/extensions/tut_analytics.html

Y aquí está la documentación para pasar información de secuencias de comandos de contenido a la página de fondo:

http://code.google.com/chrome/extensions/messaging.html

+1

buena idea con la página de fondo. Déjame intentar eso. Vi las instrucciones de extensión de GA, pero parece que esto solo se aplica a las ventanas emergentes. Gracias por el consejo otra vez. Publiqué aquí si esto funciona. –

+1

Background Page lo hizo! –

+0

¿Está bien poner analíticas en el iframe que se está inyectando a través de la extensión de Chrome? –

3

Como dijo Eduardo en su respuesta que necesita una página de fondo, por lo que se puede hacer así:

en su manifest.json archivo:

, 
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'" 
, 

en content_scripts.js cada vez que desee realizar un seguimiento de eventos, enviar un mensaje a la página de fondo para desencadenar ese evento.

chrome.runtime.sendMessage({action: "yourEvent"}); 

background.js

(function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = 'https://ssl.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXXXX-X']); 

    // here we receive the coming message from the content script page 
    chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { 
     if(request.action == "yourEvent"){ 
      _gaq.push(['_trackEvent', "eventCategory", 'eventType']); 
     } 
    }); 
Cuestiones relacionadas