Hay una nueva versión de esta publicación para GTM V2 aquí.
Mientras repasaba mi publicación anterior sobre el uso condiciones climáticas para segmentar datos En Google Analytics, comencé a pensar en problemas de rendimiento. Dado que estoy usando una dimensión personalizada de alcance de visita, parece inútil que envíe los detalles del clima con cada carga de página. Las probabilidades de que el clima cambie drásticamente durante una visita son escasas (a menos que vivas en el Reino Unido), y todavía tengo que encontrar una buena razón para cambiar mi comportamiento en el lugar porque el clima cambió de llovizna a aguacero.
Con Common Analytics, no es posible extraer datos de sesión de la cookie establecida por el servicio. Esto se debe a que el ID de cliente personalizado establecido por la cookie es “utilizado posteriormente por Google Analytics”. servidores para calcular el visitante, sesióny datos de campaña”. (el énfasis es mío; ver la guía del desarrollador). Esto es relevante porque quiero que mi JavaScript personalizado solo dispara una vez, al comienzo de una sesión (visita). No tengo manera de usar el _Georgia-cookie ya que, como se ha dicho anteriormente, calcula los datos de la sesión en las entrañas de los servidores de Google Analytics.
Para superar este problema, creo una cookie de sesión personalizada, que imita las propiedades predeterminadas de la cookie de Google Analytics principalmente porque también caduca después de 30 minutos de inactividad.
Tenga en cuenta que esta no es una emulación 100 % precisa de cómo Google Analytics calcula las sesiones. La cookie no tiene en cuenta el cambio de fuentes de campaña que, de forma predeterminada, siempre inician una nueva sesión en Google Analytics. La investigación preliminar muestra que la precisión es de alrededor del 95 %, aunque también estoy recibiendo algunos accesos perdidos a la API Open Climate, lo que significa que la cookie es en realidad aún más precisa.
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.
como funciona
Intento ser genérico aquí, pero usaré un ejemplo de la vida actual del script meteorológico que creé anteriormente.
Así es como funciona básicamente la implementación:
-
Cuando el visitante llega al sitio, mi secuencia de comandos busca una cookie llamada “sesión” utilizando el Administrador de etiquetas de Google. Macro de sesión
-
Si la cookie existe, significa que todavía hay una sesión activa y no se ejecuta ningún código excepto para restablecer el tiempo de vencimiento de la cookie.
-
Si la cookie no existe, significa que la sesión ha caducado, y en este caso ejecuto el código meteorológico y luego creo la cookie.
Si intenta crear una cookie que ya existe, sobrescribe la cookie unique. Es por eso que puedo usar el mismo código de configuración de cookies para (2) y (3) anteriores.
Dado que es una cookie de origen y que está configurada en la ruta raíz del sitio (/), no hay riesgo de sobrescribir otras cookies (a menos que algún otro complemento del sitio tenga una cookie llamada “sesión”).
El código de las cookies
Mi solución unique de seguimiento del tiempo se activaba en cada carga de página. Esto crea una gran carga para la API y el rendimiento del sitio (ya que el script de la API puede tardar casi medio segundo en activarse). Mi nuevo código se ve así:
<script>
if (typeof({{Session alive}}) == "undefined") {
// Climate monitoring code right here
}
var d = new Date();
d.setTime(d.getTime()+1800000);
var expires = "expires="+d.toGMTString();
doc.cookie = "session=1; "+expires+"; path=/";
script>
Como puede ver, el código antiguo sólo se ejecuta si la macro {{Sesión viva}} no está definido, es decir, la cookie no existe.
Crear la macro es muy easy:
-
Crea una nueva macro llamada “Sesión viva”
-
Establecer tipo de macro Galleta de primera fiesta
-
Establecer nombre de cookie “sesión”
Entonces, lo que debe hacer aquí es crear una macro que devuelva el valor de la cookie de “sesión”. Siempre que se hace referencia a esta macro en el código, en realidad estás utilizando el valor de la cookie.
Cuando sondeo esta cookie en el código anterior, en realidad solo me interesa si esta cookie existe o no. Por eso uso el if(typeof({{Sesión activa}}) == “indefinido”) estructura. Si la cookie no existe, la macro no tiene referencia, lo que significa que es una indefinido estructura.
Finalmente, independientemente de si la cookie se encontró o no, se crea una cookie denominada “sesión” con una fecha de vencimiento de 30 minutos en el futuro (1.800.000 milisegundos después).
Professionals y contras
Bueno, obviamente, hacer que la engorrosa llamada API se energetic solo una vez por sesión es una victoria para el rendimiento del sitio y para el análisis de “mejores prácticas”. porque ya tengo un visita-dimensión de alcance, sería contrario a la intuición enviarla con cada visita a la página.
Los principales problemas, a mi modo de ver, tienen que ver con el mantenimiento. Si tiene un tiempo de vencimiento personalizado para la sesión de GA, debe recordar modificar también la fecha de vencimiento (ahora 1800000 milisegundos) en la cookie de “sesión”, si desea que imite el rendimiento de Google Analytics. Además, si ya tiene una cookie llamada “sesión” activada en su sitio, debe cambiarle el nombre.
Se discutió un problema más en los párrafos iniciales de esta publicación. Esta no es una emulación 100 % precisa del cálculo de la sesión de Google Analytics, por lo que tendrá un ligero margen de error en el número de visitas con el tiempo como dimensión frente al número de visitas a su sitio. No dudes en explorar cómo hacer que el cálculo de una sesión de GA sea aún más preciso y escríbeme si encuentras algo interesante 🙂
Realmente me gustaría poder vincular mi código al actual _Georgia-cookie, pero hasta donde yo sé, eso no es posible.
EDITAR: Ver esta publicación en enviando dimensiones personalizadas con eventos para una implementación más inteligente de la thought anterior.