Google Tag Manager
Instalar mediante GTM sin editar el tema.
Puedes instalar Growth Lab con Google Tag Manager si no quieres —o no puedes— editar el tema.
Etiqueta de instalación
- En GTM: Etiquetas → Nueva → HTML personalizado.
- Pega:
<script>
(function () {
var s = document.createElement('script');
s.src = 'https://cdn.growthlab.ecomlabs.dev/sdk/v1/bootstrap.js';
s.setAttribute('data-site-id', 'site_TU_ID_PUBLICO');
s.async = true;
document.head.appendChild(s);
})();
</script>
- Activador: Inicialización de consentimiento - Todas las páginas, o Initialization si no usas modo de consentimiento.
- Publica.
No uses document.write
GTM inyecta HTML personalizado después de que el documento se haya parseado. document.write en ese momento borra la página. El fragmento de arriba usa createElement/appendChild, que es seguro en cualquier momento.
Elige el activador más temprano posible
Cuanto más tarde se cargue el SDK, mayor la probabilidad de que el visitante vea el contenido original antes de la variante. All Pages funciona, pero Initialization dispara antes.
Ten en cuenta que GTM en sí añade latencia. Si el parpadeo te preocupa, la etiqueta directa en el <head> siempre será más rápida.
Registrar conversiones desde GTM
Nueva etiqueta HTML personalizado, activada por tu evento de compra:
<script>
window.GrowthLab = window.GrowthLab || { q: [] };
GrowthLab.conversion('purchase', {
value: {{DL - value en unidades mínimas}},
currency: {{DL - currency}},
orderId: {{DL - transaction_id}}
});
</script>
Cuidado con las unidades
value debe ir en unidades mínimas (centavos). El dataLayer de e-commerce de GA4 usa decimales (29.99), así que necesitas convertir:
<script>
var raw = {{DL - value}}; // 29.99
var minor = Math.round(raw * 100); // 2999
GrowthLab.conversion('purchase', {
value: minor,
currency: {{DL - currency}},
orderId: {{DL - transaction_id}}
});
</script>
Enviar 29.99 en lugar de 2999 reporta 30 centavos de revenue por pedido y el análisis quedará inutilizable.
orderId no es opcional en la práctica
GTM puede disparar la misma etiqueta más de una vez —recargas, historial, dobles activadores—. Sin orderId, cada disparo cuenta una compra nueva.
Consentimiento
Si usas el modo de consentimiento de GTM, refleja la decisión en el SDK:
<script>
GrowthLab.setConsent({
analytics: {{Consent - analytics_storage}} === 'granted',
replay: {{Consent - analytics_storage}} === 'granted'
});
</script>
Considera pedir un permiso explícito y separado para la grabación de sesiones. Aceptar analítica no es lo mismo que aceptar ser grabado, y el SDK trata los dos permisos por separado a propósito. Ver Consentimiento.
Verificar
Usa el modo de vista previa de GTM para confirmar que la etiqueta se dispara, y después Sitios → Instalación → Verificar en el panel. La verificación comprueba que llegaron eventos reales al colector, no que la etiqueta exista.
Limitaciones conocidas
- Los bloqueadores que filtran
googletagmanager.comimpedirán la carga del SDK. La etiqueta directa es más resistente. - Si GTM carga tarde, el anti-parpadeo tiene menos margen. El SDK oculta solo los elementos que la variante va a modificar y los revela con un límite de 1.5 s, así que el peor caso es un parpadeo breve, nunca una página en blanco.