Przejdź do treści

Testy geo i kalibracja MMM: jak połączyć eksperymenty z modelem

Model MMM pokazuje korelacje, a eksperyment geo – przyczynę. Wyjaśniamy, jak zaplanować test na województwach, co zmienił moduł Meridian GeoX i jak przeliczyć wynik testu na rozkład a priori dla modelu.

Redakcja Pixel Insider9 min czytaniaPoziom: zaawansowany

  • MMM
  • Meridian
  • GeoX
  • Python
Spis treści
  1. Dlaczego MMM potrzebuje eksperymentów
  2. Rodzaje testów geo: holdback, go-dark, heavy-up i testy wielokomórkowe
  3. Jak zaprojektować test geo w Polsce krok po kroku
  4. Meridian GeoX: co daje od 10 września 2026 r.
  5. Analiza wyniku: od różnicy w sprzedaży do ROI inkrementalnego
  6. Jak przenieść wynik testu do Meridian i Robyn
  7. Najczęstsze błędy w testach geo
  8. Najczęściej zadawane pytania

Testy geo MMM to eksperymenty, w których część regionów – np. województw lub miast – dostaje inną ekspozycję na kanał niż pozostałe, a różnica w sprzedaży między grupami pokazuje inkrementalny efekt kanału. Wynik takiego testu służy do kalibracji modelu: w Google Meridian zamieniasz go na rozkład a priori ROI kanału, a w Meta Robyn – na cel kalibracji MAPE.LIFT. Od 10 września 2026 r. projektowanie i analizę testów geo ułatwia ogólnie dostępny moduł Meridian GeoX.

Najważniejsze w skrócie

  • Eksperyment geo mierzy przyczynowy efekt kanału, a MMM rozkłada efekty na cały okres i wszystkie kanały – razem dają wynik pewniejszy niż każda metoda osobno.
  • Najczęstsze schematy to wstrzymanie lub wyłączenie kanału w części regionów (holdback, go-dark) i zwiększenie w nich wydatków (heavy-up).
  • Meridian GeoX wymaga danych dziennych i co najmniej 10 jednostek geograficznych, a Google zaleca 50 lub więcej – 16 województw to dla takiego testu dolna granica.
  • Wynik testu przeliczasz na parametry rozkładu log-normalnego ROI, a jego szerokość ustalasz na podstawie błędu standardowego testu.
  • Najpierw testuj kanały z dużym budżetem i najszerszym przedziałem ROI w modelu – tam eksperyment daje najwięcej informacji.

Dlaczego MMM potrzebuje eksperymentów

MMM wnioskuje z korelacji w danych historycznych, więc kanały, które zawsze rosną razem, kanały ze stałymi wydatkami albo kampanie uruchamiane w okresach naturalnie wysokiego popytu są szacowane z dużym błędem. Eksperyment dostarcza punktu odniesienia, którego model sam nie wytworzy.

Klasyczny przykład to kampanie w wyszukiwarce. Wydatki na nie rosną, gdy rośnie popyt, bo więcej osób szuka produktów. Model widzi jednoczesny wzrost kosztów i sprzedaży i może przypisać wyszukiwarce efekt, który w rzeczywistości wywołał sezon. Podobnie kanały zasięgowe z niemal stałym budżetem mają w modelu bardzo szerokie przedziały ROI, bo dane nie mówią, co by się stało bez nich.

Test geo rozwiązuje ten problem wprost: część regionów dostaje inną ekspozycję, a reszta warunków jest taka sama. Różnica w sprzedaży mierzy inkrementalność kanału. Jeśli dopiero planujesz pierwszy model, zacznij od tekstu o tym, od czego zacząć marketing mix modeling, a ogólne zasady eksperymentów inkrementalnych znajdziesz w poradniku o testach inkrementalności i Conversion Lift.

Rodzaje testów geo: holdback, go-dark, heavy-up i testy wielokomórkowe

Schemat testu wybierasz pod pytanie: czy kanał w ogóle działa, ile sprzedaży znika po jego wyłączeniu, czy ile przyniesie dodatkowy budżet. Każdy schemat ma inny koszt i inną odporność na błędy.

