Entendiendo cómo funciona Measurement Protocol

El Measurement Protocol o Protocolo de Medición de Universal Analytics ayuda a medir las interacciones que han realizado los usuarios fuera del sitio web y/o aplicaciones móviles y que son relevantes para un negocio, como la apertura de un email, interacciones con dispositivos que no soportan JavaScript, códigos QR, entre otros. Gracias al Measurement Protocol se pueden medir e integrar datos offline y online, sacando mayor provecho al análisis de los datos al poder medir la trazabilidad del usuario por distintos canales.

Pero, ¿cómo funciona?, ¿cómo se puede entender de manera sencilla la forma en la que esto es posible?. En este post quiero compartir cómo se puede entender el Measurement Protocol para personas que no son técnicas, por supuesto no voy a profundizar demasiado en qué hay que hacer, solo en que los analistas entendamos lo que pueden llegar a hacer nuestros compañeros de IT para que podamos ver datos en Google Analytics de interacciones que hacen los usuarios en canales distintos al site o apps.

Para empezar, ¿cómo se envían los datos a Google Analytics?

Como seguramente ya habrás leído, el Measurement Protocol permite hacer peticiones HTTP para enviar datos al servidor de Universal Analytics.  Pero antes de hacer el envío de datos, hay que seguir un proceso en el que:

  • se define qué datos se quieren enviar a Google Analytics,
  • se extraen los datos que se quieren medir de la fuente de datos donde se encuentren,
  • se convierten estos datos en un formato que sea acorde con el Measurement Protocol para que sean procesados (payload),
  • se envían los datos formateados al servidor de Universal Analytics por medio de una petición HTTP

La definición de los datos a enviar a Google Analytics es vital para que el equipo de IT sepa qué datos debe extraer de la fuente de datos de la que queremos obtener información relevante para el negocio. 

¿Qué es un payload?

El payload es donde se incluyen los datos que se van a enviar a Google Analytics. El payload se parece a un query string de una URL y está compuesto por parámetros formados por una variable y un valor. Estos parámetros se separan con & (ampersand).

Un query string es la parte de la URL que viene después de un signo de interrogación (?)

Adjunto un ejemplo de un payload de Optimize Smart

v=1&tid=UA-123456-2&cid=36009a59-2a05-49e7-b826-2b884d0f935b&t=pageview&dp=%2Fhome

Donde,

v: es la versión del Measurement Protocol. Actualmente, el valor siempre será 1

tid: es donde se informa la propiedad de Google Analytics

cid: es el client ID

t: es el tipo de hit que se envía a Google Analytics. Los tipos de hit pueden ser: ‘pageview’, ‘event’, ‘social’, ‘screenview’, ‘timing’, ‘transaction’, ‘item’ y ‘exception’

dp: es el document path o ruta del documento. Por ejemplo /home o /productos/informatica-electronica.

En este ejemplo estamos enviando un hit de página vista de la página /home.

Los valores del payload deben estar codificados, por ejemplo para informar la página /home el valor de la variable es %2Fhome. Donde %2F es el slash “/”. Si quisiéramos enviar la página /productos/informatica-electronica, se vería informada de la siguiente manera: %2Fproductos%2Finformatica%2Delectronica (donde %2D es el guión medio). Más información sobre codificación aquí.

Hay varios parámetros definidos para cada tipo de datos que se quieran enviar a Google Analytics, en Google Developers hay una lista de referencias con los parámetros que se pueden utilizar.

Dependiendo el informe de Google Analytics donde queramos ver la información hay parámetros que deben informarse obligatoriamente en el payload. Estos parámetros obligatorios son:

  • Para todos los tipos de hits, siempre se deben informar:
    • v: versión del Measurement Protocol
    • tid: propiedad de Google Anlytics
    • cid: client ID
    • t: tipo de hit que se envía a Google Analytics.
  • En eventos:
    • ec: categoría del evento
    • ea: acción del evento
  • En ecommerce:
    • ti: ID de transacción. Es obligatorio para el hit de ‘transaction’ y el de ‘item’
    • in: nombre del producto. Es obligatorio para el hit de ‘item’

