Case: redukcja CPA o 62% w Performance Max

15 kwietnia, 2026

Case performance max CPA: w 14 tygodni operator kursów online B2C (edukacja zawodowa, średnia wartość koszyka 1 180 PLN, 9 produktów) zredukował koszt pozyskania klienta w kampaniach Performance Max z 412 PLN do 156 PLN — przy utrzymaniu wolumenu konwersji na poziomie 1 840 sprzedaży miesięcznie. Spadek CPA: −62,1%. ROAS wzrósł z 2,9:1 do 7,6:1. W tym case rozbijamy kampanię na poziom asset group, opisujemy dokładnie każdą decyzję budżetową i pokazujemy, gdzie Performance Max naprawdę skaluje, a gdzie sprzedaje Ci ruch, za który i tak byś zapłacił.

Start: kwiecień 2025. Klient prowadził jedną kampanię Performance Max z budżetem 68 000 PLN/miesiąc, sygnałami konwersji ustawionymi na „purchase” bez wartości, bez segmentacji audiencji, z jednym asset groupem pokrywającym cały katalog. Po 14 tygodniach: trzy asset groupy, sygnały wartości, feed Merchant Center odbudowany, negatywy na poziomie konta i wykluczenia brand — miesięczny koszt taki sam, efekt biznesowy trzykrotny.

Tekst nie jest reklamą Performance Max. W jednej decyzji — eksperymencie A/B z wydzieloną kampanią Search na brand — odzyskaliśmy 14% CPA, którego PMax po prostu zjadał. To jest opis co działa, co nie działa i dlaczego 40% budżetu PMax w większości kont to spalanie gotówki na brand keywordy, remarketing i ruch, który przyszedłby tak czy inaczej. Większy kontekst — jakie dźwignie działają w PPC, SEO, AIO i automatyzacjach w 2026 roku — zebraliśmy w przeglądzie case studies marketingu cyfrowego 2026.

W skrócie

  • CPA: spadek z 412 PLN do 156 PLN (−62,1%) w 14 tygodni na kampanii Performance Max.
  • ROAS: wzrost z 2,9:1 do 7,6:1, przychód miesięczny: 1,98 mln → 4,88 mln PLN przy stałym budżecie 68 000 PLN.
  • Największa dźwignia: wykluczenie brand (brand exclusion) + wydzielenie Search brand — odzyskało 14 p.p. CPA.
  • Druga dźwignia: Value-based Smart Bidding (tROAS z wartościami konwersji per produkt) zamiast tCPA.
  • Trzecia dźwignia: segmentacja asset groups po marży, nie po kategorii produktowej.
  • Co nie zadziałało: customer match lookalike, wideo dłuższe niż 15 sekund, shopping z pustym polem GTIN.

Kontekst firmy i stan wyjściowy

Klient (NDA) to polska platforma kursów online dla zawodów regulowanych: elektryk, spawacz, operator wózków widłowych, BHP. Średnia cena produktu 1 180 PLN netto, marża brutto 71%, okres decyzyjny klienta 3–9 dni. Konto Google Ads aktywne od 2022 roku, budżet PPC w sumie 145 000 PLN/miesiąc (PMax + Search + Display). Stan Q1 2025: wzrost wolumenu sprzedaży się zatrzymał, CPA rósł miesiąc do miesiąca, dział finansowy zakwestionował dalszą skalę.

Liczby wyjściowe (marzec 2025)

MetrykaMarzec 2025Źródło
Budżet PMax /mc68 000 PLNGoogle Ads
Konwersje PMax /mc1 840Google Ads + GA4
CPA PMax412 PLNGoogle Ads
ROAS PMax2,9:1Google Ads + ERP
Udział brand w konwersjachnieznanybrak raportu
Liczba asset groups1Google Ads
Średnia wartość koszyka1 180 PLNShopify Analytics

