Wszystkie wpisy

8 czerwca 2026

Atrybucja w retail media — jak przypisać sprzedaż do reklamy wewnętrznej w marketplace

Retail media to dziś najszybciej rosnący kanał reklamowy w handlu — duże platformy sprzedają swoim sprzedawcom (merchantom) przestrzeń reklamową we własnym serwisie. Problem zaczyna się nie przy emisji reklamy, tylko przy pytaniu, za które merchant płaci: które zakupy wynikły z mojej reklamy? W modelu wydawcy odpowiedź jest darmowa. W marketplace trzeba ją zbudować od zera.

Dlaczego atrybucja w retail media jest inna

Standardowy adserver — Google Ad Manager — projektowano dla wydawców treści: portali i serwisów informacyjnych. Tam model jest prosty: użytkownik klika reklamę, wychodzi na stronę reklamodawcy, a ten śledzi go u siebie po parametrach UTM. Klik jest granicą — po jednej stronie wydawca, po drugiej sklep.

W marketplace ta granica znika. Klient klika reklamę produktu i zostaje w tym samym sklepie. Sprzedaż dzieje się tutaj, nie „gdzieś u reklamodawcy”. Nie ma przejścia między domenami, więc nie ma czego otagować UTM-em — a Google Ad Manager nie ma natywnej atrybucji e-commerce, bo niemal wszyscy jego klienci to wydawcy, nie platformy sprzedażowe.

Wydawca (portal)Marketplace (e-commerce)
Co robi klikwyprowadza ze stronyzostaje w sklepie
Granica atrybucjimiędzy domenami (UTM)brak — wszystko w jednej domenie
Kto mierzy sprzedażreklamodawca u siebieTy, w obrębie własnego serwisu
Wsparcie w GAMnatywne (to model docelowy)brak — trzeba dobudować

Kształt rozwiązania: trzy warstwy

Żeby powiedzieć merchantowi „twoja kreacja sprzedała produkty za X”, trzeba spiąć trzy rzeczy, których standardowo nikt ze sobą nie łączy:

  1. Tożsamość reklamy — która konkretnie kreacja, kampania i linia zamówienia wyświetliła się użytkownikowi. Wie to adserver, ale gubi tę wiedzę w momencie kliknięcia.
  2. Ścieżka zakupowa — co użytkownik zrobił potem: obejrzał kartę produktu, dodał do koszyka, kupił, za ile i od którego merchanta. Wie to warstwa e-commerce (GA4).
  3. Reguła przypisania — w jakim oknie i na jakiej podstawie uznajemy zakup za efekt reklamy. To model atrybucji.

Pierwsze dwie warstwy istnieją osobno. Cała robota polega na ich sklejeniu i nałożeniu trzeciej.

Punkt zaczepienia: złapać reklamę, zanim klik ją zgubi

Technicznym sednem jest przechwycenie tożsamości reklamy w przeglądarce, w chwili gdy adserver ją zwraca — bo po kliknięciu (które nie wyprowadza nigdzie) ta informacja już nie wróci.

Google Publisher Tag emituje zdarzenie slotResponseReceived, gdy slot dostaje odpowiedź z adserwera. Podpięty listener wyciąga z niej identyfikatory kreacji, kampanii i linii zamówienia (creativeId, campaignId, lineItemId) i wkłada je do dataLayer — tej samej warstwy, z której korzysta e-commerce. Od tego momentu reklama i zakup mówią wspólnym językiem: oba zdarzenia siedzą w dataLayer i trafiają do GA4 z tym samym identyfikatorem użytkownika.

Dane po stronie emisji — wyświetlenia i kliknięcia per kreacja — pobiera się z GAM osobno, i są na to dwa wyjścia:

WyjścieDaneKoszt
Eksport surowych logów (BigQuery Data Transfer)granularne, per pojedyncza emisjapłatny dodatek
Batch z API Ad Managerajuż zagregowane (per kreacja / kampania / dzień)bezpłatne

Do zdefiniowania kreacji i przypisania im sprzedaży dane zagregowane w zupełności wystarczają — darmowe API zamyka temat, a po płatny eksport surowych logów sięgasz dopiero, gdy potrzebujesz analizy na poziomie pojedynczej emisji. GA4 daje stronę zakupową, GAM — stronę emisji, a kluczem łączącym jedno z drugim są identyfikatory kreacji.

Post-click da się zbudować. Post-view to ściana

