Remarketing Google Ads w React bez gubienia eventów. Zobacz jak skonfigurować dynamiczne listy odbiorców w GA4 i Customer Match zgodnie z consent mode.
Maciej Sala
Founder StriveLab
6 min czytaniaOpublikowano 6 grudnia 2025 (Aktualizacja 25 maja 2026)
Jak działa remarketing Google Ads od strony technicznej?
Użytkownik odwiedza Twoją stronę → gtag wysyła dane o wizycie do Google → Google dodaje użytkownika do listy odbiorców → gdy użytkownik przegląda inne strony (Display Network, YouTube, Gmail), widzi Twoje reklamy.
Kluczowe jest by wysyłać te dane, które są rzeczywiście potrzebne, zgodne z wymaganym schematem i legalnie zebrane. Więcej sygnałów nie zawsze znaczy lepiej, jeśli są niespójne, dublowane albo zebrane bez poprawnych zgód.
Krok 1: Global Site Tag z remarketingiem Google Ads
Jeśli masz już gtag z Google Ads config, remarketing bazowy jest włączony automatycznie, ponieważ każdy page_view buduje podstawową listę "All visitors". Podstawowa lista to za mało, więc musisz segmentować użytkowników po zachowaniach.
Dynamiczny remarketing zamiast generycznej reklamy pokazuje użytkownikowi konkretne produkty, które wcześniej przeglądał. Żeby to działało, potrzebne jest połączenie z Google Merchant Center.
Wymagania techniczne dynamicznego remarketingu
Google Merchant Center z feedem produktów,
Parametr google_business_vertical w eventach (ustawiony na "retail"),
Item ID w eventach musi odpowiadać jednemu z identyfikatorów produktu z Merchant Center feed.
Ważneitems[].id w Twoim evencie musi odpowiadać jednemu z identyfikatorów z feedu Merchant Center: id, item_group_id albo display_ads_id, więc jeśli się nie zgadzają, Google nie pokaże dynamicznych reklam.
Code
// ✅ ID zgadzają się// Feed: <g:id>SKU-12345</g:id>// Event: items: [{ id: "SKU-12345" }]// ❌ ID nie zgadzają się// Feed: <g:id>SKU-12345</g:id>// Event: items: [{ id: "12345" }] bez prefiksu SKU-
Krok 4: listy odbiorców GA4 w Google Ads
Alternatywa do budowania list odbiorców przez gtag: stwórz je w GA4 i połącz z Google Ads.
W GA4 tworzysz segmenty odbiorców (Admin → Audiences),
Linkujesz GA4 z Google Ads (Admin → Google Ads Links),
Listy odbiorców automatycznie synchronizują się z Google Ads.
Przykłady list odbiorców w GA4
Cart Abandoners (porzucony koszyk):
Code
Include: Users who triggered "add_to_cart" in last 7 days
Exclude: Users who triggered "purchase" in last 7 days
High-Value Browsers (użytkownicy zaangażowani):
Code
Include: Users where session_count > 3 in last 30 days
AND page_views > 10 in last 30 days
Exclude: Users who triggered "purchase" in last 30 days
Recent Purchasers (do cross-sell):
Code
Include: Users who triggered "purchase" in last 14 days
Blog Readers → Product Interest (content remarketing):
Code
Include: Users who viewed pages matching "/blog/.*" in last 30 days
AND session_duration > 120 seconds
Exclude: Users who triggered "purchase" ever
Dlaczego listy odbiorców w GA4 są lepsze niż listy z gtag?
GA4 pozwala tworzyć bardziej złożone segmenty, w tym łączenie wielu warunków, wykluczenia, sekwencje zdarzeń i okna czasowe. Listy odbiorców budowane bezpośrednio przez gtag są prostsze, ale mniej elastyczne.
Minusem jest to, że taka architektura jest bardziej zależna od jakości całego pomiaru w GA4 i zwykle nie działa w pełnym sensie „real-time”. Jeśli potrzebujesz szybkich, prostych list typu „wszyscy odwiedzający” albo „porzucony koszyk”, tag-based remarketing nadal bywa wystarczający.
Krok 5: User ID jako mechanizm segmentów danych
Jeśli użytkownik jest zalogowany, możesz przekazywać do Google Ads stabilny, własny user_id, ale to nie jest zwykły „przełącznik cross-device”. W praktyce chodzi o osobny mechanizm list opartych na własnych identyfikatorach użytkownika, który wymaga dodatkowej konfiguracji w Google Ads i późniejszego uploadu list user_id przez lub API.
To rozwiązanie:
działa dla Search, Shopping i YouTube,
nie jest wspierane dla Display,
jest osobne względem funkcji User-ID w samym GA4.
W warstwie tagowania user_id przekazujesz najlepiej przy zdarzeniu logowania albo przy istniejącym evencie Google Ads, gdy masz dostęp do stabilnego identyfikatora użytkownika:
Code
// Po zalogowaniuexport function sendLoginWithUserId(userId: string) { if (typeof window === 'undefined' || !window.gtag) return window.gtag('event', 'login', { user_id: userId, })}
Jeśli masz już event remarketingowy, user_id możesz dodać bezpośrednio do jego payloadu. Samo przesłanie user_id nie tworzy jeszcze gotowej listy remarketingowej. Najczęściej praktyczniejszą podstawą do codziennego remarketingu pozostają dobrze spięte listy w GA4, klasyczne segmenty Google Ads i Customer Match.
Krok 6: Customer Match i first-party data
Customer Match pozwala uploadować listy klientów (email, telefon) do Google Ads i targetować ich reklamami. W epoce cookieless, first-party data to ma istotną rolę.
Code
// Server-side: upload customer list// app/api/ads/customer-match/route.tsexport async function POST(request: NextRequest) { const { emails } = await request.json() // Google Ads API, OfflineUserDataJobService // Hashuje i uploaduje emaile jako Customer Match list // ...}
To jest zaawansowany temat wymagający Google Ads, ale warto wiedzieć, że istnieje. Warto też pamiętać, że dostępność i zastosowanie Customer Match zależą od polityk, typu konta oraz regionu. Przykładowo, użycie tych list na części inventory w EEA/UK/CH jest dziś bardziej ograniczone niż kiedyś.
Consent Mode i remarketing Google Ads
Remarketing wymaga zgody użytkownika na:
ad_storage: granted, czyli przechowywanie cookies reklamowych i odczyt reklamowych identyfikatorów
ad_personalization: granted, czyli personalizacja reklam, w tym remarketing
ad_user_data: granted, czyli przesyłanie do Google danych użytkownika do celów reklamowych, np. user_id albo danych do enhanced conversions
Dla bazowego remarketingu kluczowe są ad_storage i ad_personalization. Jeśli ad_personalization jest ustawione na denied, remarketing jest wyłączony. ad_user_data staje się istotne wtedy, gdy chcesz przekazywać do Google własne dane użytkownika do zastosowań reklamowych.
Code
// Sprawdź consent przed wysyłaniem eventów remarketingowychexport function canDoRemarketing(): boolean { return ( localStorage.getItem('consent_ad_storage') === 'granted' && localStorage.getItem('consent_ad_personalization') === 'granted' )}export function canSendAdUserData(): boolean { return localStorage.getItem('consent_ad_user_data') === 'granted'}export function sendRemarketingEvent( eventName: string, params: Record<string, unknown>,) { if (!canDoRemarketing()) return // ... wysyłka eventu}
Strategie remarketingowe dla dewelopera
Lista odbiorców
Event / warunek
Okno
Cel reklamy
Wszyscy odwiedzający
page_view
30 dni
Budowanie świadomości marki
Oglądający produkt
view_item
14 dni
Powrót na stronę produktu
Porzucający koszyk
add_to_cart bez purchase
7 dni
Dokończ zakup (-10%?)
Rozpoczynający finalizację zakupu
begin_checkout w GA4 bez purchase
3 dni
Pilność: dokończ zamówienie
Kupujący
purchase
30 dni
Cross-sell, upsell
Klienci high-value
purchase > 500 PLN
90 dni
VIP oferty
Czytelnicy bloga
page_view /blog/*
30 dni
Konwersja z content
Debugowanie remarketingu Google Ads w React
Tag Assistant jako Chrome extension → weryfikuje czy Google tagi i eventy remarketingowe odpalają się poprawnie.
GA4 DebugView pozwala sprawdzić czy eventy view_item, add_to_cart itd. dochodzą.
Google Ads → Audience Manager pokaże po kilku dniach, czy listy odbiorców się zapełniają. Minimalne progi różnią się w zależności od sieci: 100 aktywnych użytkowników dla Display i Gmail, 1 000 dla Search (RLSA) i YouTube. Customer Match rządzi się częściowo innymi zasadami.
Network tab służy do szukania requestów do googleads.g.doubleclick.net, czyli requestów remarketing pixela.
Kampanie, landing page, tracking konwersji, GA4 i GTM w jednym procesie.
Czy remarketing Google Ads działa bez poprawnego consent mode?
W praktyce wdrożenie powinno respektować zgody użytkownika. Dla remarketingu szczególnie ważne są zgody związane z reklamami i personalizacją, bo wpływają na możliwość budowania list odbiorców.
Co jest kluczowe w dynamicznym remarketingu?
Najważniejsza jest zgodność identyfikatorów produktów wysyłanych w eventach z feedem Merchant Center. Bez tego Google Ads nie połączy zachowania użytkownika z właściwym produktem.
Czy listy odbiorców są dostępne od razu po wdrożeniu?
Nie. Listy muszą zebrać odpowiednią liczbę użytkowników, zanim będą realnie użyteczne w kampaniach. Dlatego remarketing warto wdrażać z wyprzedzeniem.
Czy remarketing działa od razu po wdrożeniu taga?
Nie. Najpierw musisz zebrać użytkowników do list, odczekać synchronizację i osiągnąć minimalne progi użyteczności na danym networku. Dlatego pierwsze dni po wdrożeniu to zwykle etap walidacji danych, a nie oceny skuteczności kampanii.
Czy listy odbiorców w GA4 są zawsze lepsze niż listy budowane bezpośrednio przez tag?
Nie zawsze. Są bardziej elastyczne i zwykle lepsze do złożonej segmentacji, ale prosty remarketing tag-based nadal bywa wystarczający do podstawowych scenariuszy. Wybór zależy od złożoności produktu, jakości pomiaru i workflow zespołu.
Czy `user_id` rozwiązuje remarketing cross-device?
Nie, to użyteczny dodatkowy sygnał, ale skuteczność remarketingu cross-device zależy od całego ekosystemu danych, zalogowania użytkownika, konfiguracji Google i polityk reklamowych. Nie możesz traktowaćuser_id jak gwarancji.
Czy dynamiczny remarketing bez Merchant Center ma sens?
W retail praktycznie nie, ponieważ jeśli nie masz feedu produktów i spójnych identyfikatorów, lepiej myśleć o zwykłym remarketingu albo o innym typie listy odbiorców niż o „dynamicznym remarketingu” w pełnym znaczeniu.
Jak sprawdzić, czy listy remarketingowe się zapełniają?
Przejdź do Google Ads → Audience Manager i sprawdź rozmiar list po kilku dniach od wdrożenia. Minimalny próg to zwykle 100 aktywnych użytkowników w ostatnich 30 dniach dla Display, Search i YouTube. W sytuacji, jeśli listy są puste lub się nie powiększają, sprawdź w DebugView GA4 i Network tab czy eventy remarketingowe faktycznie docierają do Google.
Czy warto budować osobne listy dla różnych etapów lejka sprzedażowego?
Tak, ponieważ to jeden z kluczowych elementów skutecznego remarketingu i różne listy odbiorców wymagają różnych komunikatów oraz stawek. Przykładowo, użytkownicy z ostatnich 3 dni, którzy rozpoczęli finalizację zakupu, to całkowicie inny priorytet niż odwiedzający stronę główną sprzed miesiąca.
Czy remarketing działa identycznie w React SPA i w tradycyjnym serwisie?
W React SPA musisz zadbać o to, żeby eventy remarketingowe wysyłały się przy każdej zmianie zawartości ekranu, nie tylko przy pełnym przeładowaniu strony. W tradycyjnym serwisie z nawigacją page-by-page każde wejście na stronę produktu automatycznie triggeruje tagi. W SPA musisz obsłużyć to jawnie przez useEffect lub podobny mechanizm.
O autorze
Maciej Sala
Maciej Sala — konsultant technologiczny produktów cyfrowych i web developer z bogatym doświadczeniem w marketingu internetowym oraz SEO. Na co dzień pracuje z Reactem, Next.js i TypeScriptem, a ostatnio także z Astro i narzędziami do automatyzacji procesów AI. Sprawnie łączy perspektywę produktową z praktycznym podejściem do kodu. Przez kilka lat był związany z branżą gier wideo jako project manager i game designer. Absolwent historii na Uniwersytecie Jagiellońskim oraz studiów podyplomowych z marketingu internetowego na AGH w Krakowie. Po godzinach trenuje na siłowni, maluje figurki i rozwija własne projekty.
Integracja Google Analytics 4 w Next.js App Router to coś więcej niż wklejenie snippetu w , ponieważ nawigacja client-side, React Server Components, Consent Mode v2 i wybór między ręcznym gtag.js , a @next/third-parties sprawiają, że łatwo wprowadzić analitykę pozornie poprawną, ale w praktyce generującą zdublowane page views albo niepełne dane - nawiasem mówiąc, obie te sytuacje zdarzyły mi się w przeszłości. Ten artykuł łączy setup GA4 z realnymi niuansami App Router i podstawami planowania zdarzeń.
Maciej Sala
Founder StriveLab
Kompletny przewodnik po implementacji śledzenia konwersji Google Ads w Next.js. Od podstawowego gtag, przez enhanced conversions, po server-side tracking z Google Ads API.
Maciej Sala
Founder StriveLab
Jak zbudować landing page w Next.js, która jest szybka, trafna i dobrze domyka ruch z Google Ads bez psucia atrybucji i doświadczenia użytkownika?