Schemat Co robisz Co mierzysz Koszt i ryzyko
Holdback część regionów nie dostaje nowej kampanii od startu efekt kanału, który dopiero uruchamiasz utracona potencjalna sprzedaż w grupie kontrolnej
Go-dark wyłączasz działający kanał w części regionów ile sprzedaży znika bez kanału (średni zwrot) realna utrata sprzedaży, opór zespołu handlowego
Heavy-up zwiększasz wydatki w części regionów efekt dodatkowego budżetu, czyli przybliżenie marginalnego zwrotu wyższy koszt, ryzyko nasycenia
Wielokomórkowy kilka grup testowych z różnymi wariantami i wspólną kontrolą porównanie kilku poziomów budżetu lub kanałów potrzeba więcej regionów

Go-dark odpowiada na pytanie o średni zwrot z obecnego budżetu, a heavy-up – o zwrot z kolejnych złotówek. Do kalibracji ROI w modelu częściej używa się pierwszego, a do decyzji o zwiększeniu budżetu – drugiego.

Jak zaprojektować test geo w Polsce krok po kroku

Projekt testu to przede wszystkim decyzja o jednostkach geograficznych, długości testu i zabezpieczeniu przed przenikaniem efektu. Błędy na tym etapie trudno naprawić analizą.

  1. Sformułuj pytanie. Na przykład: „ile przychodu tracimy w ciągu czterech tygodni po wyłączeniu Meta Ads” albo „czy dodatkowe 30% budżetu na YouTube się zwraca”.
  2. Wybierz jednostkę geograficzną. Województwa są łatwe do kierowania w Google Ads i Meta oraz do przypisania sprzedaży z kodów pocztowych, ale jest ich tylko 16. Duże miasta z okolicą (kierowanie na promień) dają więcej jednostek, za to większe ryzyko przenikania.
  3. Zbierz dane dzienne z okresu przed testem. Potrzebujesz KPI i wydatków w podziale na region i dzień, najlepiej z kilku miesięcy. Na nich sprawdzisz, czy grupy zachowywały się podobnie.
  4. Przydziel regiony do grup. Losowo, z warstwowaniem według wielkości, albo metodą dopasowania regionów o podobnej dynamice sprzedaży. GeoX projektuje taki podział automatycznie.
  5. Policz moc testu. Ustal minimalny efekt, który ma być wykrywalny, i sprawdź, czy przy danym budżecie i liczbie regionów jest to realne. Logika jest taka sama jak przy wielkości próby w testach A/B, tylko jednostką jest region, a nie użytkownik.
  6. Ustal czas trwania. Zwykle kilka tygodni, plus okres wygaszania po teście, bo efekt reklamy trwa dłużej niż emisja.
  7. Skonfiguruj kampanie. Osobne kampanie dla grup, stałe budżety i kierowanie na osoby przebywające w regionie, a nie zainteresowane regionem.
  8. Zamroź inne zmiany. Bez regionalnych promocji, zmian cen i nowych kampanii w trakcie testu.

Szczególną uwagę zwróć na automatyczne strategie stawek. Jeśli jedna kampania obejmuje całą Polskę, a Ty wykluczysz z niej regiony testowe, algorytm przesunie budżet do regionów kontrolnych i zamieni test w nieplanowany heavy-up. Jak przygotować kampanie do takich zmian, opisujemy w tekście o eksperymentach w Google Ads i Meta Ads.

Meridian GeoX: co daje od 10 września 2026 r.

GeoX to otwartoźródłowy moduł Meridian do planowania i analizy testów geo. Google zapowiedział go w maju 2026 r., a 10 września 2026 r. udostępnił globalnie jako ogólnie dostępną część Meridian.

Najważniejsze możliwości:

  • Schematy testów. Holdback, go-dark i heavy-up, a także testy wielokomórkowe, w których kilka wariantów porównuje się ze wspólną grupą kontrolną.
  • Kontrola fałszywych alarmów. Analiza wykorzystuje wnioskowanie placebo, które ogranicza ryzyko uznania przypadkowej różnicy za efekt.
  • Niezależność od identyfikatorów. Test działa na zagregowanych danych regionalnych, więc nie zależy od ciasteczek ani od ograniczeń przeglądarek, takich jak zmiany w Safari 26 dotyczące gclid i fbclid.
  • Połączenie z modelem. Wyniki trafiają do Meridian jako rozkłady a priori, a model wskazuje kanały, które najbardziej zyskają na teście.