Mając spięte dane, zakup chce się przypisać reklamie na dwa sposoby — i właśnie tędy biegnie granica między tym, co policzyłem, a tym, czego nie udało się domknąć:

  • Post-click — zakup użytkownika, który kliknął reklamę, a potem kupił. To przypisałem: kliknięcie wymusza przeładowanie, po którym odpala się view_item_list z produktami — i dopiero tu pojawia się klucz wiążący kreację z konkretnym koszykiem. Wąski, ale pewny sygnał.
  • Post-view (okno 1 dnia) — zakup kogoś, kto reklamę tylko zobaczył, nie kliknął, i kupił w ciągu doby. To model docelowy, którego nie domknąłem. Tożsamość kreacji łapię przy emisji (gam_view), ale czysta emisja nie niesie w sesji klucza, który przeżyje nawigację: użytkownik obejrzał baner, poszedł do wyszukiwarki wewnętrznej, zobaczył inne produkty i kupił coś zupełnie innego. Nie ma czym spiąć „widział kreację X” z „kupił produkt Y”.

Natywny mechanizm, który miał to robić — view-through przez activity tags — Google wycofał (opierał się na znikających cookies 3P). Ścieżka natywna martwa, ścieżka własna łapie emisję, ale nie domyka atrybucji sprzedaży bez kliknięcia. Kolumna post-view poniżej to kształt tego, co chciałbyś raportować, nie pomiar, który wystawisz merchantowi.

Etap ścieżki (jedna kreacja, 7 dni) Post-click — przypisane Post-view 1 dzień — model docelowy
Wyświetlenia reklamy48 20048 200
Kliknięcia1 050
Użytkownicy w oknie atrybucji1 0509 400
Karta produktu4101 280
Dodanie do koszyka180470
Zakup96210
Wartość sprzedaży14 400 zł28 900 zł
Konwersja (zakup / użytkownik)9,1%2,2%
Post-click to realnie przypisane zakupy. Post-view to kształt modelu, którego bez kliknięcia nie udało się domknąć. Dane poglądowe.

Te same wyświetlenia, ten sam produkt — i przepaść między tym, co policzone, a tym, co poza zasięgiem. Post-click broni budżetu twardą liczbą („masz 14 tys. zł z bezpośrednich kliknięć”). Post-view pokazuje, ile wpływu na popyt zostaje nieudowodnione, dopóki ktoś nie zbuduje cięższego sklejania tożsamości po stronie serwera — a i to nie jest oczywiste. W retail media to nie szczegół: to różnica między „reklama sprzedała za 14 tys.” a „pewnie dotknęła znacznie więcej, ale tego nie wykażę”.

Trzy pułapki, których nie ma w dokumentacji

  • iframe zjada kliknięcia. Kreacje renderują się w iframe’ach, a te potrafią „połknąć” zdarzenie kliknięcia, zanim dotrze do dataLayer. Założenie „klik się odpali” jest naiwne — trzeba to świadomie obejść.
  • Parametry kierowania musisz znać przed emisją. Klucze i wartości (key-values), po których GAM dobiera reklamę, idą w żądaniu po reklamę — zanim cokolwiek się wyświetli. Czego nie ustalisz zawczasu, tego nie dorzucisz po kliknięciu.
  • Bez zgody marketingowej nie ma emisji. Użytkownikowi bez zgody nie wolno serwować personalizowanej reklamy (parametr npa=1 albo statyczny baner zamiast GAM). Logika zgód musi siedzieć przed adserwerem, nie obok niego.

Wnioski

  1. Retail media to projekt inżynieryjny, nie zakup licencji. Sam Google Ad Manager wyświetli reklamy; atrybucja sprzedaży do nich jest po Twojej stronie.
  2. Atrybucja w retail media stoi na czystej warstwie e-commerce. Jeśli dataLayer kłamie o cenach, koszyku czy merchancie, model odziedziczy każdy ten błąd — dlatego fundamentem jest poprawny tracking e-commerce w GA4.
  3. Nie wszystko, co chcesz mierzyć, da się zmierzyć. Post-click przypiszesz; post-view (view-through) zostaje otwartą luką, odkąd Google wyciął activity tags. Uczciwy raport pokazuje też granicę pomiaru, zamiast udawać, że jej nie ma.
  4. Wartość siedzi w danych, nie w narzędziu — ta sama lekcja co przy architekturze danych pod AI.

Adserver pokazuje reklamę. Czy ta reklama coś sprzedała — musisz policzyć sam. W marketplace to nie konfiguracja, to budowa.

Powiązane wpisy