Przejdź do treści
Meta Conversions API

Konwersje offline z Arkusza Google do Meta: kolumny, hashowanie i deduplikacja

Jak wysyłać sprzedaż i kwalifikację leadów z Arkusza Google do Meta przez Conversions API: jakie kolumny, format daty i telefonu, hashowanie, limit 7 dni.

Zespół ConvsAktualizacja: 7 min czytania
Połączenia w panelu: źródło Arkusz Google i odbiorca Meta
Spis treści
  1. Co to są konwersje offline w Meta?
  2. Jakie kolumny musi mieć arkusz?
  3. Jak dane z arkusza są hashowane?
  4. Jak przypisać statusy do zdarzeń Meta?
  5. Jak działa deduplikacja przy arkuszu?
  6. Przykład: jeden wiersz od leada do sprzedaży
  7. Jak sprawdzić, czy zdarzenia dochodzą?
  8. Najczęstsze błędy i ich przyczyny
  9. Kiedy arkusz to zły pomysł?
  10. Następny krok

Wiele firm prowadzi sprzedaż w Arkuszu Google: handlowiec dopisuje wiersz, zmienia status na „zakwalifikowany”, a potem na „sprzedany”. Meta nic o tym nie wie, bo Pixel widzi tylko stronę, a nie arkusz. Conversions API pozwala przekazać te zmiany do Meta jako konwersje offline, czyli zdarzenia, które wydarzyły się poza stroną. Ten poradnik pokazuje, jak przygotować kolumny, jak dane są hashowane, jak uniknąć podwójnego liczenia i gdzie są granice tego podejścia.

Co to są konwersje offline w Meta?

To zdarzenia, które Twój system zna, a przeglądarka nie: sprzedaż przez telefon, podpisana umowa, lead zakwalifikowany po rozmowie. Meta przyjmuje je dziś przez to samo Conversions API, co zdarzenia ze strony. Dawny osobny interfejs dla konwersji offline Meta opisuje jako starszy i przy nowych wdrożeniach zaleca Conversions API.

Zdarzenie z arkusza ma action_source równe system_generated, czyli „wygenerowane przez system firmy”. Najważniejsze reguły z dokumentacji parametrów zdarzenia:

  • event_time to rzeczywisty czas zdarzenia, najwyżej 7 dni wstecz od wysyłki,
  • jedno za stare zdarzenie w paczce powoduje odrzucenie całego żądania,
  • zdarzenie potrzebuje co najmniej jednego identyfikatora osoby.

Jakie kolumny musi mieć arkusz?

Nazwy kolumn możesz mieć własne, bo w panelu przypisujesz je do pól. Liczy się zawartość.

Kolumna (przykład)Co zawieraNa co uważać
idStały identyfikator rekordu, np. numer z CRMNie numer wiersza: po sortowaniu się zmieni. Bez e-maili i nazwisk
statusStatus biznesowy, np. QUALIFIED, CONVERTEDWielkość liter musi zgadzać się z przepływem
status_changed_atKiedy rekord wszedł w ten statusKomórka daty albo ISO 8601 ze strefą. Nie czas synchronizacji
emailE-mail klientaHashowany przed wysyłką
phoneTelefon z kodem kraju, np. +48600100200Kolumna tekstowa, żeby arkusz nie zjadł plusa
meta_lead_idIdentyfikator leada z formularza MetaTylko jako tekst, inaczej arkusz zaokrągli długą liczbę
value, currencyKwota i kod waluty ISO 4217, np. PLNWymagane dla Purchase
consentTRUE, jeśli masz podstawę prawną do przekazania danychNie ustawiaj hurtem bez sprawdzenia procesu w firmie

Wymagane minimum to identyfikator, status, czas, zgoda i co najmniej jeden identyfikator osoby: e-mail, telefon albo identyfikator leada z Meta.

Dlaczego czas zmiany statusu jest tak ważny?

Bo Meta przypisuje konwersję do momentu, w którym się wydarzyła. Gdyby narzędzie wstawiało czas synchronizacji, sprzedaż z piątku wyglądałaby jak sprzedaż z poniedziałku. Dlatego Convs nie zastępuje brakującej daty czasem odczytu: wiersz bez daty jest odrzucany z komunikatem, który wskazuje numer pierwszego błędnego wiersza (bez danych klienta).

Daty z komórek arkusza są czytane w strefie czasowej arkusza. Daty tekstowe muszą mieć strefę (np. 2026-04-14T10:30:00+02:00).

Jak dane z arkusza są hashowane?

Meta wymaga, żeby e-mail i telefon były znormalizowane i zahashowane SHA-256, a identyfikator leada wysłany jawnie. Według listy parametrów klienta:

  1. E-mail: usunięcie spacji z brzegów, małe litery, potem SHA-256. Anna.Kowalska@Example.com i anna.kowalska@example.com dają ten sam skrót.
  2. Telefon: usunięcie spacji, myślników i nawiasów, kod kraju obowiązkowy, potem SHA-256 z samych cyfr. +48 600-100-200 staje się skrótem z 48600100200.
  3. Identyfikator leada z Meta: bez hashowania, bo Meta zna go w tej postaci.

