Google Ads Remarketing w React – dynamiczne listy odbiorców i personalizacja reklam
Remarketing Google Ads w React i Next.js bez marketingowych uproszczeń: eventy, Merchant Center, listy odbiorców w GA4, Customer Match i wymogi consent.
Remarketing to jeden z najbardziej efektywnych kanałów w Google Ads. Możesz targetujesz użytkowników, którzy już weszli w kontakt z Twoją marką i choć nie ma jednej uniwersalnej liczby typu "2-3x lepiej", w wielu kontach remarketing realnie lepszy niż zimny ruch. Żeby jednak działał skutecznie, potrzebujesz poprawnej implementacji po stronie deweloperskiej.
Krótka odpowiedź: Remarketing Google Ads w React wymaga poprawnego Google tagu, odpowiednio skonstruowanych eventów remarketingowych i zgodności items[].id z jednym z identyfikatorów z feedu Merchant Center dla dynamicznego remarketingu. Zaawansowane listy odbiorców buduj w GA4, czyli Google Analytics 4, to aktualna wersja platformy analitycznej Google do pomiaru zdarzeń i zachowań użytkowników. i łącz z Google Ads. W consent mode dla bazowego remarketingu kluczowe są ad_storage i ad_personalization, a ad_user_data dochodzi wtedy, gdy wysyłasz do Google user_id lub inne first-party dane reklamowe. Same listy potrzebują też czasu na wypełnienie zanim staną się użyteczne.
Jak działa remarketing technologicznie?
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
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
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 w GA4 → 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ż te budowane przez 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 osobny 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 UI 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 (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, API, czyli Application Programming Interface, definiuje sposób komunikacji między aplikacjami lub modułami. 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 i remarketing
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 – podsumowanie 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
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.
FAQ
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, czyli Single Page Application, działa bez pełnego przeładowania dokumentu przy każdej nawigacji. 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.
Podsumowanie
Remarketing Google Ads to strategia, w której frontend deweloper ma realny wpływ na jakość danych, zasięg list i sensowność późniejszej optymalizacji kampanii. Poprawna implementacja eventów, dynamiczny remarketing z Merchant Center feed i przemyślana segmentacja odbiorców zwykle dają lepszy punkt wyjścia do pracy marketingu niż chaotyczny setup „na szybko”. Kluczową kwestią są items[].id w eventach, które muszą odpowiadać jednemu z identyfikatorów z feedu Merchant Center (id, item_group_id albo display_ads_id), consent mode musi poprawnie obsłużyć ad_storage i ad_personalization, a listy odbiorców warto budować zarówno przez Google Ads tag jak i Google Analytics.
Jeśli chcesz połączyć SEO, analitykę, Google Ads i warstwę techniczną strony w jeden sensowny system wzrostu, skontaktuj się ze mną. Pomagam układać wdrożenia, które nie kończą się na samym tagowaniu, ale wspierają widoczność, pomiar i konwersję.
Maciej Sala — project manager i frontendowiec z doświadczeniem w marketingu internetowym. Na co dzień pracuję z Reactem, Next.js i TypeScriptem, łącząc perspektywę produktową z praktycznym podejściem do kodu. Przez kilka lat związany z branżą gier wideo jako project manager i game designer.
Absolwent historii na Uniwersytecie Jagiellońskim i studiów podyplomowych z marketingu internetowego na Akademii Górniczo-Hutniczej w Krakowie. Poza pracą trenuje na siłowni, maluje figurki i realizuje własne projekty.
Astro.js vs Next.js — które narzędzie wybrać w 2026 roku?
Fachowe porównanie Astro.js i Next.js z perspektywy developera pracującego na co dzień w Next.js. Architektura, wydajność, SEO, DX, koszty i konkretne use case — z benchmarkami i przykładami kodu.
WordPress → Next.js — migracja treści, redirecty 301 i zachowanie pozycji SEO
Jak przenieść stronę z WordPress na Next.js bez utraty pozycji w Google? Eksport treści, mapowanie URL, redirecty 301, migracja obrazów i weryfikacja indeksacji.
Google Search Console + Next.js — indeksacja, błędy, performance i co z nimi robić
Jak korzystać z Google Search Console dla strony Next.js? Weryfikacja, sitemap, indeksacja, Core Web Vitals, crawl budget i najczęstsze problemy — praktyczny poradnik.