javascript - tag - ¿Cómo Google Analytics recopila sus datos?
google tag manager (8)
Sí, sé que tienes que insertar el javascript de Google Analytics en tu página.
Pero, ¿cómo se envía la información recopilada al servidor de Google Analytics?
Por ejemplo, una solicitud AJAX no será posible debido a la configuración de seguridad de los navegadores (scripts de dominios cruzados).
Tal vez alguien ya haya echado un vistazo al confuso código javascript de google?
// editar: ver comentario en la parte inferior
* Ok, encuentre una respuesta durante una discusión con un amigo mío :-) Las informaciones para Google Analytics se envían de tres formas:
- Elemento de lista
- La solicitud HTTP se puede analizar con toda la información de los encabezados http.
- Una cookie es reconocida por el servidor de Google Analytics.
- Se realiza una llamada ajax dentro del javascript incrustado para enviar información como resolución de pantalla, versión de flash player, etc. Estas informaciones no se transmiten a través de los encabezados http. * Esto es posible, ya que la llamada ajax se realiza en el contexto del javascript incorporado, por lo que no es una secuencia de comandos de dominio cruzado. Esto fue un error en mi razonamiento. **
Algunas buenas respuestas aquí que individualmente tienden a acertar en un método u otro para enviar los datos. Sin embargo, hay una referencia valiosa que siento que falta en las respuestas anteriores y cubre todos los métodos.
Google se refiere a los diferentes métodos de envío de datos ''mecanismos de transporte''
En la documentación de Analytics.js, Google menciona los tres mecanismos principales de transporte que utiliza para enviar datos.
Esto especifica el mecanismo de transporte con el que se enviarán los hits. Las opciones son ''beacon'', ''xhr'' o ''image''. De forma predeterminada, analytics.js intentará descubrir el mejor método basado en el tamaño de éxito y las capacidades del navegador. Si especifica ''baliza'' y el navegador del usuario no admite el método
navigator.sendBeacon
, volverá a ''imagen'' o ''xhr'' según el tamaño del golpe.
- Una de las formas comunes y estándar de enviar algunos de los datos a Google (que se muestra en la respuesta de Thinker) es agregar los datos como parámetros GET a un píxel de seguimiento. Esto caería dentro de la categoría a la que Google llama transporte de ''imagen''.
- En segundo lugar, Google puede usar el método de transporte ''beacon'' si el navegador del cliente lo admite. Este es a menudo mi método preferido porque intentará enviar la información inmediatamente. O en las palabras de Google:
Esto es útil en los casos en los que desea realizar un seguimiento de un evento justo antes de que un usuario navegue fuera de su sitio, sin retrasar la navegación.
- El mecanismo de transporte ''xhr'' es la tercera forma en que Google Analytics puede enviar datos a casa, y el mecanismo de transporte particular que se utiliza puede depender de cosas como el tamaño del golpe. (No estoy seguro de qué otros factores intervienen en GA para decidir el mecanismo de transporte óptimo a utilizar)
En caso de que tenga curiosidad sobre cómo forzar a GA a usar un mecanismo de transporte específico, aquí hay un fragmento de código de ejemplo que obliga a este evento a enviarse como un ''faro'':
ga(''send'', ''event'', ''click'', ''download-me'', {transport: ''beacon''});
Espero que esto ayude.
Además, si tiene curiosidad sobre este tema porque le gustaría capturar y enviar estos datos a su propio sitio, le recomiendo que cree un enlace para el envío de Google Analytics, que le permite capturar la carga útil y AJAX para usted. servidor.
ga(function(tracker) {
// Grab a reference to the default sendHitTask function.
originalSendHitTask = tracker.get(''sendHitTask'');
// Modifies sendHitTask to send a copy of the request to a local server after
// sending the normal request to www.google-analytics.com/collect.
tracker.set(''sendHitTask'', function(model) {
var payload = model.get(''hitPayload'');
originalSendHitTask(model);
var xhr = new XMLHttpRequest();
xhr.open(''POST'', ''/index.php?task=mycollect'', true);
xhr.send(payload);
});
});
Cuando la página html solicita un archivo ga.js, el protocolo http envía gran cantidad de datos, sobre IP, referencias, nombres, idioma, sistema. No hay necesidad de usar ajax.
Pero todavía no se puede lograr algunos datos de esta manera, por lo que el script GA coloca la imagen en html con parámetros adicionales, observe este ejemplo:
http://www.google-analytics.com/__utm.gif?utmwv=4.3&utmn=1464271798&utmhn=www.example.com&utmcs=UTF-8&utmsr=1920x1200&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=10.0%20r22&utmdt=Page title&utmhid=1805038256&utmr=0&utmp=/&utmac=cookie value
Esta es una imagen en blanco, a veces llamada píxel de seguimiento , que GA coloca en HTML.
Es bastante fácil decirlo usando algo como la pestaña Red de Firebug.
Ajax no es necesario, ya que no se están obteniendo datos de Google. Simplemente codifican la información en una cadena de consulta y luego cargan un gif transparente usándolo.
La página web de Google Analytics proporciona información detallada sobre cómo recopila datos el servidor de Google Analytics. http://code.google.com/apis/analytics/docs/concepts/gaConceptsOverview.html
Todos los datos de Google Analytics se recopilan y empaquetan en la cadena de consulta de la URL de la solicitud y se envían al servidor de Google Analytics. La solicitud http se realiza mediante una imagen gif (http://www.google-analytics.com/__utm.gif) activada por Google Analytics JS.
Para ampliar otras respuestas muy buenas, Google proporciona una API para rastrear las "vistas de página virtuales" asíncronas que los propios autores del sitio web informan en sus scripts a Google.
_gaq.push([''_trackPageview'', ''my_unique_action'']);
Lo proporcionan, por lo que es posible realizar un seguimiento de las acciones que no forman parte de las vistas de página normales y las solicitudes de http.
Guía de seguimiento asíncrono: http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html#Syntax
Sin mirar el código, asumo que sus datos se recopilan de los encabezados HTTP que reciben en la solicitud asíncrona.
Recuerde que la mayoría de los navegadores envían datos como el sistema operativo, la plataforma, el navegador, la versión, la configuración regional, etc. También tienen la IP para que puedan estimar su ubicación. Y asumo que tienen algún tipo de algoritmo inteligente para decidir si usted es un visitante único o no.
El tiempo en el sitio probablemente se calcula utilizando un evento onUnload()
.
Use la extensión de Firefox http o firebug para averiguar qué solicitudes HTTP envía el navegador y qué respuestas recibe.
No sé cómo funciona Google Analytics, pero una posibilidad es hacer que el navegador descargue una imagen: <img src="http://my-analytics.com" width="1" height="1">
(con un solo píxel transparente), y registre todos los encabezados de solicitud HTTP (por ejemplo, Referer:
en el lado del servidor.