Uno de los problemas recurrentes al migrar a Google Tag Supervisor es cómo hacer que la transición sea lo más fluida posible. Por lo basic, es necesario acordar con los desarrolladores el momento en que se elimina el código antiguo, y en ese momento debemos asegurarnos de que las etiquetas GTM apunten al código UA correcto. Por supuesto, este es solo un caso de uso para las migraciones, ya que algunas personas realizan toda la migración en un entorno de prueba y a otras simplemente no les importa si pierden un poco de datos en el camino.
Sin embargo, la forma más sencilla de realizar la transición es automatizarla. Haga que GTM verifique de alguna manera la existencia de GA en la página y, si lo encuentra, las etiquetas no se activarán. Tan pronto como ya no se encuentre el GA en la página, GTM puede fortalecerse.
Esta es una discusión recurrente en nuestro Google+. Comunidad GTMpero esta vez comenzó en Twitter.
En esta publicación, quería abordar lo que mi buen amigo Peter está buscando, y creo que es la mejor manera de hacerlo.
Ahora, hay varias formas de verificar el GA en la página, que incluyen:
-
Comprobar la existencia de cookies GA
- Muy poco confiable ya que las cookies persisten después de eliminar el código de la página y si la migración es a la misma versión de GA, las cookies son las mismas.
-
Serializar plantilla de página y coincidencia de expresiones regulares para cargadores de scripts o llamadas a objetos de seguimiento
- Solución loca (que se me acaba de ocurrir) y no es muy confiable. Falla completamente si los scripts se cargan en archivos JS externos
-
Pide a los desarrolladores que agreguen
dataLayer.push()
que indica el estado de GA en la página- Con diferencia, es la solución más confiable que existe, pero la razón por la que la mayoría de la gente busca una solución como esta es para minimizar intervención del desarrollador
-
comprobar la existencia de
ga
o_gaq
objetos- Funciona bien si puede soportar la espera a que se cargue Y ejecute la biblioteca de seguimiento, ya que los objetos se crean en el código de la biblioteca. En algunos sitios, esta espera puede ser demasiado larga, especialmente si la biblioteca se carga de forma asincrónica. Además, puede cambiar el nombre del
ga
objeto, por lo que necesitarías identificarlo primero.
- Funciona bien si puede soportar la espera a que se cargue Y ejecute la biblioteca de seguimiento, ya que los objetos se crean en el código de la biblioteca. En algunos sitios, esta espera puede ser demasiado larga, especialmente si la biblioteca se carga de forma asincrónica. Además, puede cambiar el nombre del
Pero quiero mostrarte cuál creo que es la mejor manera de hacerlo. Siéntete libre de no estar de acuerdo, y yo también estoy en desacuerdo conmigo, ¡especialmente en un sitio complejo! En mi opinión, la siguiente solución realiza la verificación lo antes posible y es lo más confiable posible, aunque existen algunas salvedades.
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.
Solución: busque el
Esta solución busca la existencia de elementos, donde se cargan ga.js, Analytics.js o dc.js.
Creo que es bastante confiable, ya que si el elemento del script se inyecta en la forma adecuada, significa que las bibliotecas se han cargado o han comenzado a cargarse.
Aquí está la macro de JavaScript personalizada para esto. Devuelve “verdadero” si encuentra alguna de las bibliotecas que especifique.
operate() {
var scripts = doc.getElementsByTagName('script'),
ga = true, // set to false should you do not wish to verify for ga.js
ua = true, // set to false should you do not wish to verify for analytics.js
dc = false, // set to false should you do not wish to verify for dc.js
i = len = 0;
if (ga || ua || dc) {
for (i, len = scripts.size; i < len; i += 1) {
if (ga && /www.google-analytics.com/ga.js/.check(scripts(i).src)) {
return true;
}
if (ua && /www.google-analytics.com/analytics.js/.check(scripts(i).src)) {
return true;
}
if (dc && /stats.g.doubleclick.internet/dc.js/.check(scripts(i).src)) {
return true;
}
}
}
return false;
}
Entonces ahora puedes agregar {{verificar secuencias de comandos}} es igual a verdadero como activador de bloqueo en sus etiquetas GTM GA.
Este método tiene algunas deficiencias. Por ejemplo, la página puede cargar las bibliotecas pero no realizar ningún seguimiento. Esto puede ser cierto para configuraciones heredadas, donde solo el _gaq.push()
Los comandos se han eliminado, pero la carga de la biblioteca permanece. Naturalmente, tendrá que auditar el sitio antes de implementar esta solución.
Probé esto un par de veces en mi propio weblog, usándolo como regla de bloqueo de mi etiqueta de página vista, y pareció funcionar bien.
Naturalmente, dado que el fragmento ga.js se agrega al last de la página (script estúpido y sincrónico), es posible que deba esperar a gtm.dom antes de verificar la regla de bloqueo, especialmente en páginas pesadas.
Resumen
Recuerde, esta solución easy es solo para la transición de GA en la página a GTM. Lo único que hace es evitar que tengas que sentarte frente a una computadora, actualizando constantemente la página para ver si se ha eliminado el código de la página.
Una migración requiere vigilancia, por lo que incluso si logra automatizar la transición con esta solución, deberá estar alerta durante todo el proceso. Pero esto ya lo sabías (no quería parecer condescendiente).