Blog o marketingu i technologii

API konwersji offline (ang. Offline Conversions API) to rozwiązanie ułatwiające mierzenie fizycznych interakcji odbiorców i łączenie ze zdarzeniami zrealizowanymi cyfrowo. Integracja tego typu pozwala przy odpowiednim pokryciu ścieżki zakupowej klienta, śledzić skuteczność działań, których końcowe wskaźniki efektywności mogą być zrealizowane na wiele różnych sposobów. Co więcej, załączenie Offline Conversions API umożliwia dokładniejsze segmentowanie docelowej audiencji i dotarcie do nich ponownie, poprzez sieć reklamową Facebook.

Spis treści

  1. Zastosowanie Offline Conversions API
  2. Wady Offline Conversions API
  3. Jak działa Facebook Offline Conversions API?

Zastosowania Offline Conversions API

Facebook Offline Conversions API jest rozwiązaniem serwerowym (ang. server-side), przeznaczonym do przesyłania większych ilości danych o odbiorcach korzystających z naszych usług poza standardową, internetową ścieżką. Jest to narzędzie komplementarne do analityki internetowej, jaką oferuję nam Facebook Pixel i Facebook Conversions API.

API konwersji offline idealnie sprawdzi się w połączeniu z mierzeniem takich interakcji jak:

  • zakup przy kasie (z użyciem np. karty lojalnościowej lub innej metody płatności, która umożliwia identyfikację)
  • zamówienia telefoniczne
  • inne czynności, realizowane poza kanałem online

Jest to o tyle szczególnie istotne, iż zachowania użytkowników podlegają ciągłej ewolucji. Gwarantem zachowania jakości danych, a co za tym idzie, analiz i podejmowanych na podstawie nich decyzji, jest ścisła kontrola przepływu informacji, jakie pozostawiają odbiorcy i sposób ich grupowania.

Wady Offline Conversions API

Interfejs programistyczny Facebooka pozwala dotrzeć do wielu segmentów odbiorców (w tym kompletnie nowych), jak i jednocześnie dostarcza bardziej szczegółowe informacje dot. aktualnej audiencji. Wiąże się to jednak z pewnymi utrudnieniami, które pokrótce opisałem w moim wpisie dotyczącego Facebook Conversions API, a które ponownie przytoczę poniżej:

  • wymagana wiedza programistyczna: załączenie tego rozwiązania jest niemożliwe bez posiadania specjalistycznej wiedzy. Mimo obecności już gotowych rozwiązań na rynku dochodzi szereg problemów na etapie serwisowania oprogramowania (m.in. elastyczność podpięcia, aktualizacje itd.). Działania tego typu wymagają przeznaczenia odpowiednich zasobów (finansowych i/lub czasowych)
  • problem ze skalowaniem: popularne narzędzie Facebook Pixel wysyła informacje po stronie klienta (ang. client-side) — jedynym obowiązkiem osób dokonujących integracji, jest zainstalowanie odpowiedniego skryptu śledzącego i oznaczenie miejsc raportowania (szczegółowo opisałem to tutaj). Przy Offline Conversions API, bardzo ważne jest uwzględnienie obciążenia przy zbieraniu i przesyłaniu informacji do Facebooka, jak i tak samo źródła, które różnią się w zależności od obranej logiki biznesowej (np. kasowniki, CRMy)
  • szczegółowa analiza ścieżek klienta: samo wysyłanie informacji nic nie daje, jeśli nie wyznaczy się obiegu odbiorcy w ramach oferowanej usługi. Wymaganą potrzebą w ramach Facebook Offline Conversions API jest identyfikacja użytkowników i dopasowywanie interakcji do ich zbiorczego profilu: w tym celu konieczne jest wyznaczenie ścieżek klienta, które zwiększą prawdopodobieństwo ujawnienia się (np. sklepy Biedronka i podanie numeru telefonu w celu naliczenia punktów za zakupy, marka Douglas i system kart lojalnościowych itd.)

Zapewniam jednak, iż warto pokonać wyżej wymienione trudności i zacząć działać już dziś: zmiany w zakresie przepływu danych następują szybko.

Jak działa Facebook Offline Conversions API?

Istotnym faktem, związanym z projektowaniem integracji w ramach Offline Conversions API, jest czas wysyłki konwersji do systemów. Według dokumentacji wynosi on 90 dni od pierwszego punktu styku z usługą i jest liczony od momentu granicy realizacji docelowej interakcji, wyłączając czas, w którym użytkownik mógł zrealizować końcową akcję, w ramach określonego modelu atrybucji. Co to znaczy?

Najprościej to będzie opisać na przykładzie:

  • załóżmy, że usługę X, która sprzedaje produkty Y. Jako czas atrybucji (czyli mówiąc w uproszczeniu, dopasowania do źródła reklamy) określamy 7 dni po kliknięciu kreacji reklamowej lub 1 dzień po jej wyświetleniu (niezależnie od tego, czy ją pominął). Jest to od 2020 roku maksymalne okno konwersji, jakie reklamodawcy są w stanie określić. Jednocześnie, tą decyzją uśredniamy granicę czasową ścieżki klienta do zdefiniowanych wartości (i to się analogicznie tyczy pozostałych wymiarów czasowych)
  • użytkownik realizuje warunek przypisania do określonej atrybucji (klika w reklamę) i dodaje produkt do koszyka. Z jakiegoś powodu porzuca koszyk, ale zakłada konto w ramach usługi, dzięki czemu jego wybór zostaje zapamiętany i staje się możliwy to znalezienia
  • konsument udaje się do fizycznej placówki należącej do firmy X i kupuje produkt fizycznie za gotówkę

