Google Ads Remarketing w React – dynamiczne listy odbiorców i personalizacja reklam
Remarketing Google Ads w React — jak skonfigurować dynamiczne listy odbiorców w GA4 i Customer Match bez gubienia eventów i łamania 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 — każdy page_view buduje podstawową listę "All visitors". Podstawowa lista to za mało — 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" }] – brak 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 – łą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 – przechowywanie cookies reklamowych i odczyt reklamowych identyfikatorów
ad_personalization: granted – personalizacja reklam, w tym remarketing
ad_user_data: granted – 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 – Chrome extension → weryfikuje czy Google tagi i eventy remarketingowe odpalają się poprawnie.
GA4 DebugView – sprawdź czy eventy view_item, add_to_cart itd. dochodzą.
Google Ads → Audience Manager – po kilku dniach sprawdź, 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 – szukaj requestów do googleads.g.doubleclick.net – to remarketing pixel.
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 — Product Manager i Frontend 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 rozwijam 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?