Este artículo es un artículo invitado de alguien de la comunidad analítica a quien realmente admiro. Daniel Wilkerson es desarrollador de análisis en Generosouna empresa que tengo en alta estima. Dan es uno de los expertos en análisis técnico más inteligentes que existen, y una gran parte de los fantásticos guiones y trucos que produce Bounteous (casi a diario) han sido orquestados por él. Así que me complace darle la palabra a Dan, para que pueda contarles todo sobre el uso del molesto doc.write()
método en tu Administrador de etiquetas de Google ¡Etiquetas HTML personalizadas!
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.
A menudo, las etiquetas de advertising de terceros utilizan un método arcaico de JavaScript llamado doc.write
. Este método ha sido el preferido para agregar scripts y píxeles de seguimiento dinámico porque es universalmente suitable y predecible. Sin embargo, doc.write
no jugará bien con asincrónicamente guiones cargados. Dado que Google Tag Supervisor obliga a que los scripts se carguen de forma asincrónica y que muchas etiquetas de advertising de terceros dependen de doc.write
hubo un momento en el que no podíamos implementar estas etiquetas en GTM. Afortunadamente, los ingenieros de Google añadieron una solución inteligente que reemplaza temporalmente doc.write
con una alternativa segura mientras se ejecuta su etiqueta.
En el pasado, doc.write
estaba destinado a agregar contenido dinámico usando JavaScript entre el momento en que su navegador comenzó a cargar la página y el momento en que la página completó la carga. Este contenido se ejecutaría sincrónicamente de forma predeterminada, lo que haría que el resultado fuera predecible y la implementación sencilla. Muchos proveedores de tecnología publicitaria llegaron a confiar en esta funcionalidad para cargar fragmentos y agregar píxeles de seguimiento, en lugar de utilizar métodos más asincrónicos. Esto hizo que escribir sus etiquetas fuera easy y conciso, pero la ejecución sincrónica de fragmentos haría que el navegador dejara de renderizar y ralentizara la velocidad common de la página en un sitio.
Desafortunadamente, cuando doc.write
se llama después de que el documento termina de cargarse, el navegador sobrescribe el documento existente y lo reemplaza solo con el contenido del doc.write
llamar (leer: todo su sitio se convierte en una página en blanco). En el pasado, esto no period gran cosa; codificaríamos nuestro puñado de etiquetas de advertising directamente en el HTML de la página.
Desafortunadamente, las mejores prácticas modernas de ingeniería de front-end, la proliferación de píxeles de seguimiento y los sistemas de administración de etiquetas no combinan bien con este paradigma. Hoy en día, todo es cuestión de asincronicidad y velocidad. Así, vemos el quid de la cuestión: los proveedores quieren simplicidad y confiabilidad, y los ingenieros quieren velocidad y eficiencia.
Los ingenieros de Google han implementado una solución a este problema en Google Tag Supervisor. Cuando una etiqueta HTML personalizada en Google Tag Supervisor requiere doc.write
para ejecutarse, Google Tag Supervisor reemplaza temporalmente el valor predeterminado doc.write
funcionar con una versión segura propia. Cuando queremos usar una etiqueta que usa doc.write
simplemente debemos marcar una casilla en la interfaz de creación de etiquetas HTML personalizadas. Habilitar esta característica nos permitirá implementar de forma segura cualquier etiqueta que use doc.write
incluso después de que nuestra página se haya cargado. Aquí es donde hacer eso en tu etiqueta:
¡Nota! Debería no marque la casilla si la etiqueta o cualquier script cargado por la etiqueta no no usar
doc.write
.
Una vez que la etiqueta ha terminado de dispararse, GTM cambia doc.write
volver al navegador predeterminado. ¿Se pregunta si tiene una etiqueta que no utiliza esta función? Si ve un error en su consola como el siguiente:
es posible que tenga una etiqueta en GTM que se activa de forma asincrónica e intenta usar doc.write
. Intente localizar esta etiqueta rápidamente y corríjala. (Sugerencia: si hace clic en la línea de referencia en el extremo derecho de la interfaz, Chrome lo llevará directamente al código infractor):
De lo contrario, tus píxeles de seguimiento no funcionarán. GTM incluso le avisará de forma proactiva si intenta guardar una etiqueta con doc.write
que no tiene esta característica habilitada:
Esta característica nos permite tener nuestro pastel y comérselo también. Antes, teníamos que entregar las etiquetas de forma sincrónica. Entrega las mismas etiquetas que antes y puede brindarles a sus usuarios una mejor experiencia.
El reemplazo de GTM para doc.write
usos doc.createElement
y luego agrega el resultado en un div oculto en la parte inferior de la página. Negocia el traspaso vinculándose al onload
evento o el onreadystatechange
evento del elemento.
¡Y eso es todo! Simplemente marque la casilla y su etiqueta se cargará de forma asincrónica y se escribirá en el documento, como se esperaba. Recuerde, si ve una advertencia en las Herramientas para desarrolladores, eso significa que puede haber una etiqueta HTML personalizada con doc.write
que no tiene esa casilla marcada.
Resumen (por Simo)
En primer lugar, felicitaciones a Dan por ofrecer un repaso exhaustivo de algo que la mayoría de nosotros damos por sentado. La pequeña y sencilla casilla de verificación de la etiqueta HTML personalizada esconde una gran complejidad, diseñada únicamente para hacer la vida más fácil a cualquiera que tenga que trabajar con píxeles publicitarios.
Es un poco extraño que algo tan essential para las empresas hoy en día (los ingresos por publicidad) dependa de una tecnología que es, en el mejor de los casos, dudosa. En mi libro, doc.write
está en el mismo grupo de maldad que los iframes, las balizas de imágenes de un solo píxel, las cookies de navegador (de terceros) y todas las demás tecnologías diseñadas para facilitar la propagación de malware.
Pero este artículo no trataba sobre publicidad. Se trataba de ampliar otra maniobra técnica interesante que los ingenieros de Google Tag Supervisor han realizado para asegurarse de que la herramienta atienda a todos sus públicos objetivo (cualesquiera que sean) con la misma precisión. ¡Así que gracias Dan!
Como siempre, la sección de comentarios está aquí para ti.