Aktualizacja: 30 września 2026 · Autor: Szymon Sanecznik, SEMownia
W każdej firmie, która reklamuje się jednocześnie w Google i Meta, prędzej czy później pada pytanie: „Dlaczego Facebook pokazuje 350 tysięcy, Google 480 tysięcy, a sprzedaż online w miesiącu wyniosła 700 tysięcy?”. Odpowiedź „bo atrybucja” nie pomaga zarządowi podjąć decyzji o budżecie. Pomaga dopiero architektura danych, w której wiadomo, która liczba jest prawdą, a która szacunkiem platformy.
Skala problemu bywa zaskakująca, bo w symulacji, którą rozpisuję niżej, oba panele raportują razem 826 774 zł przy 700 000 zł sprzedaży online w CRM (118,1%), a ranking kanałów odwraca się: w panelach wygrywa Meta, w CRM Google. Tyle o wadze tematu.
Pokażę, jak zbudować Single Source of Truth (jedno źródło prawdy) dla danych z Meta, Google Ads i CRM: skąd bierze się rozjazd między panelami, jak działa deduplikacja konwersji i dlaczego import konwersji offline jest najważniejszym elementem tej układanki. Przyczyny rozbieżności samego GA4 i CRM (zgody, bramki płatności, blokery) opisuję osobno w tekście o rozbieżnościach GA4 i CRM. Tu skupiam się na łączeniu platform reklamowych.
Czym jest Single Source of Truth w analityce marketingowej?
Single Source of Truth (SSOT) to jeden, uzgodniony z finansami rejestr sprzedaży (zwykle CRM lub hurtownia danych), do którego odnosi się każdy raport marketingowy. Panele Meta, Google Ads i GA4 pozostają narzędziami operacyjnymi, ale nie rozstrzygają, ile firma sprzedała i ile zarobiła. Rozstrzyga rejestr, w którym każde zamówienie występuje dokładnie raz.
Czy to znaczy, że wszystkie narzędzia pokażą tę samą liczbę? Nie. To niemożliwe, bo każda platforma liczy inaczej, a SSOT oznacza tylko tyle, że wiesz, która liczba jest punktem odniesienia, i umiesz wyjaśnić różnicę między nią a każdym panelem, zanim ktoś na spotkaniu zarządu zacznie je dodawać. Jest też drugi warunek. Zweryfikowane dane z rejestru wracają do platform jako konwersje offline, więc algorytmy uczą się na prawdziwej sprzedaży zamiast na kliknięciach w przycisk „Kup”. W B2B ten sam mechanizm działa na leadach, co dobrze widać w kampanii Google Ads dla producenta maszyn.
Dlaczego suma konwersji z Meta i Google przekracza sprzedaż?
Dzielę przyczyny rozjazdu na cztery rozłączne grupy: kto dostaje zasługę, co jest liczone jako konwersja, jaka wartość jest przypisana i kiedy konwersja jest zaksięgowana.
- Zasługa (okno i model atrybucji). Każda platforma widzi tylko swoje punkty styku i przypisuje sobie zamówienie, jeśli jej reklama była w oknie atrybucji. Meta domyślnie liczy 7 dni po kliknięciu, 1 dzień po zaangażowaniu i 1 dzień po wyświetleniu. Google Ads korzysta z atrybucji opartej na danych i domyślnie 30-dniowego okna dla kliknięć. Klient, który kliknął obie reklamy, zostanie więc policzony dwa razy, raz w każdym panelu. Mechanikę modeli atrybucji opisuję w artykule DDA a last click.
- Zakres konwersji. Platformy doliczają konwersje, których CRM nie łączy z reklamą: po samym wyświetleniu lub zaangażowaniu (bez kliknięcia w link) oraz modelowane, gdy użytkownik nie zgodził się na cookies. W marcu 2026 Meta zawęziła atrybucję po kliknięciu do kliknięć w link, a pozostałe interakcje przeniosła do atrybucji po zaangażowaniu.
- Wartość. Tag zwykle wysyła wartość z koszyka: brutto, czasem z wysyłką, przed zwrotami i anulacjami. CRM i finanse liczą netto po zwrotach.
- Czas. Standardowa kolumna „Konwersje” w Google Ads przypisuje sprzedaż do dnia kliknięcia, nie do dnia zakupu (osobna kolumna „według czasu konwersji” pokazuje dzień zakupu). CRM księguje sprzedaż w dniu zamówienia lub faktury. Przy długiej ścieżce zakupu miesiąc w panelu i miesiąc w CRM to różne zbiory zamówień.
Która platforma zatem „kłamie”? Żadna. Każda odpowiada na inne pytanie, a problem powstaje dopiero wtedy, gdy raport dla zarządu sumuje te odpowiedzi w jednej kolumnie tak, jakby dotyczyły tego samego zbioru zamówień, co w audytach widuję częściej, niż chciałbym przyznać.
Symulacja: rozjazd danych Meta, Google Ads i CRM
Rozpiszę to na wymyślonej firmie, więc liczby są symulacją, bez danych żadnego klienta. Firma sprzedaje online i offline (telefon, salon). W miesiącu CRM rejestruje 1 000 000 zł sprzedaży netto po zwrotach: 700 000 zł online i 300 000 zł offline. Z identyfikatorów kliknięć zapisanych w CRM wynika, że 320 000 zł sprzedaży online miało kliknięcie w reklamę Google Ads, a 150 000 zł kliknięcie w link reklamy Meta; 90 000 zł z tych kwot to te same zamówienia (klient kliknął obie). Meta dolicza 110 000 zł po wyświetleniu lub zaangażowaniu. Obie platformy raportują wartość brutto (VAT 23%) bez odjęcia zwrotów (8%). Google Ads dolicza konwersje modelowane w wysokości 12% obserwowanych. Dla czytelności pomijam modelowanie po stronie Mety.
| Pozycja | Meta Ads (panel) | Google Ads (panel) | CRM (netto) |
|---|---|---|---|
| Sprzedaż online z kliknięciem w reklamę platformy | 150 000 zł | 320 000 zł | 380 000 zł unikalnie (w tym 90 000 zł wspólne) |
| + konwersje po wyświetleniu i zaangażowaniu | +110 000 zł | — | — |
| Po przeliczeniu na brutto i bez odjęcia zwrotów | 347 609 zł | 427 826 zł | — |
| + konwersje modelowane (+12%) | — | 479 165 zł | — |
| Wynik w panelu | 347 609 zł | 479 165 zł | 700 000 zł sprzedaży online łącznie |
| Sprzedaż offline po leadach z reklam (niewidoczna bez importu) | 40 000 zł | 80 000 zł | 300 000 zł sprzedaży offline łącznie |
Suma paneli to 826 774 zł, czyli 118,1% całej sprzedaży online w CRM i 217,6% sprzedaży online, w której był jakikolwiek płatny klik. Jednocześnie oba panele nie widzą 120 000 zł sprzedaży offline, którą reklamy zainicjowały. Rozjazd idzie w obie strony. Platformy zawyżają to, co widzą, i nie dostrzegają części tego, co same zrobiły.
A co z decyzją budżetową? Załóżmy wydatki: Meta 60 000 zł, Google Ads 90 000 zł.
| Wskaźnik | Meta Ads | Google Ads |
|---|---|---|
| ROAS według panelu | 5,79 | 5,32 |
| ROAS według CRM (kliknięcia, netto) | 2,50 | 3,56 |
| ROAS według CRM z importem sprzedaży offline | 3,17 | 4,44 |
Panele sugerują, że Meta jest efektywniejsza. CRM pokazuje odwrotną kolejność. Obie wersje to wciąż atrybucja (przyrostu żadna z nich nie mierzy), więc różnica w kierunku decyzji wynika tu wyłącznie z metody liczenia, a przy takim budżecie przesunięcie pieniędzy w złą stronę po prostu boli. Łączny wskaźnik efektywności marketingu (MER, czyli cała sprzedaż podzielona przez cały budżet reklamowy) wynosi 1 000 000 zł ÷ 150 000 zł = 6,67 i nie zależy od atrybucji. Dlatego traktuję go jako kotwicę dla zarządu.
Architektura SSOT: jak połączyć Meta, Google i CRM?