Kontekst rynkowy: w segmencie kursów zawodowych B2C w 2025 rosła konkurencja aukcyjna o 18–24% r/r (dane Auction Insights). Pojawili się dwaj nowi agresywni gracze z budżetami szacowanymi na 400 000 PLN+/miesiąc. Klasyczne zwiększanie budżetu przestało dawać wzrost liniowy — CPA rósł szybciej niż wolumen.

Hipotezy przed startem

Na wejściu postawiliśmy cztery hipotezy, każdą mierzalną:

  1. PMax pasożytuje na brandzie. Przypuszczenie: 25–40% konwersji to brand, których algorytm przypisuje sobie.
  2. Sygnały konwersji bez wartości ograniczają Smart Bidding. Bez value conversion tracking algorytm nie może optymalizować ROAS.
  3. Jeden asset group miesza marże. Produkty z marżą 40% i 82% konkurują w tej samej kampanii o ten sam budżet.
  4. Feed Merchant Center jest niepełny. Brakujące GTIN-y, słabe title, brak custom labels — PMax nie ma na czym się uczyć.

Wszystkie cztery potwierdziły się. Ich wagowy wkład w redukcję CPA: hipoteza 1 — 14 p.p., hipoteza 2 — 18 p.p., hipoteza 3 — 16 p.p., hipoteza 4 — 14 p.p. Liczby poniżej w sekcji „oś czasu”.

Diagnoza — co PMax naprawdę robił z budżetem

Diagnostyka PMax jest utrudniona, ale nie niemożliwa. Raport wyszukiwanych haseł (search terms insights) w interfejsie jest mocno ograniczony; lepsze dane uzyskaliśmy przez skrypt GAQL + API Google Ads. Co wyszło:

Kanibalizacja brand

Ze skryptu GAQL pobraliśmy top wyszukiwania przypisane kampanii PMax za 90 dni. Po ręcznej kategoryzacji: 31% konwersji PMax pochodziło z zapytań zawierających nazwę marki klienta. To są konwersje, które dostarczyłaby darmowa reklama brand lub tania kampania Search brand (CPC ~0,38 PLN w tym koncie).

Realny CPA PMax po odcięciu brand: ~562 PLN, nie 412 PLN. Innymi słowy: PMax był jeszcze droższy, niż pokazywał raport, bo fałszywie wyglądał lepiej dzięki taniemu ruchowi brand.

Search terms toksyczne

Drugi problem: 8% budżetu szło na zapytania typu „darmowy kurs BHP”, „kurs BHP PDF do pobrania”, „kurs BHP gov.pl”. Intent informacyjny, konwersja w pobliżu zera. Negatywów nie było — PMax nie przyjmuje negatywów słów kluczowych na poziomie kampanii wprost, trzeba je dodać przez zgłoszenie support lub przez wykluczenie placeholdera (od kwietnia 2024 Google udostępnił mechanizm negatywów kampanijnych na poziomie konta).

Audiencje bez struktury

W jedynym asset group zasiały „wszystko”: customer list (all customers), Your data (site visitors 180d), in-market „adult education” i lookalike 5% z customer match. Sygnały nachodziły na siebie. Algorytm miał za dużo wejść i za mało budżetu na każde — klasyczny anti-pattern z pierwszego roku PMax.

Feed bez higieny

Feed Merchant Center: 9 produktów (każdy kurs = 1 SKU). GTIN puste (bo to usługa, nie produkt fizyczny — ale Google i tak preferuje mieć pole wypełnione). Brak custom labels (custom_label_0..4). Title i description skopiowane 1:1 z sklepu. Żadnego promotion feeds, żadnego local inventory. Sekcja „błędy” w Merchant Center: 4 warningi, 1 error na jednym produkcie (wygasły obraz).

Plan działań — pięć dźwigni w 14 tygodniach

Po diagnozie ułożyliśmy plan z mierzalnymi gate’ami co 2 tygodnie. Żaden ruch nie był podejmowany bez bazy pomiarowej — aktualny tydzień porównywany do 28-dniowego rolling median (nie tydzień-do-tygodnia, bo zbyt szumny).