Convs robi to po stronie serwera. Telefon bez kodu kraju jest odrzucany, zamiast zgadywać prefiks, bo źle dopisany prefiks dałby skrót, który nikomu nie odpowiada. Skróty to nadal dane osobowe: o podstawie prawnej i retencji piszemy w artykule o RODO i hashowaniu (to nie jest porada prawna).

Jak przypisać statusy do zdarzeń Meta?

W przepływie mówisz, który status ze źródła ma zostać którym zdarzeniem w Meta. Przykład:

Status w arkuszuZdarzenie Meta
QUALIFIEDQualifiedLead
CONVERTEDPurchase (z wartością i walutą)
LOSTbrak mapowania: nic nie jest wysyłane

Nazwę zdarzenia dobierz do tego, co chcesz potem wykorzystać w kampanii lub konwersji niestandardowej. Jedno źródło może wysyłać do kilku odbiorców (np. dwóch Pixeli), a każdy cel ma osobny status wysyłki. Jak zaprojektować etapy, z których Meta może się czegoś nauczyć, opisujemy w artykule o etapach leada w CRM.

Połączenia w panelu: źródło Arkusz Google i odbiorca Meta
Połączenia w panelu: źródło Arkusz Google i odbiorca Meta

Jak działa deduplikacja przy arkuszu?

Arkusz czytany co minutę oznacza, że ten sam wiersz jest widziany setki razy. Gdyby każdy odczyt wysyłał zdarzenie, Meta dostałaby lawinę duplikatów. Są więc dwie warstwy ochrony:

  • Zdarzenie biznesowe: para identyfikator + status ze źródła jest konwersją jednorazową. Ponowne wejście w ten sam status nie tworzy nowej konwersji.
  • Wysyłka: zdarzenie ma stały event_id, wyliczony z identyfikatora i statusu, a kolejka nie wyśle drugi raz tego samego zdarzenia do tego samego datasetu Meta w tym samym trybie, także z dwóch różnych połączeń.

Ponowienia po błędach zachowują ten sam event_id, więc nawet gdy odpowiedź Meta zginie po drodze, Meta może zdeduplikować powtórkę. Pixel nie wysyła zdarzeń z arkusza, więc nie trzeba niczego uzgadniać z przeglądarką. Szczegóły w artykule o deduplikacji zdarzeń.

Czego synchronizacja nie odtworzy?

Arkusz pokazuje aktualny stan wiersza, a nie historię. Jeśli handlowiec w ciągu minuty zmieni status z QUALIFIED na CONVERTED, odczyt może zobaczyć tylko ten drugi. Gdy kilka zmian statusu może nastąpić szybciej niż odczyt, zapisuj zdarzenia w osobnej zakładce: jeden wiersz na każdą zmianę, z własnym identyfikatorem.

Przykład: jeden wiersz od leada do sprzedaży

Zobacz, co dzieje się z jednym wierszem (dane przykładowe). Handlowiec dopisuje w poniedziałek rekord K-1042 z telefonem +48600100200 i statusem NEW. Przepływ nie mapuje NEW, więc nic nie wychodzi.

  1. Wtorek, 11:20. Handlowiec zmienia status na QUALIFIED i wpisuje czas zmiany. W ciągu kilku minut odczyt widzi nowy status, a kolejka wysyła QualifiedLead z zahashowanym telefonem i czasem z wtorku 11:20.
  2. Środa. Ktoś przypadkiem zmienia status z powrotem na NEW, a potem znów na QUALIFIED. Para K-1042 + QUALIFIED już była zgłoszona, więc druga konwersja nie powstaje. Jeśli przy okazji zmienił się czas statusu, wiersz dostaje komunikat o konflikcie, bo zgłoszonej konwersji nie da się zmienić.
  3. Piątek, 15:05. Status CONVERTED, wartość 4900, waluta PLN. Wychodzi Purchase z kwotą i czasem z piątku.
  4. Poniedziałek. Handlowiec poprawia kwotę na 5200. Ta zmiana dotyczy już zgłoszonej pary, więc jest odrzucana z komunikatem. Meta zna wartość z piątku.

Wniosek: kwotę i status wpisuj dopiero wtedy, gdy są ostateczne. Jeśli korekty się zdarzają, ustal w zespole, że sprzedaż trafia do arkusza po zaksięgowaniu płatności.

