Kowal Data Layer para Magento 2
- SKU
- M2-DATA-LAYER
Descripción / Kowal Data Layer para Magento 2
MAGENTO 2 · ECOMMERCE · GTM · ATRIBUCIÓN
Relaciona los eventos ecommerce con el origen del pedido.
Kowal Data Layer
Prepara datos de compra Magento para GA4 y etiquetas publicitarias. Conserva first touch y last non-direct touch en el pedido y verifica etiquetas en GTM Preview.
Eventos ecommerce · Exportaciones GTM · Atribución en el panel
CÓMO FUNCIONA EN LA PRÁCTICA
01 · Seleccionas datos e identificadores
Configuras item_id, marca, categoría y Store View.
02 · Configuras etiquetas y consentimiento
Importas la exportación GTM y la conectas al CMP.
03 · Compruebas eventos y pedidos
Verificas valores, monedas y atribución guardada.
¿Qué gana tu tienda?
Descubre las funciones, el uso y la configuración del módulo.
Data Layer Magento 2 para GA4, GTM y atribución de ventas
Kowal Data Layer crea una capa coherente de datos ecommerce desde Magento 2. Cubre el recorrido de compra, integraciones GTM y el origen de cada pedido.
Para tiendas que quieren combinar GA4, campañas y datos Magento sin añadir scripts manuales al tema y checkout.
GA4 ecommerce
Eventos desde listas y PDP, pasando por carrito, lista de deseos y checkout, hasta compra.
Exportaciones GTM preparadas
Paquetes para GA4, Google Ads, Meta, TikTok, Pinterest, Microsoft Ads y OpenAI Ads.
Atribución de pedidos
First touch y last non-direct touch con fuente, medio, campaña, landing page y referrer.
La analítica no debe bloquear ventas
Está diseñado como fail-safe. Los errores de datos o atribución se aíslan y registran sin que deban detener carrito, checkout, pedido ni redirección al pago.
Eventos ecommerce compatibles
user_data, view_item_list, select_item, view_item, add_to_cart, remove_from_cart, view_cart, add_to_wishlist, begin_checkout, add_shipping_info, add_payment_info, purchase y purchase_test.
Multitienda y feeds de productos
La configuración por Store View adapta identificadores, moneda, nombres, categoría y marca. item_id puede coincidir con identificadores de Google Merchant Center, Meta Catalog y otros feeds.
Consent Mode
Puede colaborar con Kowal Cookie Consent. Data Layer proporciona datos ecommerce y el CMP gestiona consentimiento y activación de etiquetas.
Preguntas frecuentes
¿Sustituye Google Tag Manager?
No. Prepara datos y exportaciones de configuración utilizables en GTM.
¿Funciona con Varnish y FPC?
Sí, contempla tiendas con caché y elementos dinámicos de checkout.
¿Guarda el origen del pedido?
Sí. Copia first touch y last non-direct touch del carrito al pedido.
¿Admite multitienda?
Sí. Identificadores y datos pueden configurarse por Store View.
¿Un error analítico puede bloquear el checkout?
La arquitectura se diseña para aislar errores analíticos del proceso comercial.
La exportación GTM es el inicio
Kowal → Data Layer → GTM Exports permite descargar JSON por plataforma tras configurar identificadores. Importa con Merge al workspace, comprueba etiquetas y Preview y publica después.
Actualizar Magento no actualiza etiquetas previamente importadas. Descarga de nuevo cuando cambie la lógica y comprueba duplicados de etiquetas y conversiones.
Atribución en el panel y límites de medición
Data Layer → Customer Attribution muestra pedidos con atribución, también de invitados. La cuadrícula ofrece filtros, ordenación y vistas guardadas; requiere un permiso separado.
Reconoce UTM, tipos click ID, organic y referral sin guardar consultas completas ni click ID publicitarios brutos. Refleja entradas reconocidas, no todos los contactos del cliente entre dispositivos.
Purchase y purchase_test de diagnóstico
purchase_test en REST checkout estándar significa creación de pedido, no pago. Las etiquetas de conversión exportadas lo omiten. Requiere activación separada.
Pasarelas personalizadas pueden requerir un adaptador. var/log/kowal_datalayer.log muestra errores que el diseño aísla de ventas.
Consentimiento, datos privados y caché
El CMP gestiona consentimiento y cambios de estado. Si Kowal Cookie Consent carga GTM, desactiva el segundo loader en Data Layer. Exportar etiquetas no sustituye configurar consentimientos.
La identidad se obtiene de un endpoint privado para no mezclar clientes en FPC. Con un loader externo, contempla user_data listo, consentimientos y Preview.
Hyvä e identificadores coherentes
El paquete incluye Kowal_DataLayerHyva opcional, activado con Enable Hyva Integration por Store View. Gestiona private-content, listas dinámicas y FormData.
Cubre REST checkout estándar. Hyvä Checkout/Magewire y GraphQL requieren integración independiente. item_id debe coincidir con el feed o catálogo publicitario.
Instalación mediante Composer
Paquete kowal/module-datalayer, módulo Kowal_DataLayer. Tras configurar el acceso al repositorio de Kowal, instala el paquete, activa el módulo, actualiza Magento y limpia la cache. En producción, incluye la compilación y el despliegue de contenido estático de acuerdo con el proceso de la tienda.
De la configuración al resultado
1. Seleccionas datos e identificadores
Configuras item_id, marca, categoría y Store View.
2. Configuras etiquetas y consentimiento
Importas la exportación GTM y la conectas al CMP.
3. Compruebas eventos y pedidos
Verificas valores, monedas y atribución guardada.
Desde la campaña hasta el pedido
El cliente llega de campaña, consulta y compra. El módulo guarda las fuentes reconocidas en quote y las transfiere al pedido.
Comparas first touch y last non-direct touch en el panel. En GTM Preview verificas purchase, valor, moneda y líneas.
Organiza datos ecommerce y atribución de ventas
¿Quieres adaptar el módulo a tu tienda? Consulta sobre la implementación de Kowal Data Layer y comenta la configuración o las ampliaciones necesarias.
Más Información
| Hyva Theme | Hyva Theme Redy |
|---|---|
| Conformidad con la plantilla | Hyvä, Luma / Blank, KOWAL |
Instrucciones de instalación del módulo
Instrucciones de instalación y configuración
Requisitos
- Magento Open Source / Adobe Commerce 2.4.x.
- PHP compatible con la versión de Magento utilizada.
- Acceso Composer al repositorio privado del módulo.
- El módulo
kowal/base. - Permiso para ejecutar
setup:upgrade, ya que el módulo añade campos de atribución a las tablasquoteysales_order. - Contenedor web de Google Tag Manager, si la tienda va a utilizar las exportaciones de integración ya preparadas.
- Opcionalmente:
Kowal_CookieConsent, si la tienda lo utiliza para GTM y Consent Mode.
Instalación con Composer
Recibirás por correo electrónico los datos de acceso al repositorio Composer, es decir, el e-mail del cliente y el token de licencia, después de la compra. También están disponibles en el panel de cliente tras iniciar sesión en kowal.store. Sustituye TWOJ_EMAIL_KLIENTA por la dirección de e-mail de tu cuenta y TWOJ_TOKEN por el token recibido. Ejecuta los comandos en el directorio raíz de Magento.
composer config repositories.kowal composer https://repo.kowal.store
composer config http-basic.repo.kowal.store "TWOJ_EMAIL_KLIENTA" "TWOJ_TOKEN"
composer require kowal/module-datalayer
php bin/magento module:enable Kowal_DataLayer
php bin/magento setup:upgrade
php bin/magento cache:flush
El comandosetup:upgradecrea las columnas:
quote.kowal_attribution_first;quote.kowal_attribution_last;sales_order.kowal_attribution_first;sales_order.kowal_attribution_last.
Las columnas contienen datos serializados de first-touch y last-touch. No deben crearse manualmente.
Actualización de una instalación existente
Antes de actualizar producción, realiza una copia de la base de datos de acuerdo con el procedimiento del proyecto. A continuación, actualiza el paquete y el esquema de Magento:
composer update kowal/module-datalayer --with-dependencies
php bin/magento module:enable Kowal_DataLayer
php bin/magento setup:upgrade
php bin/magento cache:flush
En modo producción, vuelve a ejecutar la compilación DI y el deployment de los assets estáticos. Esto es necesario, entre otros motivos, para el nuevo endpoint de atribución, los observadores quote/order y los cambios en el script del frontend.
En el entorno de producción, si el proyecto lo requiere, realiza el deployment estándar de Magento:
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:flush
Tras actualizar los permisos ACL, es posible que el administrador tenga que volver a iniciar sesión en el panel para ver la posiciónData Layer > GTM Exports.
Configuración básica
Panel de administración:
Stores > Configuration > Kowal > Kowal Data Layer
Menú:
kowal.store > Modules > Data Layer > Settings
General
Enable Module- activa el módulo para el ámbito de configuración seleccionado.Debug Mode- actívalo solo durante las pruebas y la verificación de la implementación.Render Mode- dejaServer and JavaScriptsi no hay ningún motivo para limitar el modo de funcionamiento.Missing Value Strategy- elige si los valores ausentes deben omitirse o enviarse comoundefined.Clear Ecommerce Before Push- recomendadoYes.Fail-safe Mode- recomendadoYes; los procesos críticos para la venta permanecen protegidos incluso después de desactivar esta opción.Log Level- en producción se recomiendaErrors only.Log Payloads- actívalo solo temporalmente.
Product Mapping
Product Identifier Attribute- selecciona el atributo utilizado comoitem_id. Por defecto,sku.Brand Attribute- selecciona el atributo de fabricante/marca. Por defecto,manufacturer.Category Strategy- selecciona la forma de construiritem_category.Category Attribute- configúralo solo si la estrategia de categoría utiliza un atributo de producto.Configurable Product Strategy- decide si se deben usar los datos del hijo/simple o del padre/configurable.Include Out Of Stock Products On Lists- se aplica a los eventos de listas de productos.
Events
Activa los eventos requeridos por la implementación:
user_dataview_item_listselect_itemview_itemadd_to_cartremove_from_cartview_cartadd_to_wishlistbegin_checkoutadd_shipping_infoadd_payment_infopurchasepurchase_test, si la tienda utiliza una página intermedia antes del pago.
Privacy
Send User ID- envía el ID de cliente de Magento para los clientes que han iniciado sesión.Send Hashed Email- envía solo el hash SHA-256 del email. El email sin procesar no se envía adataLayer.
Attribution
Capture First and Last Touch Attributionguarda la fuente de entrada del cliente en quote y en el pedido. Ajuste recomendado:Yes.
El ajuste funciona por store view. Tras desactivarlo, el módulo no registra nuevos touchpoints. Los datos guardados anteriormente en pedidos existentes permanecen en la base de datos.
El módulo reconoce:
- parámetros
utm_source,utm_medium,utm_campaign,utm_id,utm_term,utm_contentyutm_source_platform; - tipos de click ID de Google Ads, Microsoft Ads, Meta, TikTok, Pinterest, X y LinkedIn;
- entradas desde resultados de búsqueda orgánicos;
- referrals externos;
- entradas direct.
Se guardanfirst_touchylast_touch, es decir, la última fuente distinta de direct. La navegación habitual entre subpáginas de la tienda no sobrescribe la fuente. Los referrals procedentes de direcciones de pago, callbacks, returns y páginas de éxito se omiten para que el operador de pago no sea reconocido como fuente de la venta.
La captura funciona por dos vías:
- del lado de Magento para entradas estándar no cacheadas;
- mediante una solicitud ligera del navegador para páginas servidas desde FPC o Varnish.
Los datos se mantienen en la sesión de checkout, se guardan en quote y se copian al order antes de realizar el pedido. El mecanismo cubre el frontend clásico, el checkout AJAX/REST y los pedidos creados a partir de un quote que ya contiene atribución.
Los valores sin procesar degclid,fbclidy otros identificadores de clic no se guardan. El módulo conserva únicamente el tipo de parámetro, por ejemplogclid, y la clasificación resultante de la fuente. Los query strings se eliminan de la landing page y del referrer guardados.
La atribución puede comprobarse:
- en la vista del pedido, en la sección
Customer Attribution; - en
dataLayer, en la propiedadattributiondel eventopurchase; - directamente en las columnas
kowal_attribution_firstykowal_attribution_lastde las tablasquoteysales_order.
La captura de la fuente debe incluirse en la documentación de privacidad de la tienda de acuerdo con la política de implementación. El módulo no crea su propio identificador de usuario a largo plazo ni guarda valores de click ID, pero almacena metadatos de campaña y la fuente del pedido.
Integrations
Integrate With Kowal Cookie Consent- actívalo si la tienda utilizaKowal_CookieConsent.Render GTM From DataLayer Module- dejaNosi GTM ya se renderiza mediante Cookie Consent u otro módulo.Google Tag Manager ID- configúralo solo cuando la renderización de GTM desde este módulo esté activada.purchase_test Redirect Rules- añade únicamente los métodos de pago que deban usar la página intermediapurchase_test.
Modos de reglaspurchase_test:
Static URL- úsalo solo para pagos con una dirección fija del operador.URL Pattern- úsalo cuando baste un patrón de URL con los placeholders{order_id},{order_increment_id},{store_id}o{quote_id}.Adapter Required- úsalo para pasarelas que generan una URL dinámica de transacción. Antes de lanzarlo en producción, hay que añadir un adaptador dedicado para el módulo de pago concreto.
GTM Export Identifiers
En esta sección introduce los identificadores de los servicios que deben incorporarse en los archivos JSON generados:
| Campo en Magento | Valor |
|---|---|
GA4 Measurement ID |
identificador en formatoG-XXXXXXXXXX |
Google Ads Conversion ID |
identificador en formatoAW-XXXXXXXXX |
Google Ads Purchase Conversion Label |
etiqueta de la acción de conversión de compra |
Meta Pixel ID |
Pixel ID numérico |
TikTok Pixel ID |
Pixel ID alfanumérico |
Pinterest Tag ID |
Tag ID numérico |
Microsoft Ads UET Tag ID |
UET Tag ID numérico |
Los campos pueden estar vacíos si la tienda no utiliza una plataforma determinada. Al guardar la configuración, se verifica el formato de cada valor completado. El botón de exportación comprueba únicamente el conjunto requerido por la plataforma seleccionada, por lo que, por ejemplo, la exportación GA4 no requiere configurar Meta ni TikTok.
Tras completar los campos, haz clic enSave Configy, a continuación, en el botón correspondienteDownload ... JSONdel campoGenerate GTM Exports. El archivo descargado ya contiene los identificadores finales. No es necesario editar las variables constantes después de importarlo a GTM.
Configuración multistore
Configura el módulo a nivel de store view si las tiendas difieren en:
- idioma;
- moneda;
- feed publicitario;
- atributo del identificador de producto;
- atributo de marca;
- estructura de categorías;
- métodos de pago;
- reglas de captura de atribución;
- identificadores de servicios utilizados en los paquetes GTM importados.
Verificación de la implementación
- Abre Google Tag Manager Preview.
- Comprueba
dataLayeren la consola del navegador o con la extensión DataLayer Checker. - Prueba la página de producto y el evento
view_item. - Abre una categoría o los resultados de búsqueda y comprueba
view_item_list. - Haz clic en un producto de la lista y comprueba
select_item. - Añade un producto al carrito y comprueba
add_to_cart. - Cambia la cantidad o elimina un producto del carrito y comprueba
remove_from_cart. - Añade un producto a la wishlist y comprueba
add_to_wishlist. - Entra en el carrito y en el checkout, comprueba
view_cartybegin_checkout. - Guarda el método de envío y de pago, comprueba
add_shipping_infoyadd_payment_info. - Realiza un pedido de prueba y comprueba
purchase. - Actualiza la página de éxito y asegúrate de que
purchaseno se duplique. - Comprueba
var/log/kowal_datalayer.log. - En una nueva ventana privada, abre la tienda con la URL
?utm_source=test&utm_medium=cpc&utm_campaign=attribution_test. - Navega por varias subpáginas, añade un producto al carrito y realiza un pedido.
- En la vista del pedido, comprueba la sección
Customer Attributionyattribution.first_touchyattribution.last_touchen el eventopurchase. - Confirma que
first_touch.sourcetiene el valortest,mediumtiene el valorcpcycampaigntiene el valorattribution_test. - En la misma ventana y sesión, vuelve a la tienda desde otra fuente etiquetada y confirma que
first_touchno ha cambiado y quelast_touchse ha actualizado. - Si la tienda utiliza una pasarela externa, confirma después de volver del pago que el dominio del operador no ha sustituido la fuente del pedido.
Exportación de la configuración de Google Tag Manager
En el panel de Magento, ve aStores > Configuration > Kowal > Kowal Data Layer > GTM Export Identifiers. Hay paquetes independientes disponibles para GA4, Google Ads, Meta, TikTok, Pinterest y Microsoft Ads.
- Selecciona el ámbito de configuración adecuado:
Default Config, website o store view. - Completa los identificadores de las plataformas utilizadas y guarda la configuración.
- Haz clic en el botón de descarga del JSON de la plataforma seleccionada en el campo
Generate GTM Exports. - En GTM, crea un nuevo workspace y selecciona
Admin > Import Container. - Indica el archivo descargado y usa el modo
Merge. - Revisa la lista de variables, reglas y etiquetas que se van a añadir, y confirma que las variables constantes contienen los identificadores correctos.
- Comprueba los requisitos de consentimiento y ejecuta GTM Preview.
- Publica el contenedor solo después de confirmar los eventos en la herramienta de diagnóstico de la plataforma.
Los nombres de los elementos llevan el prefijoKowal - nazwa platformy, por lo que los paquetes pueden combinarse en un único contenedor. El eventopurchase_testno se exporta como conversión; las ventas se reportan exclusivamente mediantepurchase.
Si un campo requerido está vacío o tiene un formato incorrecto, el módulo no generará la exportación y mostrará un mensaje indicando el valor que debe corregirse. Esto evita la importación accidental de un contenedor con un placeholder. La página alternativaKowal > Data Layer > GTM Exportssigue estando disponible, pero utiliza valores del ámbitoDefault Config; para implementaciones multistore se recomiendan los botones de la configuración.
Las exportaciones corresponden al contenedor web y al envío browser-side. No sustituyen a las integraciones server-side, como Meta Conversions API o TikTok Events API.
Consentimientos y publicación de GTM
- Las etiquetas publicitarias requieren
ad_storage,ad_user_datayad_personalization. - GA4 utiliza los mecanismos de consentimiento integrados de Google tag.
- Si GTM renderiza
Kowal_CookieConsent, dejaRender GTM From DataLayer Moduleconfigurados comoNo. - No publiques el contenedor sin comprobar Consent Mode, GTM Preview y el diagnóstico de eventos de la plataforma correspondiente.
- Con un CSP restrictivo, añade los dominios de scripts y endpoints de las plataformas seleccionadas de acuerdo con su documentación.
Integraciónpurchase_test
Si el método de pago redirige al cliente fuera de la tienda y conoce la URL de destino del operador, la integración de pago puede usar:
Kowal\DataLayer\Model\PurchaseTestRedirect::prepare($paymentRedirectUrl)
El método devuelve la URL de la página intermedia del módulo. La página intermedia envíapurchase_testy, a continuación, redirige al cliente al operador de pago. Si JavaScript o DataLayer no funciona, la redirección debería ejecutarse igualmente.
Para una integración en la que la URL depende del pedido o del token de transacción, usa:
Kowal\DataLayer\Model\PurchaseTestRedirect::prepareForOrder($order, $fallbackRedirectUrl)
Si el método está configurado en modoAdapter Required, el adaptador debe implementar:
Kowal\DataLayer\Api\PurchaseTestRedirectAdapterInterface
El adaptador debe registrarse en DI como elemento del arrayadaptersparaKowal\DataLayer\Model\PurchaseTest\RedirectAdapterPool. El adaptador es el lugar adecuado para la lógica dependiente de un operador de pago concreto.
Diagnóstico
Falta la sección Customer Attribution en el pedido
- Comprueba si
Capture First and Last Touch Attributionestá activado para la store view correcta. - Confirma la ejecución de
php bin/magento setup:upgradey la presencia de las cuatro columnas de atribución. - Limpia la cache de configuración y de layout.
- Realiza una prueba en una nueva ventana privada con una URL marcada con UTM.
- Comprueba
var/log/kowal_datalayer.logen busca de mensajesattribution capture failedoattribution assignment failed.
La atribución funciona sin FPC, pero no funciona con Varnish
- Comprueba en las herramientas de desarrollador la solicitud POST a
kowal_datalayer/attribution/capture. - Confirma que la solicitud tiene estado
200y se ejecuta en el mismo dominio de la tienda. - Comprueba si CSP, WAF o las reglas de reverse proxy no bloquean el endpoint.
- Después del deployment, asegúrate de que se ha publicado el archivo actual
view/frontend/web/js/data-layer.js.
La compra tiene una fuente incorrecta del operador de pago
Comprueba si el pedido se creó a partir de un quote que contenía atribución antes de la redirección. Las rutas que contienenpayment,callback,returnosuccessno deberían sobrescribir last-touch con el referral. Si un módulo de pago personalizado utiliza otra secuencia, verifica el momento de creación del order y del guardado del quote.
La importación de GTM informa de conflictos
Usa el modoMergey revisa los detalles de los cambios. Los elementos de las exportaciones tienen el prefijoKowal - ...; si en el contenedor existen elementos modificados con el mismo nombre, elige de forma consciente si sobrescribirlos o cambiarles el nombre. Después de cambiar los nombres, comprueba las referencias de las etiquetas a variables y triggers.