Architekturę dzielę na cztery warstwy, przez które przechodzi każde zamówienie: identyfikacja, zbieranie, rejestr i zwrot do platform. Wystarczy brak jednej. Łańcuch się urywa.
- Identyfikacja. W chwili wejścia na stronę zapisujesz identyfikatory kliknięć (
gclid,gbraid,wbraidz Google,fbclidi plik cookie_fbcz Meta) oraz parametry UTM. Przy formularzu lub zamówieniu przekazujesz je do CRM razem z danymi klienta. - Zbieranie. Zdarzenia z przeglądarki (tag Google, piksel Meta) uzupełniasz zdarzeniami z serwera (Conversions API, rozszerzone konwersje). Każde zdarzenie ma identyfikator zamówienia lub zdarzenia potrzebny do deduplikacji.
- Rejestr. CRM lub hurtownia (np. BigQuery) przechowuje zamówienia netto po zwrotach, z identyfikatorami kliknięć, źródłem i, jeśli to możliwe, marżą. To jest Twoje źródło prawdy.
- Zwrot do platform. Zweryfikowana sprzedaż (także offline) wraca do Google Ads i Meta jako konwersje offline z właściwą wartością. Algorytmy stawek zaczynają optymalizować pod realną sprzedaż.
| System | Klucz dopasowania | Klucz deduplikacji | Limit czasu |
|---|---|---|---|
| Google Ads — import konwersji offline | gclid i/lub zahaszowany e-mail lub telefon |
identyfikator + nazwa konwersji + data i czas | 90 dni od ostatniego kliknięcia (63 dni dla rozszerzonych konwersji dla leadów) |
| Meta — Conversions API (web) | dane klienta, _fbc, _fbp |
event_id + event_name z pikselem, okno 48 godzin |
event_time do 7 dni wstecz |
Meta — zdarzenia offline (physical_store) |
zahaszowane dane klienta | order_id (domyślnie), okno do 7 dni |
transakcje przesłane w ciągu 62 dni |
| Meta — Conversions API dla CRM (leady) | identyfikator leada Meta (15–17 cyfr) lub e-mail, telefon | etap leada w CRM | etap optymalizacji osiągany w ciągu 28 dni od leada |
| GA4 — Measurement Protocol | client_id z tagu na stronie |
transaction_id |
zdarzenia do 72 godzin wstecz |
Z tej tabeli wynika jedna rzecz, którą powtarzam przy każdym wdrożeniu: zapis identyfikatorów w CRM jest warunkiem koniecznym, bo bez gclid lub danych klienta przy zamówieniu nie ma czego dopasować, a po upływie limitu czasu sprzedaży nie da się już przypisać do kliknięcia, choćbyś bardzo chciał.
Deduplikacja konwersji: co robią platformy, a co musisz zrobić Ty?
Deduplikacja (czyli usuwanie zdublowanych zdarzeń tej samej konwersji) działa na trzech poziomach. Zautomatyzowane są dwa.
Wewnątrz platformy, między źródłami danych. Meta łączy zdarzenie z piksela i z Conversions API, jeśli mają ten sam event_id i event_name i dotrą w ciągu 48 godzin; bez wspólnego event_id każdy zakup liczony jest dwa razy, a raportowany ROAS w Meta się podwaja, co na pierwszy rzut oka wygląda jak świetny miesiąc i dlatego rzadko ktoś to od razu kwestionuje. W Google Ads od kwietnia 2026 konto przyjmuje jednocześnie dane z tagu na stronie, z Data Manager i z API, a od 15 czerwca 2026 rozszerzone konwersje dla witryny i dla leadów to jedno ustawienie. Tym bardziej trzeba pilnować, żeby to samo zamówienie nie było mierzone dwiema konwersjami głównymi.
Wewnątrz platformy, między powtórzeniami. GA4 odrzuca zakupy z tym samym transaction_id (w strumieniach internetowych), a Google Ads nie importuje ponownie konwersji offline z tym samym identyfikatorem, nazwą i czasem. Warunek: identyfikator zamówienia musi być zawsze wypełniony i unikalny.
Między platformami. Tu automatu nie ma. Meta nie wie o kliknięciach w Google, Google nie wie o reklamach w Meta, więc jedynym miejscem, w którym zamówienie występuje raz, jest Twój rejestr. Dlatego w raporcie zarządczym nigdy nie sumuję konwersji z paneli. Pokazuję sprzedaż z CRM, MER i osobno udział każdego kanału według jednej, spójnej reguły liczonej w CRM (np. ostatnie płatne kliknięcie zapisane przy zamówieniu).
Konwersje offline: dlaczego to najważniejszy element SSOT?
Gdzie kończy się Twoja sprzedaż? Jeśli część zamyka się poza stroną (w call center, salonie, po ofercie handlowca), import konwersji offline decyduje o tym, pod co optymalizują algorytmy. Bez niego Google Ads i Meta uczą się na formularzach i zapytaniach. Także na tych, które nigdy nie zamienią się w sprzedaż.
Google Ads: Data Manager i rozszerzone konwersje dla leadów
Google rekomenduje rozszerzone konwersje dla leadów, które łączą gclid z zahaszowanymi danymi klienta. Według Google reklamodawcy łączący dane własne z identyfikatorem kliknięcia uzyskali medianę o 10% więcej konwersji niż przy standardowym imporcie. Najprostsza droga to Data Manager (narzędzie Google do przesyłania danych własnych), który ma gotowe połączenia m.in. z HubSpot i Salesforce (starsza integracja z Salesforce straciła wsparcie 31 maja 2025).
Dla firm z własną integracją przez API ważna jest data 15 czerwca 2026: od tego dnia API Google Ads nie przyjmuje nowych użytkowników importu konwersji offline, a dotychczasowi muszą zintegrować się z Data Manager API. Jeśli Twój dostawca CRM lub agencja budowała integrację wcześniej, sprawdź, czy została przeniesiona.
Meta: Conversions API dla CRM i zdarzeń offline
Meta wycofała osobne Offline Conversions API w maju 2025. Sprzedaż offline przesyłasz teraz przez główne Conversions API z action_source ustawionym na physical_store. Dla leadów Meta oferuje Conversions API dla CRM, które pozwala optymalizować kampanie pod etap lejka w CRM, np. „spotkanie umówione” zamiast „formularz wysłany”. Wymagania z dokumentacji Meta: co najmniej 200 leadów miesięcznie, przesyłanie danych co najmniej raz dziennie, etap optymalizacji osiągany w ciągu 28 dni od leada i z konwersją między 1% a 40%. Faza nauki trwa według Meta 2–4 tygodnie.
Wartość konwersji offline
Import samej liczby sprzedaży to połowa pracy. Przesyłaj wartość netto po zwrotach, a jeśli możesz, także marżę, bo wtedy algorytmy optymalizują pod zysk zamiast pod przychód, co opisuję w artykule ROAS a POAS.
Jak raportować zarządowi, gdy każde narzędzie pokazuje co innego?
Stosuję trzy poziomy prawdy, każdy do innej decyzji:
- Poziom finansowy: CRM i MER. Sprzedaż netto, marża, łączny budżet, MER, koszt pozyskania klienta. To liczby do decyzji o całkowitym budżecie marketingu.
- Poziom kanałów: atrybucja w CRM. Udział kanałów według jednej reguły liczonej na zamówieniach z rejestru. To liczby do podziału budżetu między Meta i Google.
- Poziom operacyjny: panele platform. Kampanie, grupy reklam, kreacje. To liczby do codziennej optymalizacji wewnątrz platformy, nigdy do porównywania platform między sobą.
Haczyk? Żaden z tych poziomów nie mierzy przyrostu, czyli sprzedaży, której nie byłoby bez reklamy. Gordon, Moakler i Zettelmeyer (Marketing Science, 2023) na 663 eksperymentach pokazali, że metody obserwacyjne potrafią zawyżyć efekt około trzykrotnie, więc do dużych decyzji budżetowych dokładam testy przyrostowe: Google oferuje bayesowskie badania Conversion Lift od około 5 tys. USD budżetu, Meta ma atrybucję przyrostową. Jak przełożyć to na dashboard, pokazuję w tekście o dashboardzie dla zarządu.
6 kroków w kolejności, w jakiej je wdrażam
- Ustal rejestr i definicje. Który system jest źródłem prawdy (CRM, system sklepu, hurtownia), co jest przychodem (netto po zwrotach), jak liczysz MER i koszt pozyskania.
- Zapisuj identyfikatory.
gclid,gbraid,wbraid,fbclid,_fbci UTM w ukrytych polach formularzy i przy zamówieniu, przekazywane do CRM. - Uszczelnij deduplikację w platformach. Wspólny
event_iddla piksela i Conversions API, niepustytransaction_id, jedna konwersja główna na zakup w Google Ads. - Uruchom import offline. Google Ads przez Data Manager (rozszerzone konwersje dla leadów), Meta przez Conversions API. Codzienny przesył, wartość netto, kontrola limitów czasu.
- Zbuduj raport trzech poziomów. Finansowy, kanałów i operacyjny, z jawną informacją, skąd pochodzi każda liczba. Bez sumowania paneli.
- Zaplanuj test przyrostowy. Jeden na kwartał dla kanału z największym budżetem lub największą niepewnością.
Zostają zgody. Przesyłanie zahaszowanych danych klientów do Google i Meta wymaga podstawy prawnej i informacji w polityce prywatności, a wpływ braku zgód na raporty opisuję w tekście o Consent Mode v2. To nie jest porada prawna. Zakres zgód warto uzgodnić z prawnikiem lub inspektorem ochrony danych.
FAQ
Dlaczego Facebook pokazuje więcej konwersji niż Google Analytics?
Meta liczy konwersje w oknie 7 dni po kliknięciu oraz 1 dnia po zaangażowaniu i wyświetleniu, także bez wejścia na stronę z reklamy. GA4 przypisuje sprzedaż według własnego modelu i widzi tylko sesje ze zgodą na pomiar. Obie liczby odpowiadają na inne pytania.
Czy można zsumować konwersje z Meta i Google Ads?
Nie. Obie platformy przypisują sobie te same zamówienia, jeśli klient miał kontakt z reklamami w obu, a Meta dolicza też konwersje po wyświetleniu. Suma zwykle przekracza realną sprzedaż. Do raportu zarządczego używaj sprzedaży z CRM.
Co to jest import konwersji offline w Google Ads?
To przesyłanie do Google Ads sprzedaży lub etapów lejka zarejestrowanych poza stroną, np. w CRM, dopasowanych do kliknięcia przez gclid lub zahaszowane dane klienta. Od 15 czerwca 2026 nowe integracje działają przez Data Manager. Konwersję trzeba przesłać w ciągu 90 dni od kliknięcia.
Jak działa deduplikacja Pixel i Conversions API?
Meta traktuje zdarzenia z piksela i z Conversions API jako jedno, jeśli mają ten sam event_id i event_name i dotrą w ciągu 48 godzin. Bez wspólnego identyfikatora każdy zakup jest liczony podwójnie.
Czym zastąpiono Meta Offline Conversions API?
Główne Conversions API przyjmuje zdarzenia offline z action_source ustawionym na physical_store. Transakcje należy przesłać w ciągu 62 dni. Dla leadów Meta oferuje Conversions API dla CRM z optymalizacją pod etapy lejka.
Czy do Single Source of Truth potrzebna jest hurtownia danych?
Nie zawsze. Przy jednym systemie sprzedaży źródłem prawdy może być CRM lub system sklepu, o ile przechowuje identyfikatory kliknięć i sprzedaż netto po zwrotach. Hurtownia, np. BigQuery, przydaje się, gdy łączysz kilka systemów sprzedaży lub koszty z wielu platform.
Źródła
- Google Ads Help: import konwersji offline
- Google Ads Help: wytyczne importu konwersji offline
- Google Ads Help: zmiany w ustawieniach rozszerzonych konwersji
- Google Ads Developer Blog: zmiany w imporcie konwersji offline w API Google Ads
- PPC Land: blokada nowych importów offline przez API od 15 czerwca 2026
- Google Ads Data Manager Help: połączenie z HubSpot
- Google Ads Help: starsza integracja z Salesforce
- Search Engine Land: konwersje według czasu konwersji w Google Ads
- Meta for Developers: Conversions API dla CRM
- Meta for Developers: zdarzenia offline w Conversions API
- Jon Loomer Digital: atrybucja w Meta Ads w 2026 roku
- Google for Developers: Measurement Protocol GA4
- Gordon, Moakler, Zettelmeyer: Close Enough? A Large-Scale Exploration of Non-Experimental Approaches to Advertising Measurement, Marketing Science 2023
Co zrobić dalej
Połączmy Dane Z Meta, Google I Twojego CRM
Jeśli panele reklamowe pokazują więcej sprzedaży niż Twój CRM, zacznijmy od rozmowy. W 30 minut przejdziemy przez Twoje identyfikatory, deduplikację i import konwersji offline, a ja wskażę, od którego elementu zacząć budowę jednego źródła prawdy. Bez zobowiązań.