Wymagania, które warto znać przed planowaniem: dane muszą być dzienne (dane tygodniowe wywołują błędy walidacji), test jednokomórkowy wymaga co najmniej 10 jednostek geograficznych, a Google zaleca 50 lub więcej. Przy projektowaniu testów go-dark i heavy-up potrzebne są dzienne wydatki w podziale na regiony. Moduł wymaga Pythona 3.11 lub nowszego i korzysta z JAX, a przy rozbudowanych symulacjach zalecane jest GPU.

Dla polskich firm oznacza to, że test na 16 województwach jest wykonalny, ale ma ograniczoną moc. Jeśli sprzedaż i kierowanie na to pozwalają, rozważ mniejsze jednostki, np. największe miasta z okolicą.

Analiza wyniku: od różnicy w sprzedaży do ROI inkrementalnego

Wynik testu to przychód inkrementalny w grupie testowej – różnica między sprzedażą rzeczywistą a tą, której należało się spodziewać na podstawie grupy kontrolnej – podzielony przez różnicę w wydatkach.

Załóżmy, że sklep wyłączył Meta Ads na cztery tygodnie w sześciu województwach. W tym okresie wydałby tam na Meta ok. 60 000 zł. Na podstawie relacji między grupami sprzed testu model kontrafaktyczny przewidywał w regionach testowych 1 240 000 zł przychodu netto, a faktycznie było 1 156 000 zł. Przychód inkrementalny wynosi więc 84 000 zł, a ROI inkrementalny 84 000 / 60 000 = 1,4. Analiza podaje też przedział niepewności, np. 90-procentowy przedział od 0,6 do 2,2, co odpowiada błędowi standardowemu ok. 0,49.

Ten sam kanał mógł w Menedżerze reklam pokazywać ROAS na poziomie 4–5. Różnica nie oznacza błędu testu: panel przypisuje kanałowi konwersje, które w dużej części i tak by nastąpiły. Właśnie dlatego wynik testu jest cenny dla modelu.

Popularne metody analizy to regresja oparta na czasie (porównanie relacji grup przed testem i w trakcie), metoda różnicy w różnicach i syntetyczna grupa kontrolna. GeoX ma wbudowane metody analizy, więc nie musisz implementować ich samodzielnie.

Jak przenieść wynik testu do Meridian i Robyn

W Meridian wynik testu zamieniasz na rozkład log-normalny ROI dla kanału, którego średnia odpowiada wynikowi testu, a odchylenie standardowe – jego niepewności. W Robyn dodajesz wynik do tabeli kalibracyjnej.

Parametry rozkładu log-normalnego wyliczysz z wyniku testu tak:

import numpy as np

def lognormal_z_testu(roi, se):
    sigma2 = np.log(1 + (se / roi) ** 2)
    return np.log(roi) - sigma2 / 2, np.sqrt(sigma2)

mu_meta, sigma_meta = lognormal_z_testu(1.4, 0.49)
print(round(mu_meta, 3), round(sigma_meta, 3))   # ok. 0.279 i 0.340

Następnie ustawiasz rozkład a priori dla wszystkich kanałów w kolejności z mapowania media_to_channel. Kanały bez testów dostają szeroki rozkład używany w przykładach z dokumentacji Meridian:

mu = [0.2, mu_meta, 0.2]          # google, meta, youtube
sigma = [0.9, sigma_meta, 0.9]

prior = prior_distribution.PriorDistribution(
    roi_m=tfd.LogNormal(mu, sigma, name='roi_m')
)
model_spec = spec.ModelSpec(prior=prior, media_prior_type='roi')

tfd oznacza moduł rozkładów prawdopodobieństwa zgodny z backendem Twojej wersji Meridian – sprawdź właściwy import w aktualnym notatniku startowym, bo domyślnym backendem jest teraz JAX. Instalację i budowę modelu opisujemy w poradniku Google Meridian.

W Robyn wynik testu wpisujesz do tabeli calibration_input: kanał, daty testu, przyrost przychodu (84 000 zł), wydatek (60 000 zł) i poziom pewności. Model dostaje wtedy dodatkowy cel MAPE.LIFT. Przykładowy kod znajdziesz w porównaniu Robyn czy Meridian.

