Mon. Feb 17th, 2025

Common Analytics: enviar dimensión personalizada con evento


(Última actualización en marzo de 2014) Esta publicación es el capítulo last de una trilogía. El máximo refinamiento, por así decirlo. Todo comenzó con mi incursión en las aguas turbias del contexto, cuando probé cómo datos meteorológicos podría utilizarse para proporcionar información adicional sobre las visitas al sitio. Cuando escribí esa publicación, tenía dos dudas: 1) enviar la llamada API con cada vista de página afecta negativamente el rendimiento del sitio, y 2) forzar la llamada de vista de página a esperar a que se full la llamada API afecta la calidad de la visita. métrica.

Arreglé (1) a mi satisfacción en una publicación posterior en utilizando una cookie personalizada para realizar la llamada a la API solo una vez por sesión. Esto significó que el rendimiento del sitio mejoró, ya que la llamada a la API (que puede tardar hasta 500 ms) se realiza solo una vez por visita. Además, tiene un efecto positivo en el cálculo de visitas, ya que se minimiza la posibilidad de que la llamada de vista de página no se full debido a problemas en la cadena de eventos.

Sin embargo, todavía no estaba contento con haber cualquier código ejecutado antes de la vista de la página, porque las vistas de la página son algo que no desea comprometer debido, por ejemplo, a problemas con una API de terceros (como la API meteorológica).

Entonces hice lo que debería haber estado haciendo todo el tiempo.


incógnita


El boletín a fuego lento

Suscríbete al Boletín a fuego lento para recibir las últimas noticias y contenido de Simo Ahava en su bandeja de entrada de correo electrónico.

También se pueden enviar dimensiones personalizadas con eventos

Aquí hay un poco de historia. Tengo un script que sondea una API meteorológica, con la ubicación del visitante como parámetro. El script recoge las condiciones climáticas de dicha ubicación, y las pasa a un alcance de la visita dimensión personalizada, que luego se envía a Google Analytics.

Una dimensión personalizada con alcance para visitas (o sesiones) significa que solo tienes que enviarlo una vez por visita. Todos los accesos anteriores y posteriores (visitas a páginas, eventos, transacciones) de la visita también se anotan con la dimensión. Naturalmente, es una obviedad enviar la dimensión sólo una vez por sesión, de ahí la necesidad de una cookie personalizada (nuevamente, consulte esta publicación).

Además, como puedes enviar la misma dimensión personalizada con un evento¿por qué utilizar una vista de página? Un evento sin interacción hace lo mismo ADEMÁS, puede comparar la cantidad de eventos climáticos y visitas del mismo período de tiempo para ver si hay discrepancias que indiquen problemas con la llamada API.

Otra ventaja, si utiliza GTM, es que no necesita etiquetas de vista de página separadas y confusas (una con la dimensión meteorológica y otra sin ella), sino que puede tener su etiqueta de vista de página básica para el seguimiento y una etiqueta de evento para enviar el datos meteorológicos (que se activa solo cuando se realiza la llamada API).

Implementación

Bueno, necesito volver al código de mis dos publicaciones anteriores. Así es como debería verse la NUEVA etiqueta HTML personalizada (recuerde, debe cargar jQuery y el servicio geoPlugin para que esto funcione).

<script>
  if (typeof({{Session alive}}) == "undefined") {
    var lat = geoplugin_latitude();
    var lon = geoplugin_longitude();
    var climate = "";
    var weatherAPI = "http://api.openweathermap.org/knowledge/2.5/climate?lat="+lat+"&lon="+lon;

    $.ajax({
      kind : "POST",
      dataType : "jsonp",
      url : weatherAPI + "&items=metric&callback=?",
      async : true,
      success : operate(knowledge) {
        climate = knowledge.climate(0).predominant ;
        dataLayer.push({"climate": climate});
      },error : operate(errorData) {
        console.log("Error whereas getting climate knowledge :: "+errorData.standing);
        dataLayer.push({"climate": "Undefined"});       
      },full : operate() {
        dataLayer.push({"occasion": "weatherDone"});
      }
    });
  }
  
  var d = new Date();
  d.setTime(d.getTime()+1800000);
  var expires = "expires="+d.toGMTString();
  doc.cookie = "session=1; "+expires+"; path=/";    
         
script>

Aquí está el orden de los eventos:

  1. Compruebe si existe una cookie llamada “sesión”

  2. si galleta no existe, utilizar la ubicación del visitante para consultar las condiciones climáticas en dicha ubicación

  3. Guardar las condiciones climáticas en la variable “clima” de la capa de datos

  4. Enviar el evento “weatherDone” a la capa de datos, independientemente de que la llamada a la API sea exitosa o no.

  5. Finalmente (independientemente de si la cookie existió o no), restablezca la cookie de “sesión” para que caduque en 30 minutos.

Por lo tanto, no es necesario un segundo evento “noWeather” para la vista de página sin clima. Puede simplemente enviar la vista de página regular con cada carga de página y luego usar “weatherDone” como regla de activación para el evento (recuerde convertirlo en un hit sin interacción) que envía la variable “climate” como una dimensión personalizada. Muy easy.

Finalmente, deberá configurar su etiqueta de evento. Recuerde, debe crear la dimensión personalizada en la sección de administración de Google Analytics (ver aquí para una guía). Tome nota del número de índice asignado a su nueva dimensión personalizada a nivel de sesión.

A continuación, cree una nueva etiqueta de evento. Ahora, puedes tener lo que quieras como campos de evento, pero asegúrate de que Golpe sin interacción está configurado para Verdadero. En este ejemplo, envío mi tipo de clima y temperatura personalizados (son macros variables de capa de datos), pero como puede ver, Golpe sin interacción es Verdadero. Esto es importante porque entonces este fenómeno meteorológico no afecta el cálculo de la tasa de rebote (porque ahora no cube nada sobre la participación, ¿verdad?).

Y así es como se ven las configuraciones de dimensiones personalizadas. Los configuras al last de la etiqueta, debajo Más configuraciones.

Conclusión

Creo que ya lo tengo todo controlado. Se me ocurrió un método para

  1. sondear API externas para obtener información contextual

  2. envía esta información solo una vez por visita

  3. utilizar un evento de no interacción para anotar las visitas con esta dimensión

Los próximos pasos serían asegurarse de que la API sea confiable y rápida. Además, tal vez debería existir algún tipo de activador de tiempo de espera para la llamada API, con un valor “meteorológico”: “Indefinido” enviado si la llamada API no se completa.

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *