Podsumowanie wykonawcze
Tracking nie jest całkowicie niedziałający. Problem polega na tym, że równolegle funkcjonują co najmniej dwie niezależne ścieżki Meta, a kluczowy sygnał Purchase nie ma potwierdzonego, stabilnego odpowiednika server-side. W obecnym stanie dane mogą być dublowane, niespójne i nie nadają się do bezpiecznego skalowania kampanii optymalizowanych na zakup.
Obecna architektura
Shopify
├─ Native Meta / Partner Integration
│ ├─ PageView eid = sh-...
│ ├─ ViewContent eid = sh-...
│ └─ Purchase Browser / Partner integration
│
└─ Customer Events / Stape bridge
↓
Web GTM
├─ [Stape] Meta-* → Meta Browser
├─ [Stape] GA4-* → Google
└─ [Stape] DT-* → sst.cossy.com
↓
sGTM
├─ Meta CAPI
├─ Google Ads / GA4
├─ Klaviyo
└─ osobna gałąź purchase_webhookGłówne ryzyko: dwa niezależne browser pipelines dla Meta pracują na tym samym Pixel ID, ale generują różne event_id.
Najważniejsze ustalenia
Potwierdzony duplikat Meta browser events
Na jednej stronie produktu rejestrowane są dwa ViewContent dla tego samego Pixel ID, ale z różnymi identyfikatorami zdarzenia. To nie jest poprawna para Browser + Server do deduplikacji, tylko dwa niezależne zdarzenia browser-side.


Web GTM / Stape działa, ale nie w pełni spójnie
Preview Web GTM potwierdza uruchamianie tagów Meta, GA4 i Data Tag. Konfiguracja ViewContent posiada własny Unique Event ID, dane ecommerce i wymaganie ad_storage.



PageView jest skonfigurowany niespójnie
Tag uruchamia się w GTM, ale podczas testu nie potwierdzono odpowiadającego mu requestu w Network. Konfiguracja różni się także od działającego ViewContent.


Purchase / Meta CAPI
Shopify / Partner integration
Brak stabilnego odpowiednika w testach
purchase + purchase_webhook
Inne zdarzenia Stape server-side docierają do sGTM i Meta CAPI, więc problem nie wygląda na awarię całego SST. Najbardziej prawdopodobny obszar błędu znajduje się wcześniej: generowanie lub transport Purchase z Shopify/Web GTM albo osobne źródło webhook.
purchase_webhook → [Webhook] Meta - Purchase → [Webhook] GA4 - Purchase → [Webhook] GADS - Purchase → [Webhook] Klaviyo - Placed Order → Store transaction id
W Shopify Admin nie było widocznej ręcznej subskrypcji webhook. Nie wyklucza to subskrypcji zarządzanej przez aplikację — źródło wymaga osobnej weryfikacji.
Consent i uruchamianie tagów
W kontenerze występuje kilka różnych mechanizmów warunkowania zdarzeń: proste triggery ce-*, Trigger Groups łączące consent z eventem, osobny Pandectes_Consent_Update oraz wbudowane wymagania GTM Consent Mode.


Meta Catalog / Product Feed
Natywna integracja Facebook & Instagram jest jednocześnie źródłem trackingu oraz powiązaniem z obecnym katalogiem Meta. Dlatego jej wyłączenie nie powinno być wykonywane „w ciemno”. Najpierw trzeba rozdzielić funkcję feed/catalog od źródła browser tracking i upewnić się, że katalog pozostanie zasilany po zmianach.
Dodatkowe problemy
| Obszar | Problem | Znaczenie |
|---|---|---|
| Meta Pixel | Duplicate Pixel ID | Potwierdza wielokrotną inicjalizację |
| Meta params | Nieprawidłowy format currency w części requestów | Ryzyko błędnej jakości eventów |
| GTM | Różne trigger patterns dla podobnych zdarzeń | Trudne utrzymanie i testowanie |
| Template / exception | PUT_YOUR_VALUE_HERE | Ślad niedokończonej konfiguracji |
| Diagnostyka | Tag fired bez potwierdzonego requestu | Firing w GTM nie gwarantuje dostarczenia danych |
Rekomendowana architektura docelowa
Jeżeli celem jest pełna kontrola nad browser + server trackingiem, właściwym kierunkiem jest jedna spójna ścieżka oparta o Customer Events / Web GTM / sGTM, bez równoległego browser trackingu Meta z Shopify Partner Integration.
Shopify Customer Events
↓
Web GTM
├─ Meta Browser
├─ GA4 / Google Ads
└─ Stape Data Tag
↓
sGTM
├─ Meta CAPI
├─ Google
└─ pozostałe destinationsWarunki: jeden event_id dla każdej pary Browser/Server, spójny Consent Mode, osobno odtworzony i przetestowany Purchase oraz bezpieczne zachowanie Meta Catalog / Product Feed.
Plan działań
| Priorytet | Działanie | Rezultat |
|---|---|---|
| P0 | Przywrócić i potwierdzić pełną ścieżkę Purchase → Web GTM → sGTM → Meta CAPI. | Stabilny sygnał zakupu |
| P0 | Ustalić źródło purchase_webhook i zdecydować, czy druga server-side ścieżka jest potrzebna. | Jednoznaczna architektura Purchase |
| P1 | Rozdzielić zależność Meta Catalog / Product Feed od źródła trackingu. | Możliwość bezpiecznego wyłączenia duplikatów |
| P1 | Wyłączyć zbędny Meta browser pipeline. | Brak dublowania browser events |
| P1 | Ujednolicić event_id i consent handling. | Poprawna deduplikacja Browser/Server |
| P2 | Przetestować cały funnel w Web GTM, sGTM, Network i Meta Test Events. | Potwierdzona jakość danych przed skalowaniem kampanii |