- Meta Conversions API wysyła zdarzenia, takie jak Purchase, z twojego serwera, więc docierają do Meta nawet wtedy, gdy piksel w przeglądarce jest zablokowany.
- Uruchom je obok piksela i nadaj obu kopiom tę samą nazwę zdarzenia i event_id; Meta policzy wtedy zdarzenie raz, jeśli obie dotrą w ciągu 48 godzin.
- Zdarzenia ze strony internetowej wymagają action_source, event_source_url i user agenta kupującego; zahashowany e-mail i telefon, adres IP, fbp i fbc decydują o tym, jak dobrze Meta może je dopasować.
- Testuj na karcie Test events w Events Manager, a potem usuń kod testowy, bo zdarzenia testowe nie są odrzucane.
- Większość problemów bierze się z niezgodnych event id, własnego adresu IP serwera, zgubionego fbclid albo danych kontaktowych zahashowanych bez normalizacji.
Meta Conversions API (CAPI) pozwala twojemu serwerowi wysyłać zdarzenia, takie jak Purchase, prosto do Meta. Piksel Meta wysyła te same zdarzenia z przeglądarki kupującego. CAPI wysyła je z twojego serwera, więc docierają nawet wtedy, gdy bloker reklam zatrzyma piksel, cookie zniknie albo strona z podziękowaniem nigdy się nie załaduje.
Ten poradnik wyjaśnia, co zawiera zdarzenie Conversions API, jak uruchomić je obok piksela z jednym event_id, jakich parametrów Meta wymaga i jakie zaleca, jak testować w Test events oraz jakie błędy pojawiają się najczęściej.
Czym jest Meta Conversions API?
Conversions API jest częścią Graph API Meta. Twój serwer wysyła żądanie HTTPS POST na adres graph.facebook.com/VERSION/PIXEL_ID/events z tokenem dostępu i listą data zawierającą do 1,000 zdarzeń. Każde zdarzenie opisuje jedną akcję, na przykład zakup, w trzech częściach: co się stało, kto to zrobił i szczegóły.
| Pole | Co zawiera |
|---|---|
event_name | Akcja, na przykład Purchase, AddToCart lub InitiateCheckout |
event_time | Kiedy to się stało, jako znacznik czasu Unix w sekundach |
event_id | Unikalne id tego zdarzenia, używane do deduplikacji względem piksela |
action_source | Gdzie to się stało: website dla zakupów w sklepie |
event_source_url | Adres URL strony, na której wystąpiło zdarzenie |
user_data | Dane klienta do dopasowania: zahashowany e-mail i telefon, adres IP, user agent, fbp i fbc |
custom_data | Szczegóły, takie jak value, currency i content_ids |
Skrócone zdarzenie Purchase wygląda tak:
{
"data": [{
"event_name": "Purchase",
"event_time": 1792929600,
"event_id": "order-1042",
"action_source": "website",
"event_source_url": "https://yourstore.com/checkouts/thank-you",
"user_data": {
"em": ["<SHA-256 of the normalized email>"],
"ph": ["<SHA-256 of the normalized phone>"],
"client_ip_address": "203.0.113.24",
"client_user_agent": "Mozilla/5.0 (iPhone; ...)",
"fbp": "fb.1.1792928400000.1234567890",
"fbc": "fb.1.1792928400000.AbCdEf123"
},
"custom_data": { "value": 74.00, "currency": "USD" }
}]
}Pola kontaktowe, takie jak e-mail i telefon, są normalizowane i hashowane algorytmem SHA-256, zanim opuszczą twój serwer. Adres IP, user agent, fbp i fbc są wysyłane w niezmienionej postaci.
Po co uruchamiać Conversions API obok piksela?
Meta zaleca uruchamianie Conversions API obok piksela i wysyłanie tych samych zdarzeń obiema drogami. Każda strona widzi coś, czego druga nie widzi, a razem dają Meta pełniejsze dane.
- Ustawia cookie _fbp i zapisuje fbclid z kliknięcia w reklamę w cookie _fbc
- Widzi stronę i przeglądarkę w trakcie wizyty
- Ginie, gdy przeglądarka go zablokuje albo strona się nie załaduje
- Wysyła opłacone zamówienie z danych twojego sklepu
- Może dodać zahashowany e-mail, telefon i adres z zamówienia
- Nie zależy od przeglądarki, więc blokery reklam go nie zatrzymują
Ceną za uruchomienie obu jest to, że Meta dostaje teraz dwie kopie każdego zdarzenia. Następna sekcja pokazuje, jak Meta zachowuje tylko jedną.
Jak działa deduplikacja z jednym event_id?
Meta traktuje zdarzenie z przeglądarki i zdarzenie z serwera jako to samo zdarzenie, gdy zgadzają się dwie rzeczy: nazwa zdarzenia i event id. W pikselu id trafia do opcji eventID. W Conversions API ta sama wartość trafia do event_id.
fbq('track', 'Purchase', { value: 74.00, currency: 'USD' }, { eventID: 'order-1042' });Meta deduplikuje pasującą parę tylko wtedy, gdy obie kopie dotrą w ciągu 48 godzin od siebie. Kilka zasad sprawia, że w praktyce to działa:
- Utwórz id tylko raz. Zbuduj je z czegoś, co znają obie strony, na przykład z numeru zamówienia, i przekaż zarówno przeglądarce, jak i serwerowi. Dwa systemy, które tworzą własne id, nie będą do siebie pasować.
- Używaj jednego formatu.
order-1042i1042to różne id. - Dopasuj nazwę zdarzenia co do znaku.
Purchaseipurchaseto różne zdarzenia. - Wysyłaj zdarzenie z serwera szybko. Zdarzenie z serwera, które dociera po więcej niż 48 godzinach od zdarzenia z przeglądarki, jest liczone drugi raz.
Meta opisuje też drugą metodę, która łączy zdarzenia w pary po fbp lub external_id. Według Meta zwykle działa ona tylko wtedy, gdy zdarzenie z przeglądarki dociera przed zdarzeniem z serwera, więc wspólny event_id jest pewniejszym wyborem. Jeśli Meta nadal raportuje więcej zakupów, niż miał twój sklep, nasz poradnik o zduplikowanych zdarzeniach zakupu wymienia typowe przyczyny.
Które parametry są wymagane, a które zalecane?
Wymagane pola sprawiają, że zdarzenie jest poprawne. Zalecane pola decydują o tym, ile twoich zdarzeń Meta może dopasować do osoby, a tylko dopasowane zdarzenia można wykorzystać do atrybucji i dostarczania reklam.
| Parametr | Zdarzenia ze strony internetowej | Co wysłać |
|---|---|---|
event_name | Wymagane | Zdarzenie standardowe, takie jak Purchase, albo własna nazwa zdarzenia |
event_time | Wymagane | Czas Unix w sekundach, co najwyżej 7 dni wstecz |
action_source | Wymagane | website dla zdarzeń w twoim sklepie |
event_source_url | Wymagane | Adres URL strony, na której wystąpiło zdarzenie |
client_user_agent | Wymagane | Ciąg przeglądarki kupującego, a nie twojego serwera |
user_data | Wymagane | Co najmniej jeden parametr danych klienta |
event_id | Zalecane | To samo id, którego używa piksel, do deduplikacji |
em, ph | Zalecane | E-mail i telefon, znormalizowane i zahashowane algorytmem SHA-256 |
client_ip_address | Zalecane | Adres IP kupującego, niezahashowany |
fbp, fbc | Zalecane | Cookie z id przeglądarki i click id, niezahashowane |
external_id | Zalecane | Twój własny id klienta, taki sam w zdarzeniach z przeglądarki i z serwera |
value, currency | Wysyłaj z Purchase | Wartość zamówienia i trzyliterowy kod waluty |
Trzy szczegóły powodują większość problemów:
- Normalizuj przed hashowaniem. Meta oczekuje e-maila bez spacji na brzegach i małymi literami oraz numerów telefonu jako cyfr z kodem kraju.
Anna@Example.comianna@example.comdają różne hashe i tylko drugi może się dopasować. - Nie hashuj identyfikatorów przeglądarki.
fbp,fbc, adres IP i user agent trafiają jako zwykłe wartości. - Zachowaj click id dokładnie w takiej postaci, w jakiej jest. Wartość
fbctofb.1., czas utworzenia w milisekundach, kropka ifbclidz adresu URL strony docelowej.fbclidrozróżnia wielkość liter. Zapisz go, gdy odwiedzający wejdzie na stronę, bo w checkoucie nie ma go już w adresie URL.
To, jak dobrze te pola się dopasowują, mierzy wynik Event Match Quality w Meta. Nasz poradnik o Event Match Quality omawia każdy parametr, zasady hashowania i wynik, do którego warto dążyć.
Jak testować zdarzenia w Test events?
Events Manager ma kartę Test events, która pokazuje zdarzenia w miarę ich nadchodzenia. Użyj jej, zanim zaczniesz polegać na nowej konfiguracji.
- Otwórz Test events
W Events Manager wybierz swój zestaw danych (piksel) i otwórz kartę Test events. Skopiuj pokazany tam kod testowy.
- Dodaj kod do swoich zdarzeń z serwera
Wyślij go jako
test_event_codew żądaniu. W ROASaurus wklej go w pole Test event code piksela Meta. - Złóż zamówienie testowe
Wejdź do sklepu, dodaj produkt i zapłać, żeby zarówno piksel, jak i serwer wysłały Purchase.
- Porównaj obie kopie
Obie kopie powinny pokazywać tę samą nazwę zdarzenia, event id, wartość i walutę.
- Sprawdź dane klienta
Zdarzenie z serwera powinno zawierać zahashowany e-mail i telefon, adres IP, user agent i fbp, a także fbc, jeśli wizyta zaczęła się od kliknięcia w reklamę.
- Usuń kod testowy
Meta mówi, że to pole służy tylko do testów, więc usuń je, zanim zaczniesz polegać na zdarzeniach.
Purchase browser order-1042 74.00 USDZ pikselaPurchase server order-1042 74.00 USDZ Conversions APIevent_name + event_id matchPoliczone jako jeden zakupem ph fbp fbc client_ip_address client_user_agentDane klienta w zdarzeniu z serweraCzęste błędy Conversions API i jak je naprawić
| Co widzisz | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| Całe żądanie kończy się błędem i żadne zdarzenia nie są przetwarzane | Jedno zdarzenie w partii ma event_time starszy niż 7 dni | Wysyłaj zdarzenia, gdy się dzieją. Popraw lub usuń stare zdarzenia, zanim ponowisz próbę. |
| Meta raportuje więcej zakupów, niż miał twój sklep | Różne event id, zdarzenie piksela bez eventID albo druga aplikacja, która wysyła ten sam piksel | Używaj jednego id dla obu kopii i jednego nadawcy z serwera na piksel. |
| Niska jakość dopasowania zdarzeń z serwera | Twój serwer wysyła własny adres IP i user agent | Przekazuj adres IP i user agent zarejestrowane z przeglądarki kupującego lub z zamówienia. |
| Mało zdarzeń z fbc | fbclid nie został zapisany na stronie docelowej albo został zmieniony | Zapisuj fbclid dokładnie w takiej postaci, w jakiej przychodzi, i buduj z niego fbc. |
| E-mail i telefon się nie dopasowują | Wartości zahashowane bez normalizacji albo wysłane bez hashowania | Obetnij spacje i zamień e-mail na małe litery, zachowaj cyfry i kod kraju telefonu, a potem zahashuj algorytmem SHA-256. |
| Żądania kończą się błędem wygasłego tokena | Token dostępu pochodzi z logowania przez Facebooka, a tokeny logowania wygasają | Połącz ponownie albo użyj tokena System User z Business Manager, który możesz utworzyć bez daty wygaśnięcia. |
Po kilku dniach rzeczywistego ruchu otwórz kartę Diagnostics w Events Manager. Meta wymienia tam problemy wraz z zaleceniami, jak je naprawić. Potem porównaj dzienną liczbę zdarzeń Purchase w Events Manager z opłaconymi zamówieniami w twoim sklepie z tych samych dni. Jeśli Meta jest wyraźnie wyżej, nasza strona pomocy o zapobieganiu podwójnemu liczeniu wymienia ustawienia do sprawdzenia.
Jak skonfigurować Conversions API z ROASaurus
ROASaurus wysyła zdarzenia Conversions API z danych zamówień twojego sklepu, więc nie musisz sam budować strony serwerowej. W Tracking & platforms kliknij Connect with Facebook i wybierz swoje konto reklamowe i piksel albo wklej id piksela (zestawu danych) i token Conversions API. Poradnik konfiguracji Meta przeprowadza przez obie opcje, a strona integracji z Meta wymienia każde wysyłane pole.
- Jedno id po obu stronach. Zdarzenia z przeglądarki i z serwera mają wspólny event id. Dla zakupu to
order-z dopisanym id zamówienia. - Krótkie wstrzymanie przed zakupem. Purchase z serwera czeka chwilę po nadejściu zamówienia, żeby można było najpierw dołączyć zdarzenie zakupu z przeglądarki. Jego adres IP, user agent i adres URL strony trafiają wtedy ze zdarzeniem z serwera, razem z
fbpifbczapisanymi dla odwiedzającego. - Dane klienta z zamówienia. E-mail, telefon, imię i nazwisko oraz adres są normalizowane i hashowane algorytmem SHA-256. Id klienta ze sklepu i visitor id z ROASaurus trafiają zahashowane jako
external_id. - Zdarzenia, których Meta nie może dopasować, są pomijane. Zdarzenie bez
fbc,fbp, e-maila, telefonu ani adresu IP nie jest wysyłane.
Event log pokazuje każdą wysyłkę z serwera wraz z żądaniem i odpowiedzią Meta. Jeśli twoje marże mocno różnią się między produktami, możesz też wysyłać wartość zysku obok każdego zakupu: wyjaśnia to nasz poradnik o optymalizacji wartości w Meta pod zysk. Pełną ścieżkę danych od kliknięcia do zamówienia opisuje server-side tracking.
Źródła
- Meta for Developers: Handling Duplicate Pixel and Conversions API Events
- Meta for Developers: Server Event Parameters
- Meta for Developers: Customer Information Parameters
- Meta for Developers: Using the API - Conversions API
- Meta for Developers: ClickID and the fbp and fbc Parameters