A continuación, se ofrece un consejo rápido en respuesta a una consulta en Twitter de Riccardo Mares. Al realizar un pequeño cambio en el Administrador de etiquetas de Google fragmento de contenedorpuedes tener el El elemento generado por el fragmento notifica a la página tan pronto como se haya descargado la biblioteca de Google Tag Supervisor.
Lo que haga con esta información depende de usted. Si trabaja directamente con el google_tag_manager
interfaz, por ejemplo, podría tener sentido no actuar hasta que se haya establecido la interfaz.
incógnita
El boletín informativo de Simmer
Suscríbete a la Boletín informativo de Simmer ¡Para recibir las últimas noticias y contenidos de Simo Ahava en tu bandeja de entrada de correo electrónico!
Consejo 78: Notificar a la página cuando se haya cargado el contenedor GTM
Debe agregar el siguiente código en el fragmento del contenedor: inmediatamente Después de la +i+dl;
y inmediatamente Antes de la f.parentNode.insertBefore
.
j.addEventListener('load', perform() {
var _ge = new CustomEvent('gtm_loaded', { bubbles: true });
d.dispatchEvent(_ge);
});
De esta manera, el fragmento de contenedor modificado se vería así:
(perform(w,d,s,l,i){w(l)=w(l)||();w(l).push({'gtm.begin':
new Date().getTime(),occasion:'gtm.js'});var f=d.getElementsByTagName(s)(0),
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;
j.addEventListener('load', perform() {
var _ge = new CustomEvent('gtm_loaded', { bubbles: true });
d.dispatchEvent(_ge);
});
f.parentNode.insertBefore(j,f);
})(window,doc,'script','dataLayer','GTM-XXXXX');
Ahora, cuando el contenedor de Google Tag Supervisor se haya descargado de los servidores de Google, el detector de carga enviará un nuevo evento de navegador llamado gtm_loaded
.
Si quieres crear un gancho para este evento, puedes usar el addEventListener()
método, de nuevo:
if (!!window.google_tag_manager) {
// Google Tag Supervisor has already been loaded
doSomethingWith(window.google_tag_manager);
} else {
window.addEventListener('gtm_loaded', perform() {
// Google Tag Supervisor has been loaded
doSomethingWith(window.google_tag_manager);
});
}
En este ejemplo, el código primero verifica si GTM ya se ha cargado. Si no es así, crea un nuevo receptor en el window
objeto que espera el gtm_loaded
evento para que aparezca en él. Una vez que se haya descargado e inicializado la biblioteca de Google Tag Supervisor, se envía el evento y el oyente de gtm_loaded
se apagará.