Kowal Data Layer dla Magento 2
- SKU
- M2-DATA-LAYER
Opis / Kowal Data Layer dla Magento 2
MAGENTO 2 · ECOMMERCE · GTM · ATRYBUCJA
Połącz zdarzenia ecommerce ze źródłem zamówienia.
Kowal Data Layer
Przygotuj dane zakupowe Magento dla GA4 i konfiguracji tagów reklamowych. Zachowaj first touch i last non-direct touch przy zamówieniu, a wdrożenie tagów sprawdź w podglądzie GTM.
Zdarzenia ecommerce · Eksporty GTM · Atrybucja w panelu
JAK TO DZIAŁA W PRAKTYCE
01 · Dobierasz dane i identyfikatory
Ustawiasz item_id, markę, kategorię i Store View.
02 · Konfigurujesz tagi oraz zgodę
Importujesz eksport GTM i łączysz go z CMP.
03 · Sprawdzasz zdarzenia i zamówienia
Weryfikujesz wartości, waluty i zapisaną atrybucję.
Co zyskuje Twój sklep?
Poznaj funkcje, zastosowanie i ustawienia modułu.
Data Layer Magento 2 dla GA4, GTM i atrybucji sprzedaży
Kowal Data Layer tworzy spójną warstwę danych ecommerce bezpośrednio z Magento 2. Obsługuje pełną ścieżkę zakupową, integracje przez Google Tag Manager oraz zapis źródła konkretnego zamówienia.
To rozwiązanie dla sklepów, które chcą połączyć analitykę GA4, kampanie reklamowe i dane Magento bez ręcznego dopisywania skryptów do kolejnych elementów motywu i checkoutu.
GA4 ecommerce
Eventy od listy produktów i PDP przez koszyk, wishlistę i checkout aż do zakupu.
Gotowe eksporty GTM
Pakiety dla GA4, Google Ads, Meta, TikTok, Pinterest, Microsoft Ads i OpenAI Ads.
Atrybucja zamówień
First touch i last non-direct touch z informacją o źródle, medium, kampanii, landing page i referrerze.
Analityka nie może blokować sprzedaży
Moduł został zaprojektowany w modelu fail-safe. Błędy warstwy danych lub atrybucji są izolowane i logowane, ale nie powinny zatrzymywać koszyka, checkoutu, zamówienia ani przekierowania do płatności.
Obsługiwane zdarzenia ecommerce
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 i purchase_test.
Multistore i feedy produktowe
Konfiguracja per Store View pozwala dopasować identyfikatory, walutę, nazwy, kategorię i markę. item_id może odpowiadać identyfikatorom stosowanym w Google Merchant Center, Meta Catalog i innych feedach.
Consent Mode
Moduł może współpracować z Kowal Cookie Consent. Data Layer odpowiada za dane ecommerce, a CMP za zgodę i uruchamianie odpowiednich tagów.
FAQ
Czy moduł zastępuje Google Tag Manager?
Nie. Przygotowuje dane ecommerce i gotowe eksporty konfiguracji, które można wykorzystać w GTM.
Czy działa z Varnish i FPC?
Tak, rozwiązanie uwzględnia sklepy korzystające z cache oraz dynamiczne elementy checkoutu.
Czy zapisuje źródło zamówienia w Magento?
Tak. Atrybucja first touch i last non-direct touch jest kopiowana z koszyka do zamówienia.
Czy obsługuje sklepy multistore?
Tak. Konfiguracja identyfikatorów i danych może działać na poziomie Store View.
Czy błąd analityki może zablokować checkout?
Architektura została zaprojektowana tak, aby błędy analityczne były izolowane od procesu sprzedaży.
Eksport GTM jest początkiem wdrożenia
Kowal → Data Layer → GTM Exports pozwala pobrać JSON dla wybranej platformy po skonfigurowaniu identyfikatorów. Zaimportuj pakiet do workspace GTM przez Merge, sprawdź tagi oraz Preview i dopiero potem opublikuj konfigurację.
Aktualizacja modułu Magento nie aktualizuje wcześniej zaimportowanych tagów GTM. Ponownie pobierz odpowiedni eksport, gdy zmienia się jego logika, i sprawdź duplikaty tagów oraz konwersji.
Atrybucja w panelu i granice pomiaru
Data Layer → Customer Attribution pokazuje zamówienia z zapisaną atrybucją, także zakupy gości. Grid ma filtry, sortowanie i zapisane widoki; dostęp wymaga osobnego uprawnienia roli.
Źródła UTM, typy click ID, organic i referral są rozpoznawane bez zapisywania pełnych query ani surowych reklamowych click ID. Dane odzwierciedlają rozpoznane wejścia, a nie pełny obraz wszystkich kontaktów klienta na różnych urządzeniach.
Purchase oraz diagnostyczne purchase_test
purchase_test w standardowym REST checkout oznacza utworzenie zamówienia, nie opłacenie zakupu. Eksportowane tagi konwersji go pomijają. Zdarzenie wymaga osobnego włączenia w konfiguracji.
Przekierowania do niestandardowych bramek płatności mogą wymagać adaptera. W logach var/log/kowal_datalayer.log sprawdzisz błędy; projekt izoluje je od procesu sprzedaży.
Zgoda, prywatne dane i cache
CMP zarządza zgodami oraz aktualizacją ich stanu. Gdy Kowal Cookie Consent ładuje GTM, wyłącz drugi loader GTM w Data Layer. Sam eksport tagów nie zastępuje konfiguracji zgód.
Tożsamość użytkownika jest pobierana z prywatnego endpointu, aby nie mieszać danych klientów w FPC. Dla zewnętrznego loadera GTM uwzględnij gotowość user_data, właściwe zgody i wynik w Preview.
Hyvä oraz zgodność identyfikatorów
Pakiet zawiera opcjonalny Kowal_DataLayerHyva, włączany razem z Enable Hyva Integration dla właściwego Store View. Adapter obsługuje private-content, dynamiczne listy i FormData.
Standardowy REST checkout jest objęty zakresem. Hyvä Checkout/Magewire i GraphQL wymagają osobnej integracji. item_id w eksporcie musi odpowiadać identyfikatorom właściwego feedu lub katalogu reklamowego.
Instalacja przez Composer
Pakiet kowal/module-datalayer, moduł Kowal_DataLayer. Po skonfigurowaniu dostępu do repozytorium Kowal zainstaluj pakiet, włącz moduł, zaktualizuj Magento i wyczyść cache. W produkcji uwzględnij kompilację i wdrożenie treści statycznych zgodnie z procesem sklepu.
Od konfiguracji do efektu
1. Dobierasz dane i identyfikatory
Ustawiasz item_id, markę, kategorię i Store View.
2. Konfigurujesz tagi oraz zgodę
Importujesz eksport GTM i łączysz go z CMP.
3. Sprawdzasz zdarzenia i zamówienia
Weryfikujesz wartości, waluty i zapisaną atrybucję.
Od wejścia z kampanii do zamówienia
Klient trafia z kampanii, ogląda produkt i finalizuje zakup. Moduł zapisuje rozpoznane źródła w quote oraz przenosi je do zamówienia.
W panelu porównujesz first touch i last non-direct touch. W GTM Preview sprawdzasz zdarzenie purchase z wartością, walutą i pozycjami.
Uporządkuj dane ecommerce i atrybucję sprzedaży
Chcesz dopasować moduł do swojego sklepu? Zapytaj o wdrożenie Kowal Data Layer i omów konfigurację lub potrzebne rozszerzenia.
Więcej informacji
| Motyw Hyvä | Zgodny z motywem Hyvä |
|---|---|
| Zgodność z szablonem | Hyvä, Luma / Blank, KOWAL |
Instrukcja Instalacji modułu
Przed rozpoczęciem
Instrukcja instalacji i konfiguracji
Wymagania
- Magento Open Source / Adobe Commerce 2.4.x.
- PHP zgodne z używaną wersją Magento.
- Dostęp Composer do prywatnego repozytorium modułu.
- Moduł
kowal/base. - Uprawnienie do wykonania
setup:upgrade, ponieważ moduł dodaje pola atrybucji do tabelquoteisales_order. - Kontener webowy Google Tag Managera, jeśli sklep ma korzystać z gotowych eksportów integracji.
- Opcjonalnie:
Kowal_CookieConsent, jeżeli sklep używa go do GTM i Consent Mode.
Instalacja Composerem
Dane dostępowe do repozytorium Composer (adres e-mail klienta i token licencyjny) otrzymasz e-mailem po zakupie. Są również dostępne w panelu klienta po zalogowaniu na kowal.store. Zastąp TWOJ_EMAIL_KLIENTA adresem e-mail swojego konta, a TWOJ_TOKEN otrzymanym tokenem. Polecenia wykonaj w katalogu głównym Magento.
Dodaj repozytorium Composer
composer config repositories.kowal composer https://repo.kowal.storeSkonfiguruj dane dostępowe
composer config http-basic.repo.kowal.store "TWOJ_EMAIL_KLIENTA" "TWOJ_TOKEN"Zainstaluj pakiet modułu
composer require kowal/module-datalayerWłącz moduł
php bin/magento module:enable Kowal_DataLayerZaktualizuj Magento
php bin/magento setup:upgradeWyczyść pamięć podręczną
php bin/magento cache:flush
Polecenie setup:upgrade tworzy kolumny:
quote.kowal_attribution_first;quote.kowal_attribution_last;sales_order.kowal_attribution_first;sales_order.kowal_attribution_last.
Kolumny zawierają zserializowane dane first-touch i last-touch. Nie należy tworzyć ich ręcznie.
Aktualizacja istniejącej instalacji
Przed aktualizacją produkcji wykonaj kopię bazy danych zgodnie z procedurą projektu. Następnie zaktualizuj pakiet i schemat 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
W trybie produkcyjnym wykonaj ponownie kompilację DI i deployment statycznych assetów. Jest to wymagane między innymi dla nowego endpointu atrybucji, obserwatorów quote/order i zmian w skrypcie frontendowym.
W środowisku produkcyjnym, jeśli projekt tego wymaga, wykonaj standardowy deployment Magento:
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:flush
Po aktualizacji uprawnień ACL administrator może potrzebować ponownego zalogowania do panelu, aby zobaczyć pozycję Data Layer > GTM Exports.
Konfiguracja podstawowa
Panel administracyjny:
Stores > Configuration > Kowal > Kowal Data Layer
Menu:
kowal.store > Modules > Data Layer > Settings
General
Enable Module- włącz moduł dla wybranego zakresu konfiguracji.Debug Mode- włącz tylko podczas testów i weryfikacji wdrożenia.Render Mode- pozostawServer and JavaScript, jeśli nie ma powodu do ograniczenia trybu działania.Missing Value Strategy- wybierz, czy brakujące wartości mają być pomijane, czy wysyłane jakoundefined.Clear Ecommerce Before Push- zalecaneYes.Fail-safe Mode- zalecaneYes; procesy krytyczne dla sprzedaży pozostają chronione również po wyłączeniu tej opcji.Log Level- na produkcji zalecaneErrors only.Log Payloads- włączaj tylko tymczasowo.
Product Mapping
Product Identifier Attribute- wybierz atrybut używany jakoitem_id. Domyślniesku.Brand Attribute- wybierz atrybut producenta/marki. Domyślniemanufacturer.Category Strategy- wybierz sposób budowaniaitem_category.Category Attribute- ustaw tylko wtedy, gdy strategia kategorii korzysta z atrybutu produktu.Configurable Product Strategy- zdecyduj, czy używać danych dziecka/simple czy rodzica/configurable.Include Out Of Stock Products On Lists- dotyczy eventów list produktowych.
Events
Włącz eventy wymagane przez wdrożenie:
user_dataview_item_listselect_itemview_itemadd_to_cartremove_from_cartview_cartadd_to_wishlistbegin_checkoutadd_shipping_infoadd_payment_infopurchasepurchase_test, jeśli sklep używa strony pośredniej przed płatnością.
Privacy
Send User ID- wysyła ID klienta Magento dla zalogowanych klientów.Send Hashed Email- wysyła tylko hash SHA-256 emaila. Surowy email nie trafia dodataLayer.
Attribution
Capture First and Last Touch Attribution zapisuje źródło wejścia klienta w quote i zamówieniu. Zalecane ustawienie: Yes.
Ustawienie działa per store view. Po jego wyłączeniu moduł nie rejestruje nowych touchpointów. Dane zapisane wcześniej w istniejących zamówieniach pozostają w bazie.
Moduł rozpoznaje:
- parametry
utm_source,utm_medium,utm_campaign,utm_id,utm_term,utm_contentiutm_source_platform; - typy click ID Google Ads, Microsoft Ads, Meta, TikTok, Pinterest, X i LinkedIn;
- wejścia z organicznych wyników wyszukiwania;
- zewnętrzne referrale;
- wejścia direct.
Zapisywane są first_touch i last_touch, czyli ostatnie źródło inne niż direct. Zwykłe przechodzenie między podstronami sklepu nie nadpisuje źródła. Referrale z adresów płatności, callbacków, returnów i stron sukcesu są pomijane, aby operator płatności nie został uznany za źródło sprzedaży.
Przechwytywanie działa dwutorowo:
- po stronie Magento dla standardowych, niecache'owanych wejść;
- przez lekki request przeglądarkowy dla stron obsługiwanych z FPC lub Varnish.
Dane są utrzymywane w sesji checkoutowej, zapisywane przy quote i kopiowane do order przed złożeniem zamówienia. Mechanizm obejmuje klasyczny frontend, checkout AJAX/REST oraz zamówienia tworzone z quote zawierającego już atrybucję.
Surowe wartości gclid, fbclid i pozostałych identyfikatorów kliknięć nie są zapisywane. Moduł zachowuje wyłącznie typ parametru, np. gclid, i wynikową klasyfikację źródła. Query stringi są usuwane z zapisywanego landing page i referrera.
Atrybucję można sprawdzić:
- na widoku zamówienia w sekcji
Customer Attribution; - w
dataLayerwe właściwościattributioneventupurchase; - bezpośrednio w kolumnach
kowal_attribution_firstikowal_attribution_lasttabelquoteorazsales_order.
Przechwytywanie źródła należy uwzględnić w dokumentacji prywatności sklepu zgodnie z polityką wdrożenia. Moduł nie tworzy własnego długoterminowego identyfikatora użytkownika i nie zapisuje wartości click ID, ale przechowuje metadane kampanii oraz źródło zamówienia.
Integrations
Integrate With Kowal Cookie Consent- włącz, jeśli sklep używaKowal_CookieConsent.Render GTM From DataLayer Module- zostawNo, jeśli GTM jest już renderowany przez Cookie Consent albo inny moduł.Google Tag Manager ID- ustaw tylko wtedy, gdy renderowanie GTM z tego modułu jest włączone.purchase_test Redirect Rules- dodaj tylko te metody płatności, które mają używać strony pośredniejpurchase_test.
Tryby reguł purchase_test:
Static URL- używaj tylko dla płatności ze stałym adresem operatora.URL Pattern- używaj, gdy wystarczy wzorzec URL z placeholderami{order_id},{order_increment_id},{store_id}lub{quote_id}.Adapter Required- używaj dla bramek, które generują dynamiczny URL transakcji. Przed uruchomieniem na produkcji trzeba dodać dedykowany adapter dla konkretnego modułu płatności.
GTM Export Identifiers
W tej sekcji wpisz identyfikatory usług, które mają zostać osadzone w generowanych plikach JSON:
| Pole w Magento | Wartość |
|---|---|
GA4 Measurement ID |
identyfikator w formacie G-XXXXXXXXXX |
Google Ads Conversion ID |
identyfikator w formacie AW-XXXXXXXXX |
Google Ads Purchase Conversion Label |
etykieta akcji konwersji zakupu |
Meta Pixel ID |
numeryczny Pixel ID |
TikTok Pixel ID |
alfanumeryczny Pixel ID |
Pinterest Tag ID |
numeryczny Tag ID |
Microsoft Ads UET Tag ID |
numeryczny UET Tag ID |
Pola mogą być puste, jeżeli sklep nie korzysta z danej platformy. Zapis konfiguracji sprawdza format każdej uzupełnionej wartości. Przycisk eksportu sprawdza komplet wymagany tylko przez wybraną platformę, dlatego np. eksport GA4 nie wymaga konfiguracji Meta ani TikToka.
Po uzupełnieniu pól kliknij Save Config, a następnie odpowiedni przycisk Download ... JSON w polu Generate GTM Exports. Pobrany plik zawiera już finalne identyfikatory. Nie trzeba edytować zmiennych stałych po imporcie do GTM.
Konfiguracja multistore
Konfiguruj moduł na poziomie store view, jeżeli sklepy różnią się:
- językiem;
- walutą;
- feedem reklamowym;
- atrybutem identyfikatora produktu;
- atrybutem brandu;
- strukturą kategorii;
- metodami płatności;
- zasadami przechwytywania atrybucji;
- identyfikatorami usług używanymi w importowanych paczkach GTM.
Weryfikacja wdrożenia
- Otwórz Google Tag Manager Preview.
- Sprawdź
dataLayerw konsoli przeglądarki albo rozszerzeniem DataLayer Checker. - Przetestuj stronę produktu i event
view_item. - Otwórz kategorię lub wyniki wyszukiwania i sprawdź
view_item_list. - Kliknij produkt na liście i sprawdź
select_item. - Dodaj produkt do koszyka i sprawdź
add_to_cart. - Zmień ilość lub usuń produkt z koszyka i sprawdź
remove_from_cart. - Dodaj produkt do wishlisty i sprawdź
add_to_wishlist. - Wejdź do koszyka i checkoutu, sprawdź
view_cartorazbegin_checkout. - Zapisz metodę dostawy i płatności, sprawdź
add_shipping_infoorazadd_payment_info. - Złóż zamówienie testowe i sprawdź
purchase. - Odśwież stronę sukcesu i upewnij się, że
purchasenie duplikuje się. - Sprawdź
var/log/kowal_datalayer.log. - W nowym oknie prywatnym otwórz sklep z URL-em
?utm_source=test&utm_medium=cpc&utm_campaign=attribution_test. - Przejdź przez kilka podstron, dodaj produkt do koszyka i złóż zamówienie.
- Na widoku zamówienia sprawdź sekcję
Customer Attributionorazattribution.first_touchiattribution.last_touchw evenciepurchase. - Potwierdź, że
first_touch.sourcema wartośćtest,mediumma wartośćcpc, acampaignma wartośćattribution_test. - W tym samym oknie i sesji wróć do sklepu z innego oznaczonego źródła i potwierdź, że
first_touchpozostał bez zmian, alast_touchzostał zaktualizowany. - Jeżeli sklep używa zewnętrznej bramki, potwierdź po powrocie z płatności, że domena operatora nie zastąpiła źródła zamówienia.
Eksport konfiguracji Google Tag Managera
W panelu Magento przejdź do Stores > Configuration > Kowal > Kowal Data Layer > GTM Export Identifiers. Dostępne są osobne paczki dla GA4, Google Ads, Meta, TikTok, Pinterest i Microsoft Ads.
- Wybierz właściwy zakres konfiguracji:
Default Config, website albo store view. - Uzupełnij identyfikatory używanych platform i zapisz konfigurację.
- Kliknij przycisk pobrania JSON wybranej platformy w polu
Generate GTM Exports. - W GTM utwórz nowy workspace i wybierz
Admin > Import Container. - Wskaż pobrany plik i użyj trybu
Merge. - Przejrzyj listę dodawanych zmiennych, reguł i tagów oraz potwierdź, że zmienne stałe zawierają właściwe identyfikatory.
- Sprawdź wymagania zgód i uruchom GTM Preview.
- Opublikuj kontener dopiero po potwierdzeniu eventów w narzędziu diagnostycznym platformy.
Nazwy elementów są poprzedzone prefiksem Kowal - nazwa platformy, dzięki czemu paczki można łączyć w jednym kontenerze. Event purchase_test nie jest eksportowany jako konwersja; sprzedaż jest raportowana wyłącznie przez purchase.
Jeżeli wymagane pole jest puste albo ma nieprawidłowy format, moduł nie wygeneruje eksportu i wyświetli komunikat ze wskazaniem wartości do poprawy. Zapobiega to przypadkowemu importowi kontenera z placeholderem. Alternatywna strona Kowal > Data Layer > GTM Exports pozostaje dostępna, ale korzysta z wartości z zakresu Default Config; do wdrożeń multistore zalecane są przyciski w konfiguracji.
Eksporty dotyczą kontenera webowego i wysyłki browser-side. Nie zastępują integracji serwerowych, takich jak Meta Conversions API lub TikTok Events API.
Zgody i publikacja GTM
- Tagi reklamowe wymagają
ad_storage,ad_user_dataiad_personalization. - GA4 korzysta z wbudowanych mechanizmów zgód Google tagu.
- Jeśli GTM renderuje
Kowal_CookieConsent, pozostawRender GTM From DataLayer Moduleustawione naNo. - Nie publikuj kontenera bez sprawdzenia Consent Mode, GTM Preview oraz diagnostyki eventów właściwej platformy.
- Przy restrykcyjnym CSP dodaj domeny skryptów i endpointów wybranych platform zgodnie z ich dokumentacją.
Integracja purchase_test
Jeżeli metoda płatności przekierowuje klienta poza sklep i zna docelowy URL operatora, integracja płatności może użyć:
Kowal\DataLayer\Model\PurchaseTestRedirect::prepare($paymentRedirectUrl)
Metoda zwraca URL strony pośredniej modułu. Strona pośrednia wysyła purchase_test, a następnie przekierowuje klienta do operatora płatności. Jeśli JavaScript lub DataLayer nie zadziała, przekierowanie nadal powinno zostać wykonane.
Dla integracji, w której URL zależy od zamówienia albo tokenu transakcji, użyj:
Kowal\DataLayer\Model\PurchaseTestRedirect::prepareForOrder($order, $fallbackRedirectUrl)
Jeżeli metoda jest ustawiona w trybie Adapter Required, adapter powinien implementować:
Kowal\DataLayer\Api\PurchaseTestRedirectAdapterInterface
Adapter należy zarejestrować w DI jako element tablicy adapters dla Kowal\DataLayer\Model\PurchaseTest\RedirectAdapterPool. Adapter jest właściwym miejscem na logikę zależną od konkretnego operatora płatności.
Diagnostyka
Brak sekcji Customer Attribution na zamówieniu
- Sprawdź, czy
Capture First and Last Touch Attributionjest włączone dla właściwego store view. - Potwierdź wykonanie
php bin/magento setup:upgradei obecność czterech kolumn atrybucji. - Wyczyść cache konfiguracji i layoutu.
- Wykonaj test w nowym oknie prywatnym z oznaczonym URL-em UTM.
- Sprawdź
var/log/kowal_datalayer.logpod kątem komunikatówattribution capture failedlubattribution assignment failed.
Atrybucja działa bez FPC, ale nie działa z Varnish
- Sprawdź w narzędziach deweloperskich request POST do
kowal_datalayer/attribution/capture. - Potwierdź, że request ma status
200i jest wykonywany do tej samej domeny sklepu. - Sprawdź, czy CSP, WAF albo reguły reverse proxy nie blokują endpointu.
- Po deploymentcie upewnij się, że został opublikowany aktualny plik
view/frontend/web/js/data-layer.js.
Zakup ma błędne źródło operatora płatności
Sprawdź, czy zamówienie powstało z quote zawierającego atrybucję przed przekierowaniem. Trasy zawierające payment, callback, return lub success nie powinny nadpisywać last-touch referralem. Jeżeli niestandardowy moduł płatności używa innej sekwencji, zweryfikuj moment utworzenia order i zapisu quote.
Import GTM zgłasza konflikty
Użyj trybu Merge i przejrzyj szczegóły zmian. Elementy eksportów mają prefiks Kowal - ...; jeśli w kontenerze istnieją zmodyfikowane elementy o tej samej nazwie, wybierz świadomie nadpisanie albo zmianę nazwy. Po zmianie nazw sprawdź referencje tagów do zmiennych i triggerów.