Documentación de PrestaShop Google Tag Manager
Documentación completa para el módulo PrestaShop de integración avanzada con Google Tag Manager (cc_ps_googletrack) con soporte para Enhanced Ecommerce, Enhanced Conversions y configuración completa de eventos.Índice
- Introducción
- Instalación y requisitos del sistema
- Activación del módulo
- Configuración básica de GTM
- Configuración de eventos
- Capa de datos ampliada
- Conversiones mejoradas (datos del usuario)
- Modo depuración
- Registro de eventos
- Código de seguimiento propio
- Sistema de traducción
- Eventos: detalles
- Calendario de eventos
- Prueba del asistente de etiquetas
- Resolución de problemas
- PREGUNTAS FRECUENTES
1. introducción
CC Google Tag Manager es un módulo avanzado de PrestaShop que garantiza una integración completa con Google Tag Manager. El módulo realiza un seguimiento automático de todos los eventos clave de Enhanced Ecommerce de acuerdo con los últimos estándares.Funciones clave del módulo:
- Integración completa con Google Tag Manager (GTM)
- Seguimiento automático de 18 eventos diferentes
- Comercio electrónico mejorado según los estándares de Google
- Conversiones mejoradas con datos de usuario hash
- Capa de datos ampliada (dataLayer) con información adicional
- Configuración de activación/desactivación de eventos individuales
- Modo de depuración con inicio de sesión en la consola del navegador
- Registro de eventos en la base de datos con visualización
- Código JavaScript propio ejecutado en todas las páginas
- Sistema completo de traducción (polaco, inglés, posibilidad de añadir otros idiomas)
- Compatible con PrestaShop 1.7.x, 8.x y 9.x.
- Compatibilidad con Google Consent Mode 2.0
2. Instalación y requisitos del sistema
Requisitos del sistema- PrestaShop 1.7.0.0 o superior (probado hasta la versión 9.0)
- PHP 7.4 o posterior
- Acceso al panel de administración de PrestaShop
- Cuenta de Google Tag Manager (gratuita)
- Opcional: Google Analytics 4 (gratuito)
- Descarga el archivo ZIP del módulo desde la página web oficial. códigos.cocos
- Inicie sesión en el panel de administración de PrestaShop
- Ir a: Módulos → Administrador de módulos
- Haga clic en „Cargar módulo” en la esquina superior derecha.
- Selecciona el archivo ZIP descargado y haz clic en „Subir este módulo”.”
- Una vez finalizada la instalación, haga clic en "Configurar".
- El módulo está listo para configurarse.
Información
Tras la instalación, el módulo registra automáticamente todos los hooks necesarios de PrestaShop y crea una tabla en la base de datos para registrar eventos (si la función está activada). La instalación no requiere ningún paso técnico adicional.
3. Activación del módulo
El módulo no requiere una activación de licencia por separado, ya que funciona inmediatamente después de la instalación. Sin embargo, para comenzar el seguimiento, debemos configurar los ajustes básicos.Primeros pasos tras la instalación:
- Vaya a Módulos → Administrador de módulos
- Busca el módulo „CC Google Tag Manager”.”
- Haga clic en „Configurar”.”
- Se nos redirigirá a la página de configuración del módulo.
Consejo
Antes de comenzar la configuración, es recomendable preparar el ID del contenedor GTM (formato: GTM-XXXXXX). Podemos encontrarlo en el panel de Google Tag Manager después de crear un nuevo contenedor para nuestro sitio web.
4. Configuración básica de GTM
La configuración de Google Tag Manager es el primer paso para activar el seguimiento en la tienda.Creación de un contenedor GTM:
- Ir a tagmanager.google.com
- Inicie sesión con su cuenta de Google
- Haga clic en „Crear cuenta”.”
- Introduzca el nombre de la cuenta (por ejemplo, el nombre de la empresa).
- Indique el nombre del contenedor (por ejemplo, el nombre de la tienda).
- Seleccione „Web” como tipo de contenedor.
- Acepta los términos del servicio
- Copie el ID del contenedor (GTM-XXXXXX)
- En la configuración del módulo, busca la sección „Configuración básica”.”
- Marca la casilla „Activar Google Tag Manager”.”
- Pega el ID del contenedor GTM copiado (por ejemplo, GTM-ABC1234).
- Haga clic en „Guardar” en la parte inferior de la página.
| Opción | Descripción | Valor |
| Activar GTM | Activa el seguimiento mediante GTM | SÍ / NO |
| Identificación del contenedor GTM | Contenedor ID GTM | GTM-XXXXXX |
- El código GTM (gtag.js) se añade automáticamente a todas las páginas de la tienda.
- El script GTM se coloca en la sección
- El fallback Noscript se añade inmediatamente después de <body>
- DataLayer comienza a recopilar datos sobre eventos.
- Todos los eventos se envían automáticamente a GTM.
Éxito
Una vez configurado correctamente, el código GTM será visible en el código fuente de la página. Podemos comprobarlo haciendo clic con el botón derecho del ratón → „Mostrar código fuente” y buscando GTM-XXXXXX. Allí encontraremos tanto el script principal como el dataLayer.
5. Configuración de eventos
El módulo admite 18 eventos diferentes. Cada evento se puede activar o desactivar de forma independiente según las necesidades empresariales.Lista de eventos disponibles:
| Evento | Descripción | ¿Cuándo se activa? |
| page_view | Visualización de la página | En cada página de la tienda |
| ver_elemento | Visualización del producto | En la página del producto |
| ver_lista_de_artículos | Visualización de la lista de productos | Categorías, resultados de búsqueda, página principal |
| select_item | Hacer clic en el producto | Hacer clic en un producto de la lista |
| Añadir al carrito | Añadir a la cesta | Después de añadir el producto a la cesta |
| eliminar_del_carrito | Eliminar de la cesta | Después de eliminar el producto de la cesta |
| ver_carrito | Mostrar la cesta | En la página del carrito |
| begin_checkout | Inicio del contrato | Primer paso para completar el pedido |
| add_shipping_info | Añadir información sobre la entrega | Selección del método de entrega |
| añadir_información_de_pago | Añadir información sobre el pago | Selección del método de pago |
| compra | Comprar | Página de confirmación del pedido |
| buscar | Buscar en | Uso del buscador de la tienda |
| seleccionar_promoción | Hacer clic en la promoción | Hacer clic en un banner promocional |
| inicio de sesión | Iniciar sesión | Inicio de sesión del cliente |
| inscribirse | Inscripción | Registro de un nuevo cliente |
| añadir a la lista de deseos | Añadir a la lista de deseos | Añadir producto a la lista de deseos |
| compartir | Compartir | Hacer clic en el botón «Compartir en redes sociales» |
- En la configuración del módulo, vaya a la sección „Configuración de eventos”.”
- Encuentra la lista de los 18 eventos
- Marca las casillas junto a los eventos que deseas seguir.
- Desmarque las casillas de verificación junto a los eventos que desea desactivar.
- Utilice los botones „Seleccionar todo” o „Deseleccionar todo” para una configuración rápida.
- Haga clic en „Guardar”.”
// Konfiguracja eventów przekazywana do JS jako: window.ccpsEventConfig = { 'page_view': true, 'view_item': true, 'add_to_cart': true, 'purchase': false, // ... itd. };
// Sprawdzanie czy event jest włączony: function isEventEnabled(eventName) { if (typeof config.eventConfig[eventName] !== 'undefined') { return config.eventConfig[eventName]; } return true; // Domyślnie włączone }Nota
Los eventos desactivados no se envían a dataLayer, lo que ahorra recursos y evita saturar los datos en Google Analytics. Si un evento está desactivado, en el modo de depuración aparecerá el mensaje „Evento desactivado: nombre_del_evento” en lugar de enviar datos.
6. Capa de datos ampliada
La función de capa de datos mejorada (Enhanced Data) añade información adicional a cada evento, lo que enriquece los análisis en Google Analytics.¿Qué contiene la capa de datos ampliada?
- Datos del sitio web – tipo de página, URL, título, idioma, moneda
- Datos del usuario – estado del cliente (visitante/invitado/cliente), ID de usuario
- Datos de los productos – categorías completas (hasta 5 niveles), marcas, atributos
- Datos de los pedidos – métodos de entrega, métodos de pago, cupones
- En la configuración del módulo, busca la sección „Opciones de datos avanzadas”.”
- Marca la casilla „Capa de datos ampliada”.”
- Marca la casilla „Datos de la página” para añadir información sobre la página.
- Guardar la configuración
dataLayer.push({ 'event': 'page_view', 'page_type': 'product', 'page_url': 'https://example.com/produkt', 'page_title': 'Nombre del producto - Tienda', 'language': 'pl', 'currency': 'PLN', 'customer_status': 'customer', 'user_id': 123 });| Tipo de página | Valor de page_type | ¿Cuándo? |
| Página de inicio | Inicio | Controlador de índice |
| Página del producto | producto | Controlador de productos |
| Categoría | categoría | Controlador de categoría |
| Cesta | carro | Controlador de carrito |
| Ejecución del pedido | checkout | Controlador de pedidos |
| Confirmación de compra | compra | Controlador de confirmación de pedidos |
| Buscar en | buscar | Controlador de búsqueda |
| Página de contenido | contenido | Controlador CMS |
| Otros | other | Todos los demás |
- categoría_del_artículo – categoría principal (con normalización: primera letra mayúscula)
- item_category2 – subcategoría nivel 2
- item_category3 – subcategoría nivel 3
- item_category4 – subcategoría nivel 4
- item_category5 – subcategoría nivel 5
Consejo
La capa de datos ampliada es especialmente útil para crear segmentos avanzados en Google Analytics. Por ejemplo, podemos analizar la conversión por separado para diferentes tipos de páginas, idiomas o estados de los clientes. Se recomienda encarecidamente activar esta función.
7. Conversiones mejoradas (datos del usuario)
Las conversiones mejoradas son una función de Google Ads que mejora la precisión de la medición de las conversiones mediante el envío de datos hash de los usuarios.¿Qué son las conversiones mejoradas?
- Datos personales de los usuarios hash (SHA-256)
- Correo electrónico, teléfono, nombre, apellidos, ciudad, código postal, país
- Enviado a Google de forma segura
- Permiten atribuir mejor las conversiones a las campañas publicitarias.
- Requieren el consentimiento del usuario (RGPD/GDPR)
- En la configuración del módulo, busca la sección „Opciones de datos avanzadas”.”
- Marca la casilla „Datos del usuario (conversiones mejoradas)”.”
- Asegúrate de que tienes el consentimiento de los usuarios para el tratamiento de datos (RGPD).
- Guardar la configuración
Advertencia
¡El envío de datos de los usuarios requiere el consentimiento del RGPD! Asegurémonos de que nuestra tienda cuenta con una política de privacidad y cookies actualizada y de que los usuarios dan su consentimiento informado para el tratamiento de sus datos. Recomendamos la integración con un módulo de gestión de consentimientos de cookies como CC PrestaShop Cookies.
| Datos | Fuente | Formato |
| Correo electrónico | $cliente->correo electrónico | hash(’sha256′, strtolower(trim($email))) |
| Teléfono | Primera dirección del cliente | hash(’sha256′, solo números) |
| Nombre | Primera dirección del cliente | hash(’sha256′, strtolower(trim())) |
| Nombre | Primera dirección del cliente | hash(’sha256′, strtolower(trim())) |
| Ciudad | Primera dirección del cliente | hash(’sha256′, strtolower(trim())) |
| Código postal | Primera dirección del cliente | hash(’sha256′, trim()) |
| País | Primera dirección del cliente | Código del país (sin hash) |
dataLayer.push({ 'event': 'purchase', 'user_id': 123, 'customer_status': 'customer', 'user_data': { 'email_hash': 'b4c9a289323b21a01c3e807...', 'phone_hash': '8d23cf6c86e834a7aa6edd9...', 'address': { 'first_name': 'a5bfc9e07964f8dddeb95fc...', 'last_name': '5e884898da28047151d0e56...', 'city': '1c383cd30b7c298ab50293a...', 'postal_code': '4e07408562bedb8b60ce05c...', 'country': 'PL' } } });- visitante – usuario no registrado sin cuenta
- invitado – conectado como invitado (guest checkout)
- cliente – usuario registrado con cuenta completa
Información
Todos los datos personales se cifran con el algoritmo SHA-256 antes de enviarse a Google, lo que significa que Google no recibe los datos en formato legible. El cifrado es unidireccional, es decir, no es posible recuperar los datos originales a partir del cifrado. Esto cumple con los requisitos del RGPD en materia de minimización de datos.
8. Modo de depuración
El modo de depuración permite realizar un seguimiento detallado de todos los eventos en la consola del navegador, lo que resulta muy útil durante las pruebas y la resolución de problemas.Activación del modo de depuración:
- En la configuración del módulo, busca la sección „Opciones de datos avanzadas”.”
- Marca la casilla „Modo de depuración”.”
- Guardar la configuración
- Abrir la tienda en una nueva pestaña del navegador
- Abre la consola de desarrollo (F12 → pestaña Console).
- Actualizar la página
- Inicialización del módulo: [CC Google Track] CcpsGoogleTrack v2.0 – inicialización
- Cada evento enviado: [CC Google Track] Evento: add_to_cart
- Datos del evento (objeto de comercio electrónico)
- Eventos desactivados: [CC Google Track] Evento desactivado: compartir
- Operaciones AJAX (descarga de datos de productos, lista de deseos, etc.)
- Errores de análisis y gestión de eventos
- Eventos PrestaShop (updatedCart, updatedProduct)
- Finalización de la inicialización
[CC Google Track] CcpsGoogleTrack v2.0 - inicialización [CC Google Track] Evento: page_view {page_type: "product", ...} [CC Google Track] Controlador registrado: add_to_cart [CC Google Track] Controlador registrado: remove_from_cart [CC Google Track] Controlador registrado: select_item [CC Google Track] Evento PrestaShop: updatedCart {reason: {...}} [CC Google Track] Evento: add_to_cart {currency: "PLN", value: 99.99, items: [...]} [CC Google Track] CcpsGoogleTrack v2.0 - inicialización completada| Comunicado | Importancia de |
| Evento desactivado: nombre_evento | El evento está desactivado en la configuración. |
| Descarga de datos de productos mediante AJAX para X | El módulo obtiene los datos del producto del servidor. |
| Se han obtenido los datos del producto de PHP para X. | Los datos del producto se han descargado correctamente. |
| Error AJAX X | Se ha producido un error al descargar los datos. |
| Error al analizar JSON | La respuesta AJAX no es JSON válido. |
| Handler registrado: nombre | El servicio del evento ha sido iniciado. |
Consejo
El modo de depuración debe activarse SOLO durante las pruebas. En el entorno de producción, debe estar desactivado para no saturar la consola de los visitantes y no ralentizar la página. Recomendamos activar el modo de depuración en el entorno de prueba/staging antes de la implementación en producción.
9. Registro de eventos
La función de registro de eventos guarda todos los eventos en la base de datos de PrestaShop, lo que permite su posterior visualización y análisis.Habilitar el registro de eventos:
- En la configuración del módulo, busca la sección „Opciones de datos avanzadas”.”
- Marca la casilla „Registro de eventos”.”
- Guardar la configuración
- El módulo creará automáticamente una tabla. ps_ccpsgoogletrack_logs en la base de datos
| Columna | Tipo | Descripción |
| id_log | INT AUTO_INCREMENT | Llave maestra |
| nombre_evento | VARCHAR(100) | Nombre del evento (por ejemplo, add_to_cart) |
| capa_de_datos | TEXTO | Capa de datos completa en formato JSON |
| date_add | FECHA Y HORA | Fecha y hora de adición |
- En la configuración del módulo, vaya a la pestaña „Registros”.”
- Verás una tabla con los últimos 100 registros.
- Columnas: Fecha, Evento, Capa de datos (JSON)
- Posibilidad de borrar todos los registros con el botón „Borrar registros”.”
Evento: add_to_cart Fecha: 2025-12-10 14:30:45 Capa de datos: { "event": "add_to_cart", "ecommerce": { "currency": "PLN", "value": 99.99, "items": [ { "item_id": "123", "item_name": "Producto de prueba", "price": 99.99, "quantity": 1 } ] }, "page_type": "product", "customer_status": "visitor" }- Eventos del panel de administración (hook displayHeader) – inicio de sesión PHP
- Eventos enviados por JavaScript: inicio de sesión mediante AJAX
- Todos los eventos excepto los excluidos en la configuración.
- El inicio de sesión funciona independientemente del modo de depuración.
- En la pestaña „Registros”, haz clic en el botón „Borrar registros”.”
- Confirme la operación en el cuadro de diálogo.
- Todos los registros se eliminarán de la base de datos.
- Aparecerá un mensaje de confirmación.
Advertencia
El registro de eventos puede generar una gran cantidad de datos en la base de datos, especialmente en tiendas con mucho tráfico. Recomendamos limpiar los registros con regularidad (por ejemplo, cada mes) o activar el registro solo durante las pruebas. En un entorno de producción, normalmente no es necesario realizar un registro permanente.
10. Código de seguimiento propio
La función de código propio permite añadir JavaScript personalizado que se ejecutará en todas las páginas de la tienda.Usos del código propio:
- Eventos adicionales de GTM no compatibles con el módulo
- Seguimiento personalizado de las interacciones de los usuarios
- Integración con otras herramientas analíticas
- Modificaciones de dataLayer según tus necesidades
- Scripts de remarketing Facebook Pixel, TikTok Pixel, etc.
- En la configuración del módulo, busca la sección „Código de seguimiento personalizado”.”
- Marca la casilla „Activar código propio”.”
- En el cuadro de texto grande, escribe tu código JavaScript.
- No utilices etiquetas. – se añaden automáticamente
- Guardar la configuración
// Evento propio para dataLayer dataLayer.push({ 'event': 'custom_scroll', 'scroll_depth': '50%' });
// Seguimiento de clics en elementos específicos document.querySelectorAll('.special-button').forEach(function(btn) { btn.addEventListener('click', function() { dataLayer.push({ 'event': 'special_button_click', 'button_text': this.textContent }); }); }); // Facebook Pixel !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', 'YOUR_PIXEL_ID'); fbq('track', 'PageView');- window.dataLayer – capa de datos principal de GTM
- window.ccpsGTMDebug – ¿Está activado el modo de depuración?
- window.ccpsEventConfig – configuración de eventos
- window.ccpsUserLogged – si el usuario ha iniciado sesión
- window.ccpsAjaxUrl – URL al controlador AJAX del módulo
- window.ccpsTranslations – tabla de traducciones
- prestashop – objeto PrestaShop (si está disponible)
// Comprueba si el usuario está conectado if (window.ccpsUserLogged) { dataLayer.push({ 'event': 'logged_user_pageview' }); } // Utiliza la configuración de eventos if (window.ccpsEventConfig && window.ccpsEventConfig['custom_event']) {
// Enviar solo si el evento está activado dataLayer.push({ 'event': 'custom_event' }); } // Registro de depuración si el modo de depuración está activado if (window.ccpsGTMDebug) { console.log('[Mi código] Inicialización completada'); }Nota
El código propio se añade al final de la sección HEAD, después del código GTM y después de todos los scripts del módulo. Esto significa que todas las variables y funciones del módulo ya están disponibles. El código se ejecuta en cada página de la tienda, por lo que hay que tener cuidado con el rendimiento.
11. Sistema de traducción
El módulo cuenta con un completo sistema de traducción que admite múltiples idiomas.Elementos traducidos:
| Elemento | Ejemplo PL | Ejemplo EN |
| Nombres de eventos | Añadir al carrito (add_to_cart) | Añadir al carrito (add_to_cart) |
| Mensajes de depuración | Evento desactivado: | Evento desactivado: |
| Mensajes de error | Error al descargar los datos del producto | Error al obtener los datos del producto |
| Estados | Activo | Activo |
| Botones | Guardar | Guardar |
// W PHP (ccpsgoogletrack.php): $translations = [ 'eventDisabled' => $this->l('Event wyłączony:'), 'event' => $this->l('Event:'), 'sendingEvent' => $this->l('Wysyłanie'), // ... itd. ]; $output .= '<script>window.ccpsTranslations = ' . json_encode($translations, JSON_UNESCAPED_UNICODE) . ';</script>';
// W JavaScript (ccpsgoogletrack.js):
function t(key, defaultText) {
if (typeof window.ccpsTranslations !== 'undefined'
&& window.ccpsTranslations[key]) {
return window.ccpsTranslations[key];
}
return defaultText || key;
}
// Użycie: debugLog(t('eventDisabled', 'Event wyłączony:') + ' ' + event);- Copiar el archivo translations/es.php
- Cambia el nombre por el código del idioma, por ejemplo:. traducciones/de.php (alemán)
- Abre el archivo en un editor de texto.
- Traduce todos los valores a la derecha (después del signo =).
- NO cambies las llaves (a la izquierda)
- Guarda el archivo con codificación UTF-8.
- Borrar la caché de PrestaShop
<?php global $_MODULE; $_MODULE = array(); $_MODULE['ccpsgoogletrack_eventdisabled'] = 'Evento desactivado:'; $_MODULE['ccpsgoogletrack_event'] = 'Evento:'; $_MODULE['ccpsgoogletrack_sendingevent'] = 'Enviando'; // ... más traducciones- eventDisabled – „Evento desactivado:”
- evento – „Evento:”
- sendingEvent – „Envío”
- receivedData – „Se han recibido los datos del producto de PHP para”
- gettingProductData – „Descarga de datos del producto mediante AJAX para”
- ajaxError – „Error AJAX”
- parsingError – „Error al analizar JSON:”
- dataError: „Error al recuperar los datos del producto”.”
- handlerRegistered – „Manejador registrado”
- initialization – „CcpsGoogleTrack v2.0 – inicialización”
- initComplete – „CcpsGoogleTrack v2.0 – inicialización completada”
- prestashopEvent – „Evento PrestaShop”
Consejo
Si la tienda es multilingüe, el sistema de traducción seleccionará automáticamente el idioma adecuado en función del idioma actual de PrestaShop. Todos los mensajes de depuración, los nombres de los eventos en la configuración y los mensajes del sistema se mostrarán en el idioma del usuario.
12. Eventos: detalles
Descripción detallada de la implementación de cada uno de los 18 eventos gestionados por el módulo.page_view – Visualización de la página
- Cuándo: En cada página de la tienda
- Gancho: displayHeader
- Datos: tipo_de_página, url_de_página, título_de_página, idioma, moneda, estado_del_cliente
- Observaciones: El primer evento enviado en cada página contiene datos contextuales completos.
- Cuándo: En la página del producto
- Gancho: displayProductAdditionalInfo
- Datos: moneda, valor, artículos[] (id_artículo, nombre_artículo, precio, marca_artículo, categoría_artículo, cantidad=1)
- Fuente: $product = prestashop.page.product o AJAX
- Cuándo: Categorías, página principal, resultados de búsqueda
- Gancho: displayFooter (para la categoría)
- Datos: currency, item_list_id, item_list_name, items[] (todos los productos con índice)
- Observaciones: Utiliza prestashop.page.page_name para identificar el tipo de lista.
- Cuándo: Hacer clic en el enlace del producto de la lista.
- Mecanismo: JavaScript click listener en .product-miniature a
- Datos: moneda, id_lista_artículos, nombre_lista_artículos, artículos[] (producto seleccionado)
- Fuente: atributo data-product-gtm o AJAX
- Cuándo: Después de añadir el producto a la cesta
- Mecanismo: Interceptación del evento 'updateCart’ de PrestaShop’
- Datos: moneda, valor, artículos[] (producto añadido con cantidad)
- Fuente: prestashop.page.product o AJAX GetProductData
- Observaciones: Detecta la cantidad de diferentes fuentes (#quantity_wanted, event.reason.qty, event.resp.quantity)
- Cuándo: Después de eliminar el producto de la cesta
- Mecanismo: Haga clic en el listener en .eliminar-del-carrito
- Datos: moneda, valor, artículos[] (producto eliminado)
- Fuente: Atributos data-id-product, data-price, data-name
- Cuándo: En la página del carrito
- Gancho: displayShoppingCart
- Datos: moneda, valor, artículos[] (todos los productos en la cesta)
- Fuente: $cart->getProducts()
- Cuándo: Primer paso para completar el pedido
- Mecanismo: JavaScript en la página de pago
- Datos: moneda, valor, artículos[], cupón (si lo hay)
- Fuente: window.prestashop.cart
- Cuándo: Después de seleccionar el método de entrega
- Gancho: actionCarrierProcess
- Datos: moneda, valor, artículos[], nivel_de_envío (nombre del transportista)
- Mecanismo: También el listener JavaScript para el cambio .delivery-option input
- Cuándo: Después de seleccionar el método de pago
- Mecanismo: Escucha JavaScript en .opción de pago entrada
- Datos: moneda, valor, artículos[], tipo de pago (nombre del módulo de pago)
- Cuándo: Página de confirmación del pedido
- Gancho: mostrarConfirmaciónPedido
- Datos: moneda, id_transacción, valor, impuestos, envío, cupón, artículos[]
- Fuente: $order = nuevo pedido ($id_order)
- Observaciones: El evento más importante para la conversión
- Cuándo: Uso del buscador
- Gancho: actionSearch
- Datos: search_term (frase de búsqueda)
- Recurso alternativo: JavaScript comprueba los parámetros URL (s=, search_query=)
- Cuándo: Después de iniciar sesión
- Gancho: actionAuthentication
- Mecanismo: JavaScript también detecta el cambio de ccpsUserLogged en sessionStorage.
- Datos: método: ’correo electrónico’
- Cuándo: Después de registrar un nuevo cliente
- Gancho: acciónAñadirCuentaCliente
- Mecanismo: Cookie ccps_just_registered transferida a sessionStorage
- Datos: método: ’correo electrónico’
- Cuándo: Añadir producto a la lista de deseos
- Mecanismo: Captura de fetch y XMLHttpRequest para blockwishlist
- Datos: moneda, valor, artículos[] (producto añadido)
- Fuente: AJAX Obtener datos del producto
- Observaciones: Funciona con el módulo blockwishlist.
- Cuándo: Hacer clic en el botón «Compartir en redes sociales»
- Mecanismo: Haga clic en el listener en .social-sharing a
- Datos: método (facebook/twitter/pinterest/linkedin/correo electrónico), tipo de contenido, id del elemento, elementos[]
- Fuente: prestashop.page.product o AJAX
- Cuándo: Automáticamente si el producto tiene un descuento
- Gancho: displayProductAdditionalInfo (junto con view_item)
- Datos: moneda, valor, artículos[], id_promoción, nombre_promoción
- Observaciones: Utiliza specific_prices para los datos de la promoción.
Éxito
Todos los eventos cumplen con la especificación oficial de Google Analytics 4 Enhanced Ecommerce. La estructura de datos items[] contiene todos los campos obligatorios y recomendados (item_id, item_name, price, quantity, item_brand, item_category). El módulo normaliza automáticamente los nombres de las categorías (primera letra mayúscula) y admite hasta 5 niveles de jerarquía de categorías.
13. Calendario de eventos
A continuación, presentamos un calendario que muestra cuándo y en qué páginas se envían los distintos eventos.Eventos en diferentes tipos de páginas:
| Página | Eventos automáticos | Eventos interactivos |
| Página de inicio | page_view, view_item_list | select_item |
| Categoría | page_view, view_item_list | select_item |
| Buscar en | page_view, search, view_item_list | select_item |
| Producto | page_view, view_item, select_promotion (si hay descuento) | añadir al carrito, añadir a la lista de deseos, compartir |
| Cesta | page_view, view_cart | eliminar_del_carrito, comenzar_el_proceso_de_pago |
| Finalizar compra | page_view, begin_checkout | añadir_información_de_envío, añadir_información_de_pago |
| Confirmación | page_view, compra | – |
| Iniciar sesión | page_view, inicio de sesión | – |
| Inscripción | page_view, sign_up | – |
- Página de inicio → vista_de_página, vista_de_lista_de_elementos
- Hacer clic en el producto → seleccionar elemento
- Página del producto → página_vista, vista_elemento, (seleccionar_promoción)
- Añadir a la cesta → añadir al carrito
- Página del carrito → página_vista, ver_carrito
- Inicio del contrato → comenzar_el_proceso_de_pago
- Selección de la entrega → añadir_información_de_envío
- Selección del pago → añadir_información_de_pago
- Confirmación → página_vista, compra
Información
Cada evento automático se envía al cargar la página (Hook PHP), mientras que los eventos interactivos se envían en respuesta a las acciones del usuario (JavaScript). El módulo detecta de forma inteligente los duplicados y no envía el mismo evento dos veces para la misma acción.
14. Prueba del asistente de etiquetas
Google Tag Assistant es la herramienta oficial de Google para probar y depurar la implementación de Google Tag Manager.Pruebas con Tag Assistant:
- Instalar la extensión Tag Assistant Legacy de Google para Chrome
- O utilice la nueva herramienta Asistente de etiquetas de Google en Chrome DevTools
- Ir a la página de la tienda
- Haga clic en el icono Tag Assistant en la barra de herramientas.
- Haga clic en „Enable” para comenzar la grabación.
- Actualizar la página
- Realiza acciones de prueba (añadir al carrito, pasar por caja, etc.).
- Revisa el informe del Asistente de etiquetas.
- Etiqueta GTM encontrada – el marcador verde indica una instalación correcta
- Capa de datos – comprueba si contiene los datos correctos de los eventos
- Etiquetas eliminadas – lista de etiquetas que se han activado
- Variables – variables enviadas a GTM
- Errores – Las marcas rojas indican problemas.
- Inicie sesión en Google Tag Manager.
- Vaya a la pestaña „Etiquetas”.”
- Haga clic en „Nuevo”.”
- Seleccione el tipo de etiqueta: „Google Analytics: evento GA4”
- Introduce el ID de medición (G-XXXXXXXXXX de GA4)
- Nombre del evento: {{Evento}} (variable incorporada)
- Desencadenante: „Evento personalizado” con nombres de eventos (añadir al carrito, compra, etc.)
- O un disparador universal para todos los eventos con dataLayer.
- Guardar y publicar contenedor
- En GTM, haz clic en „Vista previa” en la esquina superior derecha.
- Introduce la URL de la tienda
- Haga clic en „Conectar”.”
- Se abrirá una nueva ventana con el depurador GTM.
- Realiza acciones en la tienda
- En el depurador se pueden ver todos los eventos dataLayer en tiempo real.
- Comprueba qué etiquetas se han activado para cada evento.
Consejo
La herramienta oficial de Google para realizar pruebas se encuentra en: tagassistant.google.com
Allí podemos comprobar si todo funciona correctamente, si GTM está instalado y si los eventos se envían correctamente a Google Analytics.
Allí podemos comprobar si todo funciona correctamente, si GTM está instalado y si los eventos se envían correctamente a Google Analytics.
15 Solución de problemas
GTM no se carga en la página web.- Comprueba si GTM está activado en la configuración del módulo.
- Verifique la validez del ID del contenedor GTM (formato: GTM-XXXXXX)
- Borrar la caché de PrestaShop (Parámetros avanzados → Rendimiento → Borrar caché)
- Comprueba si la fuente de la página contiene gtm.js y noscript iframe.
- Desactive otros módulos que puedan modificar el encabezado.
- Comprueba si hay errores de JavaScript en la consola.
- Activa el modo de depuración y comprueba la consola del navegador.
- Comprueba si los eventos están activados en la configuración del módulo.
- Verifique si dataLayer está definido (console.log(window.dataLayer)).
- Comprueba que no haya conflictos con otros módulos GTM.
- Asegúrate de que el módulo JavaScript se haya cargado (ccpsgoogletrack.js).
- Comprueba si hookDisplayHeader se ejecuta por el tema.
- Activa el modo de depuración y observa los registros en la consola.
- Comprueba si se activa el evento 'updateCart’ de PrestaShop.
- Verifica si prestashop.on() está disponible.
- Comprueba si los productos tienen datos asignados (id_product, precio, nombre).
- Asegúrate de que el controlador AJAX funciona (/module/ccpsgoogletrack/ajax).
- Comprueba si no hay errores AJAX en la pestaña Red.
- Comprueba si la compra de eventos está activada.
- Verifique que se encuentra en la página order-confirmation.
- Asegúrate de que hookDisplayOrderConfirmation se ejecuta.
- Comprueba si el pedido se ha cargado correctamente ($order).
- Activa el registro de eventos y comprueba si se guarda la compra.
- En GTM, comprueba si tienes configurada la etiqueta GA4 para el evento «purchase».
- Comprueba si existe el archivo translations/XX.php para tu idioma.
- Verifique el formato del archivo (codificación UTF-8, sintaxis PHP correcta).
- Borrar la caché de PrestaShop
- Comprueba si window.ccpsTranslations está definido en el código fuente de la página.
- Asegúrate de que la función t() está disponible en JavaScript.
- Comprueba si la función está activada en los ajustes
- Verifique si la tabla ps_ccpsgoogletrack_logs existe en la base de datos.
- Comprobar los permisos de escritura de la base de datos
- Asegúrate de que el controlador AJAX acepta solicitudes (action=LogEvent).
- Activa WP_DEBUG y comprueba los registros de errores.
- Comprueba que no hayas superado el límite de tamaño de la tabla.
- Comprueba si la función está activada en los ajustes
- Verifica que el código sea correcto JavaScript (comprueba la consola)
- Asegúrate de no utilizar etiquetas en el código.
- Comprueba si el código se encuentra en el código fuente de la página (sección HEAD).
- Prueba el código poco a poco para encontrar el error.
Error
Si los problemas persisten, activa el modo de depuración en la configuración del módulo y el registro de eventos. Recopila toda la información de la consola del navegador, la pestaña Red y los registros de eventos. Ponte en contacto con el servicio de asistencia de COCOS a través de cocos.codes/soporte adjuntando la información recopilada.
16. FAQ
¿Es el módulo compatible con PrestaShop 9.0?Sí, el módulo ha sido probado y es totalmente compatible con PrestaShop 1.7.x, 8.x y la última versión 9.0.
¿Puedo utilizar el módulo sin una cuenta de Google Analytics?
Sí, el módulo envía datos a Google Tag Manager. GTM puede transferir datos a muchos sistemas diferentes, no solo a Google Analytics. Podemos enviar datos a Facebook Pixel, TikTok Pixel, nuestros propios sistemas analíticos, etc.
¿El módulo ralentiza la tienda?
No, el módulo está optimizado para el rendimiento. El código GTM se carga de forma asíncrona y todos los scripts están minificados. El impacto en el rendimiento es mínimo (< 0,1 s de tiempo de carga).
¿Puedo desactivar algunos eventos?
Sí, en la configuración del módulo podemos activar o desactivar cada uno de los 18 eventos por separado. Los eventos desactivados no se envían en absoluto a dataLayer.
¿Cómo funciona la detección add_to_cart?
El módulo captura el evento 'updateCart’ de PrestaShop y escucha los clics en los botones «Añadir al carrito». Detecta automáticamente la cantidad de diferentes fuentes y obtiene los datos del producto a través de AJAX si es necesario.
¿El módulo es multilingüe?
Sí, el módulo cuenta con traducciones completas al polaco y al inglés. Podemos añadir fácilmente nuestros propios idiomas copiando y traduciendo los archivos del directorio translations/.
¿Qué son las conversiones mejoradas?
Las conversiones mejoradas son una función de Google Ads que mejora la precisión de la medición de las conversiones mediante el envío de datos hash de los usuarios (correo electrónico, teléfono, dirección). Requiere el consentimiento del RGPD.
¿El módulo es compatible con el RGPD?
El módulo en sí mismo es compatible con el RGPD: hash todos los datos personales con el algoritmo SHA-256. Sin embargo, para ser totalmente compatibles, debemos tener una política de privacidad actualizada y el consentimiento de los usuarios para las cookies. Recomendamos la integración con el módulo de gestión de cookies.
¿Cómo comprobar si el módulo funciona correctamente?
Activa el modo de depuración en la configuración, abre la consola del navegador (F12) y observa los registros. También puedes utilizar Google Tag Assistant o el modo de vista previa de GTM para ver todos los eventos en tiempo real.
¿Puedo añadir mis propios eventos?
Sí, puedes usar la función „Código de seguimiento personalizado” en la configuración para añadir cualquier JavaScript que envíe tus propios eventos a dataLayer.
¿Cuánto tiempo se conservan los registros de eventos?
Los registros se almacenan en la base de datos hasta que se borran manualmente. Recomendamos borrar los registros periódicamente (por ejemplo, cada mes) para no saturar la base de datos.
¿Funciona el módulo con el módulo cookies/GDPR?
Sí, el módulo es compatible con la mayoría de los módulos de gestión del consentimiento de cookies. Podemos integrarlo con Google Consent Mode 2.0 mediante nuestro propio código de seguimiento.
¿Qué ocurre durante la desinstalación?
El módulo elimina todos sus ajustes de la base de datos (opciones, tabla de registros). Sin embargo, no elimina los archivos del módulo, que deben eliminarse manualmente del directorio modules/ccpsgoogletrack/.
¿Puedo exportar los registros de eventos?
Actualmente, el módulo no tiene la función de exportar registros. Sin embargo, podemos consultar directamente la base de datos (tabla ps_ccpsgoogletrack_logs) o añadir nuestra propia función de exportación.
¿Con qué frecuencia se actualizan las traducciones?
Las traducciones se actualizan con cada nueva versión del módulo. Si falta la traducción de algún idioma, podemos añadirla nosotros mismos o solicitarla a COCOS.