Przy przenoszeniu wyniku pilnuj trzech zgodności:

  • ten sam KPI – jeśli model liczy przychód netto, test też musi go mierzyć,
  • ten sam zakres efektu – test mierzy efekt w oknie testu i okresie wygaszania, a ROI w modelu obejmuje pełne przeniesienie,
  • aktualność – test sprzed półtora roku, przy zupełnie innej strategii kreacji, zasługuje na szerszy rozkład.

Najczęstsze błędy w testach geo

Większość nieudanych testów geo psuje się nie na etapie analizy, ale wykonania. Poniższe problemy warto sprawdzić przed startem i w trakcie testu.

  • Przenikanie efektu. Osoby dojeżdżają do pracy w innym województwie, a reklamy ogólnopolskie, np. telewizja, docierają wszędzie. Im mniejsze jednostki, tym większy problem.
  • Przesuwanie budżetu przez algorytm. Wspólna kampania dla wszystkich regionów z wykluczeniami zamienia grupę kontrolną w grupę z wyższymi wydatkami.
  • Zbyt krótki test. Bez okresu wygaszania test zaniża efekt kanałów o długim przeniesieniu.
  • Zmiany w trakcie testu. Regionalna promocja, brak towaru w jednym magazynie czy otwarcie sklepu stacjonarnego zaburzają porównanie.
  • Sprzedaż bez regionu. Jeśli część przychodu pochodzi z marketplace’ów bez danych o regionie kupującego, wyłącz ją z KPI testu albo przypisz według stałego klucza. Podobne wyzwania dotyczą pomiaru retail media.
  • Jeden test na zawsze. Efekt kanału zmienia się wraz z kreacjami, konkurencją i algorytmami. Najważniejsze kanały warto testować ponownie co rok.

Wszystkie poradniki o modelowaniu i kalibracji znajdziesz w dziale Marketing Mix Modeling.

Najczęściej zadawane pytania

Ile regionów potrzeba do testu geo?

Meridian GeoX wymaga co najmniej 10 jednostek geograficznych dla testu z jedną grupą testową, a Google zaleca 50 lub więcej. W Polsce 16 województw pozwala przeprowadzić test, ale wykryje on tylko stosunkowo duże efekty. Jeśli sprzedaż i kierowanie reklam na to pozwalają, użyj mniejszych jednostek, np. największych miast z okolicą, pamiętając o większym ryzyku przenikania efektu.

Jak długo powinien trwać test geo?

Zwykle kilka tygodni, a dokładny czas wynika z analizy mocy: im mniejszy efekt chcesz wykryć i im mniej regionów masz, tym dłużej. Do czasu emisji dodaj okres wygaszania, w którym nadal mierzysz sprzedaż, bo efekt reklamy trwa po zakończeniu kampanii. Nie przerywaj testu wcześniej tylko dlatego, że wynik wygląda na rozstrzygnięty.

Czy test geo można przeprowadzić jednocześnie w Meta Ads i Google Ads?

Można, ale wtedy test powinien mieć osobne grupy dla każdego kanału albo schemat wielokomórkowy, w którym każda grupa testowa zmienia tylko jeden kanał. Jednoczesne wyłączenie obu kanałów w tych samych regionach pokaże łączny efekt, ale nie rozdzieli go między platformy. Do kalibracji modelu potrzebujesz zwykle wyników dla pojedynczych kanałów.

Czym test geo różni się od Conversion Lift?

Conversion Lift w Meta czy Google Ads najczęściej dzieli na grupy użytkowników w obrębie jednej platformy i mierzy konwersje rejestrowane przez jej tagi. Test geo dzieli regiony i mierzy całkowitą sprzedaż z systemu firmy, niezależnie od tagów i platform. Jest przez to trudniejszy do przeprowadzenia, ale lepiej nadaje się do kalibracji MMM.

Jak często kalibrować MMM eksperymentami?

Dla kanałów o największym budżecie rozsądny rytm to jeden test rocznie, a dodatkowo po dużej zmianie strategii, np. nowym formacie kreacji czy zmianie modelu zakupu mediów. Model odświeżany co kwartał może korzystać z tych samych wyników testu przez kilka odświeżeń, ale starsze wyniki warto stopniowo traktować jako mniej pewne i poszerzać ich rozkład.