Jako iż czas na realizacje konwersji w ramach obranych wymiarów wyniósł 7 dni, od wartości 90 dni odejmujemy ww. zakres i pozostaje 83 dni: tyle czasu pozostaje na wysłanie konwersji do Facebook Offline Conversions API. Zalecam jednak, by robić to niezwłocznie. Praktyka często pokazuje, iż warto mieć aktualne dane przy interpretacji wyników, gdzie często wprowadzane zmiany są na żywo, co jest spowodowane m.in. wahaniem się stawek aukcji w systemach reklamowych.

Struktura zapytania

Struktura docelowego zapytania składa się z tablicy o nazwie data, która zawiera następujące obiekty w formacie JSON (których limit na jedno zapytanie wynosi 2000):

{ 
  match_keys: {"phone": ["HASH1","HASH2"], "email": ["HASH3","HASH4"]}, 
  currency: "USD", 
  value: 16,
  event_name: "Purchase",
  event_time: 1456870902,
  contents: [
    {id: "A", quantity: 1},
    {id: "B", quantity: 2},
    {id: "C", quantity: 1}
  ],
  custom_data: {
    event_source: "in_store"
  },
}
Przykładowy objekt JSON. Źródło: dokumentacja techniczna Facebooka

Należy tutaj wyszczególnić następujące, wymagane informacje:

  • match_keys, czyli informacje kluczowe, po których można dopasować konwersję do odbiorcy (lista możliwych kombinacji znajduje się tutaj)
  • event_time, czyli czas, kiedy zostało zrealizowane zdarzenie (co nie musi pokrywać się z momentem wysyłki)
  • event_name, czyli nazwa zdarzenia

Z istotniejszych pól wyróżnię custom_data (miejsce na wysyłkę własnych danych, które mogą później służyć jako podstawa do zaawansowanej segmentacji). Pozostałe struktury są przesyłane zgodnie ze specyfikacją dla danego zdarzenia (jw. na przykładzie, dla Purchase). Lista możliwych zdarzeń znajduje się tutaj, a opis pozostałych pól funkcjonuje pod tym linkiem.

Wysyłka informacji

Przesyłanie danych o konwersjach offline odbywa się poprzez wysłanie zapytania typu POST na następujący URL:

https://graph.facebook.com/v9.0/<OFFLINE_EVENT_SET_ID>/events

Poniżej załączam przykład dla pakietu curl:

curl -X POST \
  -F 'data=[
       { 
         match_keys: {"phone": ["HASH1","HASH2"], "email": ["HASH3","HASH4"]}, 
         currency: "USD", 
         value: 16,
         event_name: "Purchase",
         event_time: 1456870902,
         contents: [
           {id: "A", quantity: 1},
           {id: "B", quantity: 2},
           {id: "C", quantity: 1}
         ],
         custom_data: {
           event_source: "in_store"
         },
       }
     ]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  -F 'upload_tag=<UPLOAD_TAG>' \
  https://graph.facebook.com/v9.0/<PIXEL_ID>/events

Do każdego zapytania należy dołączać parametry access_token z kluczem dostępu do docelowego kontenera z konwersjami offline i upload_tag, który oznacza rodzaj lub źródło przesyłanych danych.

Token dostępu

Uzyskanie tokenu dostępu do wysyłki zapytań wiąże się ze stworzeniem specjalnej aplikacji w ramach ekosystemu Facebooka, która będzie określała poziom uprawnień dla końcowych odbiorców, którzy wysyłają informacje o konwersjach offline. Aplikacja w ramach protokołu OAuth2 potrzebuje dostępu do zasobów ads_management.

Następnie, w strukturze biznesowej Facebooka należy utworzyć nowego Użytkownika systemowego:

Kolejnym krokiem jest przejście do ustawień tego użytkownika i wygenerowanie klucza dostępu do aplikacji, poprzez przycisk Wygeneruj klucz dostępu i wybranie utworzonej aplikacji.

Ostatnim krokiem, jest dodanie do utworzonego użytkownika zasobu w postaci konta reklamowego, w którego raportach będą uwzględnione dane z Offline Conversions API.

Obsługa błędów

Po wysłaniu zapytania do Facebook Offline Conversions API, w odpowiedzi zostanie zwrócone pole num_processed_entries z liczbą prawidłowo przetworzonych zdarzeń. Jeśli wartości nie będą zgadzały się z tymi, które zostały przesłane, zostanie załączony błąd z dokładnym opisem.

Facebook Conversions API to inny standard przesyłania danych, jednak jak możesz zauważyć — bardzo wartościowy i nadający nowe znaczenie analityce działań z kanału dystrybucji treści, jakim jest Facebook i który umożliwia docieranie do nowych segmentów odbiorców.