En enhanced ecommerce no hay parámetros obligatorios, pero aprovecho este apartado para comentar que para enviar datos del enhanced ecommerce se tiene que utilizar un hit de página vista o evento, no se puede utilizar los hits de ecommerce (‘transaction’ o ‘item’)

  • En interacciones sociales:
    • sn: red social
    • sa: acción social (compartir, seguir, etc)
    • st: target de la interacción social
  • En aplicaciones móviles:
    • an: Nombre de la aplicación
    • cd: Nombre del screen o pantalla

El envío de los datos:

La sintaxis para enviar los datos al servidor de Universal Analytics a través del Measurement Protocol es la siguiente:

User-Agent: user_agent_string

POST http://www.google-analytics.com/collect?[payload_data]

Adjunto un ejemplo de Optimize Smart incluyendo datos en user-agent y el payload con los datos definidos a enviar:

User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36

POST http://www.google-analytics.com/collect?v=1&tid=UA-123456-2&cid=36009a59-2a05-49e7-b826-2b884d0f935b&t=pageview&dp=%2Fhome

Donde,

  • El User-Agent se utiliza para alimentar las siguientes dimensiones en Google Analytics: navegador, plataforma y capacidades del móvil. Más información sobre user-agent aquí. En Google Developers se indica que si el valor se envía como not set las dimensiones que informa el user-agent no se van a computar.
  • El método de envío es una petición HTTP POST. Google indica que se puede utilizar el método GET, pero recomienda utilizar el método POST porque permite enviar mayor cantidad de datos
  • Y se envían los datos al endpoint que es http://www.google-analytics.com/collect, si se necesita enviar los datos de forma segura, se puede utilizar el siguiente endpoint: https://ssl.google-analytics.com/collect

Por lo tanto, el “transporte” de los datos por medio de Measurement Protocol tiene un cómo se envía y un a dónde se envía. El cómo se envía es con una petición o llamada HTTP POST y el a dónde se envían estos datos es al end point http://www.google-analytics.com/collect

Adjunto una imagen donde se puede ver mejor cómo se envían los datos al servidor de Universal Analytics.

envio de datos a UA Measurement Protocol

Fuente: Optimize Smart

El destino (endpoint) http://www.google-analytics.com/collect es donde se envían los datos a Google Analytics (Universal Analytics). Si hacemos debugging en cualquier web que tenga implementado Universal Analytics, veremos: este endpoint, el método de envío de la llamada HTTP, el user-agent y los parámetros de un payload. Al final, el Measurement Protocol ayuda a poder enviar datos al servidor de Universal Analytics como si de una implementación en un site se tratara.

Ejemplo GET y user agent_measurement protocol

 

Ejemplo end point - Measurement Protocol

Para ver los datos codificados, clica la opción “view URL encoded”

Ejemplo end point codificado_Measurement Protocol

Me gustaría explicar con más detalles técnicos, pero lamentablemente no puedo, lo que si puedo es compartir lo que he llegado a entender de cómo funciona el Measurement Protocol para que cuando nuestros compañeros de IT tengan que hacerlo, podamos ayudar como analistas en dos partes del proceso que mencioné al principio:

  • Definir los datos offline que queremos ver en Google Analytics.
  • Saber que si queremos ver información en los informes de eventos, ecommerce o en tracking de aplicaciones móviles en el payload tienen que ir informados obligatoriamente algunos parámetros para que los datos se puedan mostrar correctamente en Google Analytics.

 

 

Viviana Contreras

Soy licenciada en Empresariales por el Colegio de Estudios Superiores de Administración (CESA) de Colombia. Tengo un Máster en Digital Business en ESIC y otro Máster en Analítica Web en Kschool. Trabajo como Digital Analytics Consultant en DBi – Havas Media Group.

Pienso que siempre debes luchar por lo que quieres y sigo día a día la frase de Wayne Gretzky “fallarás el 100% de las cosas que no intentes”.

Twitter LinkedIn 

2 Responses to Entendiendo cómo funciona Measurement Protocol

  1. analisisweb julio 29, 2015 at 8:14 pm #

    Pedazo de articulaco!!
    Bravo!! Una pena que los “malos” utilicen el protocolo para liarnos…

  2. Vivicont julio 29, 2015 at 8:55 pm #

    Gracias Carlos! :) Sí, es una lástima que los “malos” se aprovechen de estas facilidades. Pero, si los “malos” no la lían, se pueden medir datos muy interesantes!

Hecho con cariño desde Madrid por las Madrid Geek Girls.