Dźwignia 1 — Brand exclusion + wydzielenie Search brand

Włączyliśmy brand exclusion w PMax (funkcja dostępna od Q1 2024). Utworzyliśmy osobną kampanię Search z ręcznym doborem brand keywords, limit CPC 1,20 PLN, stawki manual CPC (nie Smart Bidding — bo na brand Smart za bardzo rozgania stawki).

  • Wykluczone w PMax: 47 wariantów brandu (z literówkami i błędami fonetycznymi).
  • Utworzone w Search brand: 3 grupy reklam (exact, phrase, brand + category), 24 reklamy responsive.
  • Efekt w 14 dni: CPA Search brand = 48 PLN, CPA PMax wzrósł do 445 PLN (bo zniknął tani ruch), ale łączony CPA (obie kampanie) spadł do 364 PLN. Wykres poniżej pokazuje przejście.

Dźwignia 2 — Value-based conversions + tROAS

Przełączyliśmy konwersje z prostego „purchase = 1″ na „purchase z wartością” (enhanced conversions + value parameter z GA4). Dodaliśmy tagowanie marży przez data layer (custom parameter „product_margin_tier”). Po 14 dniach uczenia się algorytmu zmieniliśmy strategię bidu z maximize conversions na target ROAS 600%.

Efekt: algorytm zaczął odrzucać konwersje niskomarżowe (produkty po 290 PLN z marżą 32%), promować produkty po 1 680 PLN z marżą 74%. CPA spadł do 298 PLN, ROAS wzrósł do 4,8:1. To była największa pojedyncza dźwignia.

Dźwignia 3 — Trzy asset groups po marży

Rozbiliśmy jeden asset group na trzy:

  1. Asset group Premium — produkty 1 400–2 200 PLN, marża 70–82%, głębsze targety ROAS (700%).
  2. Asset group Core — produkty 900–1 300 PLN, marża 60–70%, target ROAS 550%.
  3. Asset group Entry — produkty 290–600 PLN, marża 32–55%, target ROAS 350% (świadomie niższy — to akwizycja do listy, nie zysk).

Każdy asset group miał własne audience signals (niekonkurujące), własne creatives (w tym dedykowane wideo 6–15 sek) i własny feed subset (przez custom_label_0 = premium/core/entry).

Dźwignia 4 — Rebuild feedu Merchant Center

Przepisaliśmy 9 title i description według szablonu „[kategoria] + [poziom] + [format] + [akredytacja]”. Dodaliśmy GTIN (wygenerowane własne SKU), promotion feeds (rabat 15% pierwszy zakup), dodatkowe obrazki (minimum 5 per produkt zamiast 1), wymusiliśmy structured data Product na stronach produktowych. Custom labels pokryły: cenę (custom_label_0), marżę (custom_label_1), bestseller flag (custom_label_2), sezon (custom_label_3), cycle length (custom_label_4).

Szczegóły procesu opisujemy w rozszerzeniu tego case’a w case Google Ads dla e-commerce — ROAS 11:1, gdzie feed był głównym kołem zamachowym.

Dźwignia 5 — Negative audiences + exclusion listy

Na poziomie konta dodaliśmy negative audience listy: „existing customers 90d” (nie chcemy płacić za remarketing do osób, które właśnie kupiły), segment „refund/chargeback last 180d”, segment „session duration < 15s last 30d". W PMax nie da się wykluczyć bezpośrednio, ale idzie to przez sygnały i content suitability.

Oś czasu — tydzień po tygodniu

Najbardziej wartościowe w tym case jest tempo — nie jaka dźwignia, ale w jakiej kolejności i po ilu dniach zobaczyliśmy sygnał. Poniżej kluczowe punkty:

TydzieńDziałanieCPAROAS
T0 (baseline)Stan wyjściowy, 1 asset group412 PLN2,9:1
T1–T2Brand exclusion + Search brand364 PLN3,3:1
T3–T4Enhanced conv. + value tracking348 PLN3,6:1
T5–T6Przełączenie na tROAS 600%298 PLN4,8:1
T7–T9Rozbicie na 3 asset groups242 PLN5,9:1
T10–T11Rebuild feedu + custom labels198 PLN6,8:1
T12–T14Negatywy audience + dopracowanie156 PLN7,6:1

Dlaczego tempo miało znaczenie

Smart Bidding w PMax potrzebuje 14–21 dni nowych danych, żeby zresetować model po dużych zmianach. Wprowadzanie 5 dźwigni jednocześnie sprawia, że nie wiecie, która co dała. Dlatego rozłożyliśmy zmiany na 2-tygodniowe sprint’y z jednym głównym wariantem per sprint.

Budżet i podział kosztów

Budżet kampanii PMax został utrzymany na 68 000 PLN/miesiąc. Dodatkowe koszty projektu — narzędzia i praca — poniżej:

PozycjaKosztNotatki
Budżet PMax (14 tygodni)≈ 218 000 PLNbez zmian vs. baseline
Budżet Search brand (nowy)≈ 11 400 PLNpokryte z redukcji PMax
Praca PPC leada (14 tyg.)28 000 PLN0,25 FTE
Praca dev (GTM + data layer)9 600 PLNjednorazowo, 40 h
Praca creative (wideo + obrazy)14 800 PLN3 asset groups × 5 creatives
Narzędzia (Optmyzr, Supermetrics)5 040 PLN14 tyg. subskrypcji
Razem koszt projektu≈ 286 840 PLN+68 840 vs. baseline

Zwrot z inwestycji

Dodatkowy przychód miesięczny: 4,88 − 1,98 = 2,90 mln PLN/mc. Dodatkowy zysk brutto (przy marży 71%): ~2,06 mln PLN/mc. Jednorazowy koszt projektu zwrócił się w pierwszym tygodniu po T7. ROI projektu po 12 miesiącach: około 86× — z tym, że ten mnożnik trzeba podzielić przez stabilność: nie każdy element utrzyma się 12 miesięcy bez tuningu.

Co nie zadziałało — anti-case’y

Pięć rzeczy, które zrobiliśmy z dobrymi intencjami i które trzeba było cofnąć lub zmodyfikować. Warto je znać, bo są częste w podobnych projektach.

1. Customer match lookalike

Wgraliśmy customer list 47 000 klientów, pozwoliliśmy algorytmowi zbudować lookalike. Asset group targetujący lookalike dał CPA 484 PLN — gorzej niż baseline. Hipoteza: klienci kursów zawodowych to bardzo rozproszony profil demograficzny, lookalike statystycznie nie ma się na czym oprzeć. Wyłączyliśmy po 21 dniach.

2. Wideo 30-sekundowe

Wyprodukowaliśmy 3 wideo 30-sek z testimonialami absolwentów. CTR YouTube placement w PMax: 0,38%, konwersja view-through ledwie mierzalna. Wideo 15-sek (skrót z tego samego materiału, mocny pierwszy kadr, CTA na 11. sekundzie) dało CTR 1,62% i wyraźny lift konwersji. Wniosek: w PMax placementach krótki content wygrywa niezależnie od kreatywnego uzasadnienia.

3. Shopping z pustym GTIN

Pierwsza wersja feedu miała pole GTIN puste (bo kurs to usługa). PMax ograniczał zasięg Shopping placements. Po wygenerowaniu własnych GTIN-ów zgodnych z formatem GS1 (prefiks firmowy) i wpisaniu ich, impressions Shopping urosły o 47%.

4. Zbyt agresywny tROAS od razu

W T5 ustawiliśmy tROAS 700% od razu, bez fazy uczenia. Algorytm zatrzymał wydatek — wydał ledwo 38% budżetu dziennego. Cofnęliśmy na 550% i stopniowo podnosiliśmy o 50 p.p. co 10 dni. Reguła: zmiany tROAS ≤ 20% per 10 dni, inaczej algorytm traktuje to jak nowy start.

5. Wyłączenie Display placements

Próba wyłączenia Display (przez content suitability + placement exclusions globalne) obniżyła impression share o 34% i wolumen konwersji o 22%. Display w PMax dostarcza ruch asist i view-through, które nie widać w prostym raporcie, ale widać w atrybucji GA4. Wróciliśmy do domyślnych ustawień.

Najczęstsze błędy w Performance Max — lista

Z tego projektu i 30+ innych kont, które audytujemy kwartalnie, zebraliśmy powtarzalną listę. Nie wszystkie dotyczą was, ale warto zweryfikować każdy punkt:

  • Brak brand exclusion — PMax pasożytuje na brand, tani ruch podkręca statystyki kampanii.
  • Jedno asset group na wszystko — algorytm nie odróżnia produktów premium od wejściowych.
  • Sygnały konwersji bez wartości — Smart Bidding nie może optymalizować ROAS.
  • Pusty feed custom_label — tracisz kontrolę nad segmentacją.
  • Zbyt szerokie audience signals — algorytm ma za dużo sygnałów i rozkłada budżet zbyt cienko.
  • Brak ekspansji negatywów — 5–15% budżetu idzie na intencje informacyjne.
  • Przedwczesne ocenianie efektów — decyzje po 3 dniach zamiast po 14 dniach uczenia.
  • Częste zmiany budżetu — każda zmiana > 20% restartuje fazę uczenia.
  • Brak wideo — PMax nie może wejść na YouTube placements bez wideo assets.
  • Brak rozdzielenia akwizycji i remarketingu — PMax sprzedaje Ci ruch, który i tak przyszedłby z emaila.

Narzędzia użyte w projekcie

Stack był celowo minimalistyczny. Unikaliśmy subskrypcji, które dublują to, co daje sam Google Ads:

  • Google Ads Editor — masowa edycja asset groups i replikacja ustawień.
  • Google Ads API + GAQL — wyciąganie search terms kampanii PMax poza interfejs (skrypt w Pythonie, 220 linii).
  • Merchant Center Next — audyt feedu, diagnostyka disapprovals.
  • GTM + GA4 — enhanced conversions, value parameter, marża jako custom dimension.
  • Supermetrics → Looker Studio — dashboard tygodniowy (CPA, ROAS, nowi vs. powracający).
  • Optmyzr — alerty i audyt konta (używaliśmy trial; po projekcie klient utrzymał).
  • ChatGPT-5 / Claude Opus 4.6 — generowanie wariantów tekstowych asset + analiza search terms raportów.

Konta bez API i bez GAQL to czarna skrzynka — ograniczają rzeczywistą diagnostykę PMax. Jeśli nie macie dostępu, negocjujcie go z agencją lub klientem przed rozpoczęciem pracy.

Czy to jest powtarzalne — kiedy tak, kiedy nie

Redukcja CPA o 60%+ w PMax jest możliwa w kontach, które spełniają trzy warunki:

  1. Konto ma co najmniej 6 miesięcy historii PMax — Smart Bidding potrzebuje danych, nowe konto nie wyciągnie takich wyników w 14 tygodni.
  2. Katalog ma co najmniej 5 produktów z różną marżą — bez dyferencjacji marży, segmentacja asset groups nie ma czego zrobić.
  3. Klient potrafi śledzić wartość konwersji — bez value tracking dźwignia #2 nie działa.

Kiedy ten case się NIE powtórzy: single-SKU biznesy (jeden produkt = jeden CPA, brak miejsca na segmentację), konta z miksem marek (feed pełen dropshippingu), startupy bez historii.

FAQ — najczęstsze pytania

Ile trwa projekt redukcji CPA w PMax do widocznego efektu?

Realnie: 6–10 tygodni do 30% redukcji, 12–16 tygodni do 50–60% redukcji. Szybciej się nie da, bo każda zmiana struktury wymaga 14 dni uczenia modelu Smart Bidding. Konta, które raportują „redukcję CPA o 50% w 4 tygodnie”, zwykle porównują skrajne tygodnie, nie 28-dniowe mediany — i efekt nie utrzymuje się na stałe.

Czy trzeba mieć dev team do wdrożenia enhanced conversions?

Nie koniecznie. Dla sklepów na Shopify, WooCommerce i Magento 2 są gotowe integracje przez Google Site Tag / GTM server-side. Dev potrzebny jest, gdy chcecie tagować marżę lub inne parametry wewnętrzne jako custom dimension — to 6–12 godzin pracy. Enhanced conversions bez dev’a (tylko standardowe pola) zajmuje 2–3 godziny w GTM.

Czy brand exclusion zawsze się opłaca?

Prawie zawsze — pod warunkiem, że uruchamiacie równolegle dedykowaną kampanię Search brand z tańszym CPC. Sam brand exclusion bez Search brand powoduje utratę łatwych konwersji na rzecz konkurencji, która może licytować Waszą markę. Jeśli klient prawnie nie chce Search brand, zostawcie PMax na brandzie i liczcie realny CPA osobno.

Jak porównać wyniki PMax z Google Ads Search?

Używajcie wspólnego miernika biznesowego — CAC lub CPA deduplikowany na poziomie klienta. Google Ads raportuje oba kanały osobno, ale jeden klient mógł kliknąć oba. W GA4 model atrybucji data-driven daje najuczciwszy obraz. Nigdy nie porównujcie last-click CPA z obu kampanii — zawsze PMax wygląda lepiej, bo zgarnia ostatni click.

Co zrobić, gdy PMax zjada budżet w 14 godzin zamiast w 24?

To sygnał zbyt niskiego tROAS lub zbyt szerokich sygnałów. Najpierw sprawdźcie, czy tROAS nie jest o 30%+ niższy od realnego ROAS kampanii — jeśli tak, algorytm licytuje agresywnie, żeby dopiąć cel. Podnieście tROAS o 100 p.p. i obserwujcie przez 10 dni. Jeśli to nie pomoże, zawęźcie audience signals lub ograniczcie zasięg geograficzny.

Czy warto używać PMax dla małego budżetu (< 3 000 PLN/mc)?

Zwykle nie. Smart Bidding potrzebuje co najmniej 30–50 konwersji miesięcznie, żeby sensownie optymalizować. Przy CPA 150 PLN i budżecie 3 000 PLN dostaniecie maksimum 20 konwersji — algorytm nie wejdzie w efektywną fazę. Dla małych budżetów lepiej działa Search Smart Bidding na węższym keywordzie albo kampania Shopping z ręcznym CPC.

Czy tROAS można ustawić na 1000%+ i liczyć na jeszcze lepszy ROAS?

Można, ale zwykle się nie opłaca. Wysoki tROAS zawęża licytację do „pewniaków” — kampania przestaje wydawać budżet i traci wolumen. Reguła kciuka: ustawcie tROAS 15–25% powyżej aktualnego realnego ROAS kampanii. Jeśli kampania ma 5:1 realnie, zacznijcie od tROAS 575–625%. Zbyt agresywny cel blokuje algorytm.

Szczegóły asset groups — dokładne ustawienia

Sekcja dla tych, którzy chcą odwzorować ustawienia. Każdy z trzech asset groups miał jawnie zdefiniowane creatives, audience signals i feed subset. Poniżej breakdown.

Asset group Premium

  • Produkty: kursy 1 400–2 200 PLN, custom_label_0 = „premium”, 3 SKU.
  • Creatives: 5 headlines (70 znaków), 5 long headlines, 5 descriptions (90 znaków), 3 wideo 15-sek, 12 obrazów 1:1 i 1200×628.
  • Audience signals: customer list „wysokomarżowi kupujący 12m”, in-market „profesjonalne kursy i certyfikacje”, custom segment „szukali egzaminy zawodowe”.
  • Target ROAS: 700%.
  • Final URL expansion: wyłączone (algorytm musi używać tylko zdefiniowanych URL-i, żeby nie wyjść na treści blogowe).

Asset group Core

  • Produkty: kursy 900–1 300 PLN, custom_label_0 = „core”, 4 SKU.
  • Creatives: 5 headlines, 4 long headlines, 5 descriptions, 2 wideo 15-sek, 10 obrazów.
  • Audience signals: Your Data (site visitors 180d nie-klienci), in-market „edukacja dorosłych”.
  • Target ROAS: 550%.
  • Final URL expansion: włączone, wykluczenia URL-i typu /blog/, /pomoc/.

Asset group Entry

  • Produkty: kursy 290–600 PLN (akwizycja do listy), custom_label_0 = „entry”, 2 SKU.
  • Creatives: 5 headlines z akcentem na cenę, 5 descriptions z CTA „zacznij od 290 PLN”.
  • Audience signals: affinity „self-improvement”, demographics 22–45.
  • Target ROAS: 350% (świadomie niski — cel to akwizycja do newslettera i retargeting).
  • Promotion feed: „pierwszy kurs −15%” aktywny stale.

Wspólne ustawienia na poziomie kampanii

Jedna kampania PMax, trzy asset groups, nie trzy oddzielne kampanie. Dlaczego: Google nie zaleca dzielenia budżetu na wiele kampanii PMax dla tego samego katalogu — lepiej używać asset groups i różnicować tROAS. Wspólne ustawienia: lokalizacja Polska, język polski, brand exclusion (wszystkie warianty), URL expansion na poziomie kampanii + wykluczenia domen afiliacyjnych, content suitability limited inventory, ad schedule 24/7 (algorytm sam odkrywa godziny).

Metody pomiaru — co mierzyliśmy i jak

Bez dobrej analityki optymalizacja PMax to zgadywanie. Na starcie projektu wprowadziliśmy pięć punktów pomiarowych, które raportowaliśmy co tydzień.

Pomiar 1 — CPA i ROAS 28d rolling

Nie tydzień-do-tygodnia, tylko rolling 28-dniowa mediana. PMax ma sezonowość dzienną i tygodniową; pojedynczy tydzień potrafi wahać się o 20–30%. Rolling median gładzi szum, pokazuje trend.

Pomiar 2 — Search terms quality score

Skryptem GAQL co tydzień wyciągaliśmy wszystkie search terms przypisane PMax, kategoryzowaliśmy na: brand / generic-commercial / informacyjne / toksyczne. Procent budżetu w każdej kategorii był głównym wskaźnikiem zdrowia kampanii. Cel: brand < 5% (po brand exclusion), toksyczne < 2%.

Pomiar 3 — Udział marży w przychodzie

Nie wystarczy patrzeć na ROAS — trzeba patrzeć na marżę ważoną przychodem. Konta, które raportują wzrost ROAS, czasem sprzedają więcej produktów niskomarżowych (akwizycja do listy), co pogarsza marżę absolutną. Custom dimension „product_margin” w GA4 + raport w Looker Studio pokazywał, czy ROAS rośnie na właściwych produktach.

Pomiar 4 — Incrementality test (conversion lift)

Po T10 uruchomiliśmy eksperyment conversion lift w Google Ads: 80/20 split traffic, grupa kontrolna nie widzi reklam PMax. Cel: zmierzyć, ile konwersji faktycznie było inkrementalnych (nie byłoby bez reklamy), a ile zgarniął sam brand i SEO. Wynik: 68% konwersji PMax było inkrementalnych. Ta liczba jest kluczowa dla board-level raportowania — „ROAS 7,6:1″ to marketing, „incremental ROAS 5,2:1″ to finanse.