Jak sprawdzić, czy zdarzenia dochodzą?

  1. Utwórz odbiorcę Meta w trybie testowym z kodem z Menedżera zdarzeń.
  2. Zmień status w jednym wierszu z prawdziwymi danymi testowymi.
  3. W panelu sprawdź wysyłkę: „Przyjęte przez Meta” oznacza odpowiedź z events_received: 1.
  4. W Menedżerze zdarzeń, w zakładce zdarzeń testowych, sprawdź, czy zdarzenie przyszło z właściwą nazwą i parametrami.
  5. Dopiero potem utwórz odbiorcę produkcyjnego i przepływ. Testy i produkcja mają osobną deduplikację.
Lista wysyłek do Meta z wynikiem każdej próby
Lista wysyłek do Meta z wynikiem każdej próby

Przyjęcie zdarzenia nie mówi, jak dobrze Meta dopasowała je do osoby. To pokazuje jakość dopasowania w Menedżerze zdarzeń; jak ją podnieść, opisujemy w poradniku o Event Match Quality.

Najczęstsze błędy i ich przyczyny

ObjawPrzyczynaCo zrobić
Wiersz odrzucony: brak czasuPusta kolumna daty albo tekst bez strefyUzupełnij datę lub dopisz strefę w ISO 8601
Wiersz odrzucony: telefonNumer bez kodu krajuZapisz +48… w kolumnie tekstowej
Zdarzenie za stareStatus zmieniony ponad 7 dni temuMeta go nie przyjmie. Aktualizuj arkusz na bieżąco
Nic się nie wysyłaBrak aktywnego przepływu albo status pisany inną wielkością literSprawdź mapowanie w przepływie
Zmiana danych odrzuconaEdycja wiersza już zgłoszonego z tym samym statusemNowe zdarzenie biznesowe wymaga nowego identyfikatora

Kiedy arkusz to zły pomysł?

  • Zmiany wpisujesz raz w tygodniu. Część zdarzeń przekroczy limit 7 dni i przepadnie. Arkusz musi żyć na bieżąco.
  • Leady pochodzą z formularzy natywnych Meta i chcesz optymalizacji pod jakość leadów. Meta oczekuje do niej zdarzeń CRM w ściśle określonej postaci. Prościej podłączyć formularz bezpośrednio, a etapy zmieniać na karcie osoby. Wymagania opisuje artykuł o optymalizacji pod jakość leadów.
  • Masz dziesiątki tysięcy aktywnych wierszy. Odczyt po 500 wierszy na minutę sprawi, że pełne przejście potrwa długo. Lepiej przesyłać zdarzenia przez integrację serwerową.
  • Arkusz nie ma żadnego identyfikatora osoby. Bez e-maila, telefonu albo identyfikatora leada Meta nie ma z czym dopasować zdarzenia.

Następny krok

Dodaj do arkusza kolumny z tabeli, połącz go w trybie testowym i zmień status w jednym wierszu. Więcej o wysyłce znajdziesz na stronie Meta Conversions API, a plany w cenniku.

Najczęściej zadawane pytania

Czy muszę instalować skrypt w Arkuszu Google?

Nie. Arkusz łączysz przez logowanie kontem Google i wybór pliku w oknie Google. Aplikacja dostaje dostęp tylko do pliku, który wskażesz, a nie do całego Dysku, i wykonuje wyłącznie odczyty.

Jak często dane z arkusza trafiają do Meta?

Serwer sprawdza arkusz co minutę i czyta do 500 wierszy na przebieg. Przy dużych arkuszach pełne przejście trwa kilka minut. Nowy status trafia do kolejki wysyłek, a stamtąd do Meta, zwykle w ciągu kilku minut od zmiany w arkuszu.

Co się stanie, gdy zmienię status w wierszu, który już został wysłany?

Nowy status to nowe zdarzenie, więc zostanie wysłane, jeśli przepływ go mapuje. Ten sam identyfikator z tym samym statusem jest konwersją jednorazową: ponowne wejście w ten sam status nie tworzy drugiej konwersji, a zmiana danych już zgłoszonej pary jest odrzucana.

Dlaczego numer leada z Meta zmienia się w arkuszu?

Identyfikator leada ma kilkanaście cyfr, a arkusz traktuje go jak liczbę i może zaokrąglić końcówkę. Ustaw kolumnę jako tekst albo wklejaj identyfikator z apostrofem na początku, zanim zaczniesz synchronizację.

Czy zdarzenia z arkusza wystarczą do optymalizacji pod jakość leadów?

Do tej optymalizacji Meta wymaga zdarzeń CRM powiązanych z leadami z formularzy natywnych. Jeśli Twoje leady pochodzą z formularzy Meta, lepiej podłączyć formularz bezpośrednio i zmieniać etapy na karcie osoby. Arkusz sprawdza się przy sprzedaży i leadach spoza formularzy Meta.

Sprawdź, co widzi Meta

Podłącz konto reklamowe i zobacz, które formularze są gotowe, a które wymagają naprawy. Za darmo do 100 leadów miesięcznie, bez karty.