Jump to content

Como insertar dataLayer de GTM con action hooks


TheCHE

Recommended Posts

Hola, estoy intentando insertar valores al dataLayer de Google Tag Manager (GTM) cuando el usuario hace login a mi tienda. Para ello, he pensado en crear un modulo y llamar al hook actionAuthentication (After successful customer authentication) por facilidad y por no complicarme la vida con overrides de clases o controllers ya que no soy un experto.

El caso es que me inserta los valores correctamente con el hook displayTop pero no con el hook actionAuthentication, no encuentro los valores por ningún sitio de la página ni por GTM. Supongo que no me lo inserta correctamente porque el hook actionAuthentication no es un hook para mostrar nada en la plantilla. Aparte de que cuando un usuario hace login satisfactoriamente se le redirige a otra página a diferencia de displayTop que se muestra en el header en todas las páginas.

  • Podría insertar valores a mi dataLayer con actionAuthentication? Como se podría hacer?
  • Habría alguna otra manera más conveniente de hacer?

Gracias de antemano.

La definición de mi módulo es correcta y la llamada a los hooks también.

image.thumb.png.6ad0aaf9a0640aba30c7c4ab2f4ebdbc.png

Los archivos mimodulo.tpl y gtm_dataLayer.tpl tienen el mismo contenido que es el siguiente:

image.png.16320f953c053cc07c4553dca4ed663f.png

PD: He intentado bastantes maneras de solucionarlo insertado valores desde el módulo directamente y tampoco logro solucionarlo. Parece que el problema del hook es el mismo. No encuentro los valores del dataLayer por ningún sitio.

image.png.efeb830eb3370c342c03035a3e07506d.png

  

Edited by TheCHE
No había insertado código (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Los hooks con prefijo action normalmente como su nombre lo indica son para ejecutar acciones, no para imprimir contenido, como tu mismo ya supones. Puedes hacerlo todo en el hook displayTop que dices que si te funciona, y solamente validar en que página estás navegando antes de renderizar el contenido mediante $this-><context->controller->php_self o cualquier propiedad similar del controlador que te sirva de forma similar.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hola, no sé si podrías ayudarme con esto.

Estoy intentándolo cargando un archivo Javascript desde un hook pero solo me funciona con addJs en una tienda en local. Desde mi tienda de producción y desde otra tienda limpia de pruebas NO me funciona. No entiendo el porqué ya que además todas tienen la misma versión de Prestashop y el módulo es el mismo.

He probado con:

  • addJs pero solo me funciona para una tienda de pruebas, no entiendo porque en las otras no funciona: $this->context->controller->addJS('modules/'.$this->name.'/views/js/datLayer_login.js');
  • registerJavascript que no me funciona en ningún caso

image.png.46259f5ad6261d0b5b141eefaa6c1ae2.png.9d652c261eeb17b22d2e31bcec594d7c.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...