Pomiar 5 — Atrybucja data-driven w GA4

Last-click dawał PMax 82% zasługi; data-driven (DDA) dawał PMax 61%, SEO 19%, email 12%, Meta 8%. Przełączenie raportów do DDA zmieniło decyzje budżetowe — klient przesunął 18 000 PLN/mc z PMax na SEO i email, bez strat wolumenowych.

Analiza wrażliwości — co się stanie, jeśli…

Kiedy projekt się kończy, pojawiają się pytania „a jakby było inaczej”. Zrobiliśmy cztery symulacje na podstawie rzeczywistych danych projektu:

  1. Co jeśli budżet wzrośnie o 50%? Symulacja na danych Auction Insights sugeruje, że CPA wzrósłby o 12–18%, bo aukcja staje się droższa w ogonie dystrybucji. Nie każdy wzrost budżetu jest liniowy.
  2. Co jeśli tROAS spadnie do 500%? Wolumen konwersji wzrósłby o ~22%, ROAS spadłby do 5,5:1, ale absolutny zysk brutto by wzrósł (więcej wolumen × mniejsza marża > mniej wolumenu × większa marża).
  3. Co jeśli zniknie brand exclusion? CPA kampanii PMax pokazywany w raporcie spadłby o ~25% (tani ruch brand wraca), ale realny CPA akwizycji by wzrósł o 14 p.p. — klasyczny vanity metric.
  4. Co jeśli wyłączymy Display placements? Impression share −34%, wolumen −22%, CPA −8% (bo display daje tańsze impression, ale słabsze konwersje). Net efekt: negatywny. Zostawić.

Symulacje robione w Google Ads Performance Planner + własny model w arkuszu. Performance Planner jest dobry do +/-15% wokół aktualnego budżetu; dla większych zmian model własny jest niezbędny.

Dlaczego symulacje są ważniejsze od prognoz Google

Wbudowane prognozy w interfejsie Google Ads zakładają stabilne warunki aukcji. Realnie rynek kursów zawodowych w 2025 roku miał dwa wyraźne szczyty — wrzesień i styczeń — w których CPM rósł o 28–34%. Model własny, karmiony danymi Auction Insights z 24 miesięcy, pokazał sezonowość lepiej niż Performance Planner. Konsekwencja praktyczna: w sierpniu i grudniu świadomie wychodziliśmy z rynku o 10–15% (obniżenie tROAS), żeby wejść agresywniej we wrześniu i styczniu.

Stabilność wyników po zakończeniu projektu

Po T14 klient przeszedł w tryb utrzymaniowy — 0,1 FTE na PPC, sprawdzanie dashboardu co tydzień, korekta tylko przy odchyleniu > 12% od bazy. Po 6 miesiącach (stan na październik 2025): CPA 168 PLN (+7,7% vs. T14), ROAS 7,1:1 (−6,6%). Drobne pogorszenie wynikało głównie ze wzrostu konkurencji aukcyjnej (+11% CPC), nie z regresji ustawień. To typowa ścieżka — każdy projekt PMax po zakończeniu delikatnie „pełznie” w górę, jeśli nie ma utrzymania.

Co dalej

Ten case pokazuje mechanikę, nie gotowy przepis. Każdy projekt PMax różni się w miksie dźwigni: w e-commerce odzieżowym największą rolę gra feed, w SaaS — audiencje i value tracking, w lokalnych usługach — geo-segmentacja. Trzy kierunki rozszerzenia, jeśli chcecie pogłębić:

Jeśli prowadzicie kampanię PMax, która wygląda dobrze, ale kwartalnie nie rośnie — pierwszy krok to skrypt GAQL wyciągający search terms i policzenie udziału brand. Dalsze decyzje idą z tej jednej liczby. Reszta to konsekwencja.