16/11/16

El dataLayer y la nueva implementación de Google Tag Manager



Desde hace poco menos de un mes GTM cambió la instrucción para instalar su código. Lo que antes era solo una pieza que se copiaba y pegaba después de <body>, ahora está compuesto por dos piezas de código: Script, que se pega después de <head>; y NoScript, que se pega después de <body>.

El funcionameinto de la plataforma y el código es el mismo. El cambio probablemente obedece a nuevas implementaciones desde Analytics 360, Optimizer y otras ramas del mundo Google. Poner el código en dos piezas en vez de una sola representa la misma cantidad de trabajo, así que no debería ser un problema...

El dolor de cabeza comienza cuando usamos un dataLayer impreso en el código antes de </head>. Con la instalación antigua el dataLayer funcionaba a la perfección; pero con la nueva, sencillamente dejó de funcionar.

Ahora, la solución es igual de simple. El dataLayer impreso en el código se debe resolver antes de llamar al código de GTM. Y el primer código de GTM, el Script, se instala justo después de <head>. Ergo, el código de dataLayer se deme incluir inmediatamente después de <head>, antes del código Script de GTM.

<!DOCTYPE html>
<html lang='es-ES'>
<head>
<script>
dataLayer = [];
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'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;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- otros códigos del sitio Web -->

</head>

<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

No hay comentarios:

Publicar un comentario