Platformy reklamowe i sklepy internetowe

Meta Conversions API (CAPI): praktyczny poradnik

Praktyczny poradnik po Meta Conversions API: uruchom je obok piksela z jednym event_id, wysyłaj właściwe parametry, testuj zdarzenia i naprawiaj typowe błędy.

·Zaktualizowano ·9 min czytania·Autor: zespół ROASaurus

Najważniejsze wnioski
  • 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.

PoleCo zawiera
event_nameAkcja, na przykład Purchase, AddToCart lub InitiateCheckout
event_timeKiedy to się stało, jako znacznik czasu Unix w sekundach
event_idUnikalne id tego zdarzenia, używane do deduplikacji względem piksela
action_sourceGdzie to się stało: website dla zakupów w sklepie
event_source_urlAdres URL strony, na której wystąpiło zdarzenie
user_dataDane klienta do dopasowania: zahashowany e-mail i telefon, adres IP, user agent, fbp i fbc
custom_dataSzczegóły, takie jak value, currency i content_ids
Każde zdarzenie Conversions API ma ten sam kształt: akcja, dane klienta i szczegóły.

Skrócone zdarzenie Purchase wygląda tak:

Conversions API: zdarzenie Purchase (skrócone)
{
  "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.

Piksel Meta (przeglądarka)
  • 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
Conversions API (serwer)
  • 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ą
Piksel dostarcza identyfikatory przeglądarki, a serwer dostarcza zamówienie. Każdy z nich osobno widzi tylko część obrazu.

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.

Piksel Meta: ten sam Purchase z eventID
fbq('track', 'Purchase', { value: 74.00, currency: 'USD' }, { eventID: 'order-1042' });
Kupujący płaciZamówienie 1042, $74.00
Piksel wysyła PurchaseeventID order-1042, z przeglądarki
Serwer wysyła Purchaseevent_id order-1042, z zamówienia
Meta liczy jednoTa sama nazwa i id w ciągu 48 godzin
Obie kopie mają tę samą nazwę zdarzenia i id, więc Meta zachowuje jeden zakup zamiast dwóch.

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-1042 i 1042 to różne id.
  • Dopasuj nazwę zdarzenia co do znaku. Purchase i purchase to 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.

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.

ParametrZdarzenia ze strony internetowejCo wysłać
event_nameWymaganeZdarzenie standardowe, takie jak Purchase, albo własna nazwa zdarzenia
event_timeWymaganeCzas Unix w sekundach, co najwyżej 7 dni wstecz
action_sourceWymaganewebsite dla zdarzeń w twoim sklepie
event_source_urlWymaganeAdres URL strony, na której wystąpiło zdarzenie
client_user_agentWymaganeCiąg przeglądarki kupującego, a nie twojego serwera
user_dataWymaganeCo najmniej jeden parametr danych klienta
event_idZalecaneTo samo id, którego używa piksel, do deduplikacji
em, phZalecaneE-mail i telefon, znormalizowane i zahashowane algorytmem SHA-256
client_ip_addressZalecaneAdres IP kupującego, niezahashowany
fbp, fbcZalecaneCookie z id przeglądarki i click id, niezahashowane
external_idZalecaneTwój własny id klienta, taki sam w zdarzeniach z przeglądarki i z serwera
value, currencyWysyłaj z PurchaseWartość zamówienia i trzyliterowy kod waluty
Meta wymienia action_source, event_source_url i client_user_agent jako wymagane dla zdarzeń ze strony internetowej wysyłanych przez Conversions API.

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.com i anna@example.com dają 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ść fbc to fb.1., czas utworzenia w milisekundach, kropka i fbclid z adresu URL strony docelowej. fbclid rozróż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.

  1. Otwórz Test events

    W Events Manager wybierz swój zestaw danych (piksel) i otwórz kartę Test events. Skopiuj pokazany tam kod testowy.

  2. Dodaj kod do swoich zdarzeń z serwera

    Wyślij go jako test_event_code w żądaniu. W ROASaurus wklej go w pole Test event code piksela Meta.

  3. Złóż zamówienie testowe

    Wejdź do sklepu, dodaj produkt i zapłać, żeby zarówno piksel, jak i serwer wysłały Purchase.

  4. Porównaj obie kopie

    Obie kopie powinny pokazywać tę samą nazwę zdarzenia, event id, wartość i walutę.

  5. 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ę.

  6. 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 piksela
Purchase server order-1042 74.00 USDZ Conversions API
event_name + event_id matchPoliczone jako jeden zakup
em ph fbp fbc client_ip_address client_user_agentDane klienta w zdarzeniu z serwera
Co pokazuje dobre zamówienie testowe (przykładowe wartości): dwie kopie, jedno id i pełne dane klienta.

Częste błędy Conversions API i jak je naprawić

Co widziszPrawdopodobna przyczynaRozwiązanie
Całe żądanie kończy się błędem i żadne zdarzenia nie są przetwarzaneJedno zdarzenie w partii ma event_time starszy niż 7 dniWysyłaj zdarzenia, gdy się dzieją. Popraw lub usuń stare zdarzenia, zanim ponowisz próbę.
Meta raportuje więcej zakupów, niż miał twój sklepRóżne event id, zdarzenie piksela bez eventID albo druga aplikacja, która wysyła ten sam pikselUżywaj jednego id dla obu kopii i jednego nadawcy z serwera na piksel.
Niska jakość dopasowania zdarzeń z serweraTwój serwer wysyła własny adres IP i user agentPrzekazuj adres IP i user agent zarejestrowane z przeglądarki kupującego lub z zamówienia.
Mało zdarzeń z fbcfbclid nie został zapisany na stronie docelowej albo został zmienionyZapisuj 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 hashowaniaObetnij 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 tokenaToken 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.
Większość problemów z Conversions API objawia się odrzuconymi żądaniami, podwójnym liczeniem albo niską jakością dopasowania.

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 fbp i fbc zapisanymi 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

  1. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  2. Meta for Developers: Server Event Parameters
  3. Meta for Developers: Customer Information Parameters
  4. Meta for Developers: Using the API - Conversions API
  5. Meta for Developers: ClickID and the fbp and fbc Parameters

W ROASaurus

Czytaj dalej

Platformy reklamowe i sklepy internetoweTracking konwersji przy płatności za pobraniem i zewnętrzne checkoutyTracking konwersji przy płatności za pobraniem: dlaczego piksele pomijają zamówienia COD i z zewnętrznych checkoutów, kiedy wysłać zakup i jak obsłużyć odrzucone zamówienia.Platformy reklamowe i sklepy internetoweTracking konwersji w CCV Shop: poradnik konfiguracjiTracking konwersji w CCV Shop: wysyłaj opłacone zamówienia do Meta i TikTok przez podpisany webhook, powiąż je z kliknięciami w reklamy, skonfiguruj, przetestuj i obsłuż opóźnione płatności.Platformy reklamowe i sklepy internetoweGoogle Ads enhanced conversions w ShopifyEnhanced conversions dodają zahashowane dane klientów do zakupów w Google Ads w Shopify. Jak działają, czym różnią się od importu offline i jak je skonfigurować.
FAQ

Pytania i odpowiedzi

Czy potrzebuję zarówno piksela Meta, jak i Conversions API?

Meta zaleca używanie obu. Piksel dodaje dane z przeglądarki, takie jak cookie fbp, a Conversions API dostarcza zdarzenia, które przeglądarka pomija. Nadaj obu kopiom tę samą nazwę zdarzenia i ten sam event id, aby Meta liczyła każde zdarzenie raz.

Jak długo Meta czeka z deduplikacją zdarzenia z przeglądarki i z serwera?

Meta deduplikuje zdarzenie z przeglądarki i zdarzenie z serwera z tą samą nazwą zdarzenia i tym samym event id, gdy dotrą w ciągu 48 godzin od siebie. Kopia, która dotrze później, jest liczona ponownie.

Czy Conversions API wymaga hashowania danych klientów?

Tak, w przypadku danych kontaktowych. Pola e-mail, telefon, imię i nazwisko oraz adres muszą być znormalizowane i zahashowane algorytmem SHA-256. Adres IP, user agent, fbp i fbc są wysyłane bez hashowania.

Które pola są wymagane dla zdarzenia ze strony internetowej?

Każde zdarzenie potrzebuje event_name, event_time, action_source i co najmniej jednego parametru danych klienta. Dla zdarzeń ze strony internetowej Meta wymaga też event_source_url i client_user_agent.

Czy mogę wysyłać stare zamówienia przez Conversions API?

Tylko ostatnie. Wartość event_time może sięgać najwyżej 7 dni wstecz, a jeśli jedno zdarzenie w żądaniu jest starsze, Meta odrzuca całe żądanie.

Każda sprzedaż przypisana do reklamy, która ją przyniosła

Server-side tracking, zysk i wartość życiowa klienta w jednej aplikacji. 14-dniowy darmowy okres próbny, bez karty kredytowej.

Zacznij darmowy okres próbny →