- Zduplikowane zdarzenie zakupu to jedno zamówienie, które platforma reklamowa liczy jako dwa lub więcej zakupów.
- Zwykle przyczyną jest piksel w przeglądarce i zdarzenie server-side bez wspólnego event id albo dwa narzędzia wysyłające ten sam piksel.
- Meta, TikTok, Snapchat, Pinterest i Reddit zachowują po jednej kopii, gdy zdarzenia z przeglądarki i server-side mają zgodne identyfikatory i docierają w oknie czasowym danej platformy.
- Gdy Meta, Google i TikTok przypisują sobie tę samą sprzedaż, żadne zdarzenie nie zostało wysłane dwa razy: to nakładająca się atrybucja, a deduplikacja jej nie naprawi.
- Porównaj liczbę zakupów z każdego źródła z zamówieniami w sklepie: jedno źródło z większą liczbą zakupów niż zamówień oznacza drugiego nadawcę.
Zduplikowane zdarzenia zakupu pojawiają się, gdy platforma reklamowa liczy jedno zamówienie jako dwa lub więcej zakupów. Zwykle przyczyną jest piksel w przeglądarce i zdarzenie server-side, które nie mają wspólnego event id, albo dwa narzędzia wysyłające ten sam piksel. Skutkiem są zawyżone konwersje, ROAS wyglądający lepiej, niż jest w rzeczywistości, i ustalanie stawek, które uczy się na sprzedaży, która nigdy się nie wydarzyła.
Ten poradnik wyjaśnia przyczyny, różnicę między duplikatami w obrębie jednej platformy a kilkoma platformami przypisującymi sobie tę samą sprzedaż, jak działa deduplikacja na platformach Meta, TikTok, Snapchat, Pinterest i Reddit oraz jak znaleźć i naprawić duplikaty.
Co uznaje się za zduplikowane zdarzenie zakupu?
Dwa różne problemy nazywa się podwójnym liczeniem. Mają różne przyczyny i tylko jeden z nich jest błędem trackingu.
| Duplikat w obrębie jednej platformy | Kilka platform przypisuje sobie jedną sprzedaż | |
|---|---|---|
| Co się dzieje | Jedna platforma liczy to samo zamówienie więcej niż raz | Każda z kilku platform przypisuje sobie zasługę za to samo zamówienie |
| Przykład | Meta pokazuje 2 zakupy dla jednego zamówienia za $80 | Meta, Google i TikTok zgłaszają to samo zamówienie za $80 |
| Przyczyna | Dwa zdarzenia dla jednego zamówienia bez wspólnego event id | Każda platforma przypisuje sobie sprzedaż według własnych reguł atrybucji |
| Naprawia to deduplikacja | Tak | Nie |
| Co zrobić | Jeden nadawca na piksel i jeden event id na zamówienie | Porównaj z zamówieniami w sklepie i używaj jednego modelu atrybucji |
Dlaczego zakupy są liczone dwa razy
Piksel w przeglądarce i zdarzenie server-side bez wspólnego id
Wiele sklepów celowo wysyła każdy zakup dwa razy: raz z piksela w przeglądarce i raz z serwera przez Conversions API. To dobra konfiguracja, bo kopia z serwera dociera wtedy, gdy kopia z przeglądarki jest zablokowana. Platforma może jednak połączyć obie kopie tylko wtedy, gdy mają to samo event id i tę samą nazwę zdarzenia. Jeśli przeglądarka używa losowego id, a serwer numeru zamówienia, platforma widzi dwa różne zakupy.
Dwa narzędzia wysyłające ten sam piksel
To częsta przyczyna, którą łatwo przeoczyć, zwłaszcza po przejściu na nowe narzędzie do trackingu. Sklep instaluje aplikację do trackingu, ale zostawia własną aplikację kanału sprzedaży platformy, tag Google Tag Manager albo kod piksela w motywie. Każde narzędzie wysyła własny Purchase ze swoimi id. Deduplikacja wewnątrz każdego narzędzia działa, ale platforma i tak otrzymuje dwa niepowiązane zakupy.
To samo zdarzenie wysłane ponownie
Tag zakupu na stronie potwierdzenia zamówienia może zadziałać ponownie, gdy kupujący odświeży lub ponownie odwiedzi stronę. Serwer może też wysłać zamówienie dwa razy, na przykład raz przy jego utworzeniu i drugi raz po opłaceniu. Zbuduj event id z order id, żeby powtórka miała to samo id co pierwsza kopia, a platforma mogła ją rozpoznać.
Jak działa deduplikacja?
Deduplikacja to sposób, w jaki platforma zachowuje jedną kopię zdarzenia, które otrzymała więcej niż raz. Zasada jest podobna na platformach opisanych w tym poradniku: kopie muszą mieć to samo id, zwykle razem z tą samą nazwą zdarzenia, i muszą dotrzeć w określonym oknie czasowym. Platforma zachowuje wtedy jedną kopię, a resztę odrzuca.
browser Purchase event_id=order-1042Piksel w przeglądarce w checkoucieserver Purchase event_id=order-1042Conversions API, ta sama nazwa i id: scalone z pierwszymbrowser Purchase event_id=7c1e9a40Druga aplikacja na tym samym pikselu, z własnym id: policzone ponownieZ tego wynikają dwie praktyczne zasady. Utwórz id raz, z czegoś, co znają zarówno przeglądarka, jak i serwer, na przykład z order id. I używaj dokładnie tej samej nazwy zdarzenia po obu stronach, tak jak definiuje ją platforma, na przykład Purchase w Meta.
Zasady deduplikacji na poszczególnych platformach
Szczegóły różnią się w zależności od platformy. Ta tabela podsumowuje oficjalną dokumentację każdej platformy z października 2026.
| Platforma | Pole przeglądarki | Pole serwera | Okno | Uwagi |
|---|---|---|---|---|
| Meta | eventID | event_id | 48 godzin | Nazwa zdarzenia też musi się zgadzać. Rozwiązanie zastępcze z fbp lub external_id działa tylko wtedy, gdy zdarzenie z przeglądarki dotrze jako pierwsze. |
| TikTok | event_id | event_id | 48 godzin | Nazwa zdarzenia też musi się zgadzać. TikTok zachowuje pierwsze otrzymane zdarzenie. |
| Snapchat | client_dedup_id, a dla zakupów transaction_id | event_id, a dla zakupów order_id | 48 godzin lub 30 dni dla order id zakupu | Nazwa zdarzenia też musi się zgadzać. Para client_dedup_id ma pierwszeństwo. |
event_id | event_id | 48 godzin | Wyślij tę samą nazwę zdarzenia z obu źródeł. Pinterest zachowuje pierwsze otrzymane zdarzenie. | |
conversionId | conversion_id | 2 dni | Ten sam typ zdarzenia i ta sama nazwa dla zdarzeń niestandardowych. Działa co godzinę, a jego wynik może pojawić się nawet po 24 godzinach. |
W ROASaurus piksele w przeglądarce dla Meta, TikTok, Snapchat, Pinterest i Reddit wysyłają to samo event id co zdarzenia server-side, więc te platformy robią deduplikację. W przypadku Snapchat piksel wysyła też id zamówienia jako transaction_id, które odpowiada order_id w zakupie server-side. W przypadku Pinterest Tag i API używają zgodnych nazw zdarzeń. X, Microsoft Advertising i Taboola otrzymują wyłącznie zdarzenia server-side, więc nie ma czego scalać. Jeśli wysyłasz zdarzenia samodzielnie, poradnik o Meta Conversions API pokazuje, gdzie w pikselu i w wywołaniu API trafia event id.
Kilka platform przypisujących sobie jedną sprzedaż to nie zduplikowane zdarzenie
Teraz drugi problem. Kupujący ogląda film na TikToku, dwa dni później klika reklamę Google Shopping i kupuje po reklamie retargetingowej w Meta. Każda platforma ma własny zapis kliknięcia lub wyświetlenia i każda zgłasza sprzedaż. Żadne zdarzenie nie zostało wysłane dwa razy, więc żadne ustawienie deduplikacji tego nie zmieni.
Dlatego sumowanie przychodu z platform zawsze zawyża to, ile zarobiły twoje reklamy. Aby ocenić kanały względem siebie, użyj własnych danych o zamówieniach i jednego modelu atrybucji dla wszystkich kanałów. Głębiej omawia to nasz poradnik dlaczego Ads Manager i Shopify pokazują różne dane. W atrybucji ROASaurus zasługa za każde zamówienie sumuje się do jednego zamówienia we wszystkich kanałach.
Jak znaleźć zduplikowane zdarzenia zakupu
- Porównaj każde źródło ze swoimi zamówieniami
Weź jeden pełny dzień. Policz zdarzenia Purchase, które każde źródło wysłało tego dnia, przed deduplikacją: piksel w przeglądarce i zdarzenia server-side. Niektóre narzędzia do podglądu zdarzeń pokazują ten podział według metody połączenia, a twoje narzędzie do server-side trackingu ma własny log tego, co wysłało. Porównaj każdą liczbę z liczbą zamówień, które sklep przyjął tego dnia.
- Czytaj raporty deduplikacji
Niektóre platformy raportują usunięte duplikaty. Reddit na przykład prowadzi przez siedem dni log zdeduplikowanych zdarzeń, a Pinterest pokazuje deduplikację dla każdego zdarzenia w Ads Manager.
- Złóż jedno testowe zamówienie
Otwórz widok zdarzeń testowych platformy i złóż jedno zamówienie. Powinno być widać jedno Purchase z przeglądarki i jedno z serwera z tym samym event id. Trzecie Purchase albo dwa różne id wskażą przyczynę.
- Wypisz każde narzędzie, które może wysyłać piksel
Sprawdź aplikacje kanałów sprzedaży, kontenery menedżera tagów, kod motywu i starsze aplikacje do trackingu. Rozszerzenie przeglądarki, takie jak Meta Ads Data Advisor, dawniej Meta Pixel Helper, pokazuje, jakie zdarzenia piksela uruchamiają się na stronie.
Pierwszy krok to najszybsza kontrola. Źródło z jednym nadawcą wysyła najwyżej jeden zakup na zamówienie. Liczba z przeglądarki jest zwykle niższa niż liczba zamówień z powodu blokerów reklam i odrzuconych zgód. Dlatego jedno źródło z większą liczbą zakupów niż zamówień wskazuje na drugiego nadawcę albo na powtarzane zdarzenia:
| Źródło (przykładowy sklep, jeden dzień) | Zakupy | Zamówienia w sklepie | Stosunek | Co to sugeruje |
|---|---|---|---|---|
| Meta, przeglądarka | 186 | 120 | 1.55 | Więcej zakupów niż zamówień: dwa narzędzia uruchamiają piksel w przeglądarce |
| Meta, server-side | 119 | 120 | 0.99 | Normalnie: jeden nadawca server-side |
| TikTok, server-side | 241 | 120 | 2.01 | Każde zamówienie dwa razy: dwie aplikacje wysyłają Events API |
Jak naprawić zduplikowane zdarzenia zakupu
- Zostaw jednego nadawcę na piksel. Wybierz jedno narzędzie dla każdego piksela i wyłącz ten piksel wszędzie indziej: w aplikacjach kanałów sprzedaży, tagach menedżera tagów i kodzie motywu. W Shopify usuń ten sam piksel z ustawień udostępniania danych kanału Facebook & Instagram, ponieważ każdy poziom udostępniania danych nadal wysyła piksel w przeglądarce. W ten sam sposób sprawdź aplikację TikTok.
- Używaj jednego event id na zamówienie. Zbuduj id z order id i wysyłaj je zarówno ze zdarzeniem z przeglądarki, jak i ze zdarzeniem server-side.
- Używaj tej samej nazwy zdarzenia. Przeglądarka i serwer muszą nazywać zdarzenie tak samo, dokładnie tak, jak definiuje je platforma.
- Wysyłaj w oknie czasowym. Zdarzenie server-side, które dotrze po kilku dniach, nie zostanie scalone. Na platformach Meta, TikTok i Pinterest okno wynosi 48 godzin, a na platformie Reddit dwa dni.
- Testuj ponownie po każdej zmianie. Powtórz zamówienie testowe i następnego dnia jeszcze raz porównaj liczby.
Jak ROASaurus unika zduplikowanych zdarzeń zakupu
ROASaurus wysyła każdy zakup z danych zamówienia sklepu i nadaje kopii z przeglądarki oraz kopii server-side to samo event id, zbudowane z order id. W Shopify zdarzenie server-side pochodzi z webhooka opłaconego zamówienia, więc odświeżenie strony z podziękowaniem nie tworzy nowego zdarzenia server-side. Event log wyświetla każde dostarczenie server-side dla każdej platformy, razem z żądaniem i odpowiedzią platformy, więc widzisz, co zostało wysłane dla każdego zamówienia. Poradnik o server-side trackingu w Shopify pokazuje cały przepływ.
Jeśli platforma nadal pokazuje więcej zakupów niż zamówień, ten sam piksel wysyła inne narzędzie. Unikaj podwójnego liczenia wymienia, gdzie szukać, a server-side tracking wyjaśnia, jakie zdarzenia ROASaurus wysyła do każdej platformy.
Źródła
- Meta: Handling Duplicate Pixel and Conversions API Events
- TikTok Ads Manager: About Event Deduplication
- Snap for Developers: Deduplication
- Pinterest Developers: Track conversion events in the API
- Reddit Ads Help: Event Deduplication