Insertar códigos de seguimiento como el de Analytics en Prestashop

Hace unos días teníamos que insertar el código de Analytics en un cliente con una tienda de Prestashop. Es verdad que tiene un módulo de Analytics, pero al comprobarlo en Google daba un error como que el script estaba dañado. Por lo que hemos visto le pasa a mucha gente.

Así que optamos por poner el script “a mano”, y esta solución sirve también para cualquier script de seguimiento adicional, incluído Google Tag Manager.Pero no se puede poner de cualquier manera por ser ficheros .tpl.analytics

  • Lo primero que tienes que elegir es el fichero donde lo quieres poner. Esto va a depender si lo tienes que poner antes del cierrre de la etiqueta <header> o después de la apertura o cierre de la etiqueta </body>. Va a depender mucho del código.Los ficheros header.tpl y footer.tpl de la plantilla suelen ser unos candidato idóneos a considerar.
  • Si el fichero es .tpl (como header o footer) debes poner el código entre las etiquetas {literal}{/literal}. Sin ellas a nosotros se nos caía la página.
    Esto es porque estos códigos pueden incluir paréntesis entre sus líneas de código y esto el SMARTY lo puede interpretar como código suyo. Estas etiquetas le dicen que lo que hay entre medias no es para él.
    Por ejemplo para Google Analytics:

    {literal}
    <!-- Google Analytics -->
    <script>
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
    
    ga('create', 'UA-XXXXX-Y', 'auto');
    ga('send', 'pageview');
    </script>
    <!-- End Google Analytics -->
    {/literal}

    Con esto te funcionará el código. Lo puedes comprobar fácilmente con el Tag Assistant que os comentamos el otro día.