- TikTok Events API wysyła zdarzenia konwersji z serwera do TikTok, więc zakup nie zależy od działania piksela TikTok w przeglądarce kupującego.
- TikTok zmienił nazwę CompletePayment na Purchase, ale nadal akceptuje starą nazwę; dla deduplikacji piksel i serwer muszą używać tej samej nazwy.
- TikTok deduplikuje zdarzenie z piksela i zdarzenie z serwera, gdy oba mają tę samą nazwę zdarzenia i ten sam event_id, i zapisuje pierwszą otrzymaną kopię.
- Click id ttclid, cookie _ttp, zahashowany e-mail i telefon, adres IP oraz user agent to klucze, których TikTok używa do dopasowania zdarzenia do osoby.
- Najpierw testuj z kodem zdarzenia testowego i odłącz piksel w każdej innej aplikacji, która go wysyła, bo inaczej TikTok liczy zakupy dwa razy.
TikTok Events API to połączenie TikTok z serwera na serwer dla danych o konwersjach. Zamiast polegać tylko na pikselu TikTok w przeglądarce kupującego, twój sklep lub narzędzie takie jak ROASaurus wysyła zdarzenia, na przykład zakupy, prosto do TikTok. TikTok zaleca uruchamianie Events API obok piksela i deduplikowanie obu za pomocą wspólnego event_id.
Ten poradnik opisuje, co Events API wysyła ze sklepu Shopify, nazwy zdarzeń Purchase i CompletePayment, click id i cookie, po których TikTok dopasowuje zdarzenia, jak działa deduplikacja, jak testować w TikTok Events Manager i jak to wszystko skonfigurować w ROASaurus.
Czym jest TikTok Events API?
Piksel TikTok to skrypt w twoim sklepie. Wysyła zdarzenia z przeglądarki kupującego, więc liczy tylko to, co dzieje się, gdy skrypt się ładuje i działa. Zatrzymać go może bloker reklam, błąd skryptu albo kupujący, który zamknie kartę, zanim załaduje się potwierdzenie zamówienia.
Events API wysyła ten sam rodzaj zdarzeń z serwera. W Shopify najbardziej niezawodnym zapisem zakupu jest samo zamówienie. Shopify zgłasza każde opłacone zamówienie przez webhook, niezależnie od tego, czy skrypt w przeglądarce się uruchomił. Na tym polega idea server-side tracking w Shopify.
Te dwa rozwiązania nie wykluczają się. Rada TikTok jest taka, żeby udostępniać zdarzenia obiema drogami, utrzymywać ich spójność na całej ścieżce zakupowej i pozwolić TikTok usuwać duplikaty.
- Działa w przeglądarce kupującego
- Mogą go zatrzymać blokery reklam i błędy skryptu
- Domyślnie przekazuje adres IP i user agent
- Wysyła wyświetlenia stron i zdarzenia przeglądania na bieżąco
- Działa na serwerze, na podstawie danych zamówień
- Nie zależy od załadowania skryptu w przeglądarce
- Nadawca musi dodać adres IP i user agent
- Wysyła każde opłacone zamówienie, nawet gdy piksel się nie uruchomił
Jakie zdarzenia ROASaurus wysyła do TikTok?
Cztery momenty w sklepie Shopify mają znaczenie dla optymalizacji TikTok: wyświetlenie produktu, dodanie do koszyka, rozpoczęcie checkoutu i zakup. ROASaurus wysyła wszystkie cztery do Events API i uruchamia te same cztery przez piksel TikTok, z tymi samymi event id. Wyświetlenia stron idą tylko przez piksel.
| Działanie kupującego | Zdarzenie TikTok | Piksel (przeglądarka) | Events API (serwer) |
|---|---|---|---|
| Wyświetla stronę | Wyświetlenie strony | Tak | Nie |
| Wyświetla produkt | ViewContent | Tak | Tak |
| Dodaje do koszyka | AddToCart | Tak | Tak |
| Rozpoczyna checkout | InitiateCheckout | Tak, z pikselem checkoutu | Tak |
| Finalizuje zamówienie | CompletePayment | Tak, z pikselem checkoutu | Tak, z zamówienia |
W ustawieniach piksela możesz odznaczyć zdarzenia server-side, których nie chcesz wysyłać, i dodać filtry, takie jak kraj lub minimalna wartość zamówienia.
Purchase czy CompletePayment?
TikTok zmienił nazwę swojego zdarzenia zakupu. Obecna nazwa to Purchase. Stara nazwa, CompletePayment, nadal działa: TikTok konwertuje starsze nazwy po swojej stronie, pokazuje je pod nową nazwą w raportowaniu, grupach odbiorców i optymalizacji oraz podaje, że CompletePayment będzie obsługiwane bezterminowo. TikTok prosi, aby nowe konfiguracje piksela używały Purchase.
ROASaurus wysyła CompletePayment, w pikselu i w Events API. W TikTok Events Manager i Ads Manager te zdarzenia są pokazywane jako Purchase. Dla deduplikacji liczy się to, że obie kopie zakupu używają tej samej nazwy zdarzenia, i tak właśnie jest.
Jak TikTok dopasowuje zdarzenie do kupującego?
Zdarzenie pomaga twoim kampaniom tylko wtedy, gdy TikTok może powiązać je z osobą, która zobaczyła reklamę lub w nią kliknęła. TikTok nazywa te identyfikatory match keys, a jego poradnik Events API prosi o przekazywanie wszystkich istotnych match keys, aby zwiększyć odsetek dopasowań. Events Manager pokazuje wynik jako Event Match Quality score, czyli średnią ważoną tego, jak często występuje każdy match key.
| Match key | Skąd pochodzi | Wysyłane jako |
|---|---|---|
| ttclid | Click id, które TikTok dodaje do adresu URL strony docelowej, gdy ktoś kliknie reklamę | Wartość bez zmian |
| _ttp cookie | Cookie first-party piksela TikTok w domenie twojego sklepu | Wartość bez zmian |
| Zamówienie Shopify | Hash SHA-256 | |
| Telefon | Zamówienie Shopify | Hash SHA-256 |
| external_id | Id klienta Shopify lub visitor id ROASaurus | Hash SHA-256 |
| Adres IP i user agent | Sesja checkoutu kupującego lub zamówienie | Wartość bez zmian |
TikTok zaznacza, że piksel domyślnie przekazuje adres IP i user agent, ale w Events API trzeba je dodać ręcznie. ROASaurus pobiera je z sesji checkoutu kupującego albo z zamówienia, jeśli nie było sesji. Dwa inne klucze wymagają uwagi w Shopify.
ttclid: click id TikTok
Gdy kupujący kliknie reklamę TikTok, TikTok dodaje ttclid do adresu URL strony docelowej. Jeśli twój sklep nie zapisze go na tej pierwszej stronie, zniknie, zanim nadejdzie zamówienie, kilka stron później. ROASaurus odczytuje ttclid na stronie docelowej, zapisuje go razem z visitor id, zapisuje w koszyku Shopify i dodaje do zdarzenia server-side, gdy przychodzi zamówienie.
_ttp: cookie piksela
Cookie _ttp to cookie first-party, którego piksel TikTok używa w twojej domenie. ROASaurus odczytuje je w witrynie sklepu i w checkoucie i wysyła jako ttp w zdarzeniu server-side. To jeszcze jeden powód, żeby piksel działał obok Events API.
{
"event_source": "web",
"event_source_id": "CXXXXXXXXXXXXXXXXXXX",
"data": [{
"event": "CompletePayment",
"event_time": 1793016000,
"event_id": "order-5512345678901",
"user": {
"email": "a3f1…9c2e",
"phone": "7b40…11d8",
"external_id": "e05c…4a7f",
"ttclid": "E.C.P.v3…",
"ttp": "2Xb7…",
"ip": "203.0.113.24",
"user_agent": "Mozilla/5.0 (iPhone; …)"
},
"page": { "url": "https://example-store.com/checkouts/…/thank-you" },
"properties": {
"currency": "USD",
"value": 84,
"content_type": "product",
"contents": [{ "content_id": "44123456789", "content_name": "Linen shirt", "quantity": 2, "price": 42 }],
"order_id": "5512345678901"
}
}]
}Jak działa deduplikacja?
Gdy piksel i Events API zgłaszają ten sam zakup, TikTok otrzymuje dwa zdarzenia dla jednego zamówienia. Aby zachować tylko jedno, TikTok potrzebuje, aby dwie wartości były identyczne w obu kopiach: nazwa zdarzenia i event_id. TikTok zapisuje wtedy pierwszą otrzymaną kopię na potrzeby pomiaru i raportowania, więc zamówienie liczy się raz. Działa to dla pasujących kopii, które docierają w ciągu 48 godzin od pierwszej.
ROASaurus buduje event id zakupu z id zamówienia Shopify. Zakup z zamówienia 5512345678901 ma event id order-5512345678901, w pikselu checkoutu i na serwerze. Zdarzenia witryny, takie jak wyświetlenia produktów i dodania do koszyka, dostają losowe id w chwili wystąpienia, a kopia z przeglądarki i kopia z serwera mają je wspólne.
Oto co to oznacza dla liczb. Weźmy przykładowy sklep z 200 zamówieniami w tygodniu. Piksel uruchamia się dla 150 z nich. Pozostałych 50 kupujących użyło blokera reklam, odrzuciło marketingowe cookie albo wyszło, zanim załadowała się strona potwierdzenia. Events API wysyła wszystkie 200.
To 350 jest liczbą, która powinna niepokoić. Zawyżyłaby liczbę zakupów w TikTok i oparty na niej ROAS o 75% względem rzeczywistości, bo 350 ÷ 200 = 1.75. TikTok używa tych zdarzeń także do optymalizacji i targetowania, więc jego ustalanie stawek (bidding) uczyłoby się na 150 zakupach, które się nie wydarzyły.
Dlaczego zakupy są liczone dwa razy w Shopify?
Podwójne liczenie zdarza się, gdy TikTok otrzymuje dwie kopie zakupu, których nie może dopasować. Sprawdź te przyczyny, zanim zaufasz skokowi liczby zakupów w TikTok:
- Dwa narzędzia wysyłają ten sam piksel. Aplikacja kanału sprzedaży TikTok w Shopify może też wysyłać zdarzenia dla twojego piksela. Jej event id nie zgadzają się z id używanymi przez ROASaurus, więc TikTok liczy każde zamówienie dwa razy. Odłącz piksel w tej aplikacji.
- Piksel jest też w kodzie motywu. Fragment piksela wklejony do motywu wysyła własne zdarzenia bez twoich event id. Usuń go i pozwól, żeby piksel ładowało jedno narzędzie.
- Jedna strona nie ma event_id. Zakupu z serwera bez event_id lub z nowym losowym id nie da się dopasować do kopii z piksela.
- Nazwy zdarzeń się różnią. TikTok deduplikuje tylko identyczne zdarzenia. Obie kopie zakupu muszą używać tej samej nazwy zdarzenia.
Artykuł pomocy o podwójnym liczeniu przeprowadza przez te same kontrole dla Meta i pozostałych platform.
Jak przetestować Events API w TikTok Events Manager?
TikTok Events Manager ma kartę Test events zarówno dla zdarzeń z przeglądarki, jak i z serwera. Użyj jej, zanim zaczniesz polegać na danych:
- Skopiuj kod zdarzenia testowego
W TikTok Events Manager otwórz swój piksel i przejdź do Test events. Skopiuj kod zdarzenia testowego.
- Wklej go w ROASaurus
Otwórz Tracking & platforms, edytuj piksel TikTok i wklej kod w polu Test event code. Zdarzenia server-side będą go teraz zawierać.
- Złóż zamówienie testowe
Wejdź do swojego sklepu, wyświetl produkt, dodaj go do koszyka i złóż zamówienie.
- Sprawdź obie strony
W Test events przefiltruj zdarzenia z przeglądarki i z serwera. Zakup powinien być widoczny w obu. W ROASaurus Event log pokazuje każde dostarczenie z serwera jako wysłane lub nieudane.
- Usuń kod testowy
Usuń kod zdarzenia testowego, gdy skończysz, aby twoje zdarzenia server-side na żywo nie były już wysyłane jako zdarzenia testowe.
TikTok może odpowiedzieć na żądanie HTTP 200 i mimo to odrzucić zdarzenie, z kodem błędu w treści odpowiedzi. ROASaurus odczytuje ten kod, więc odrzucone zdarzenie jest pokazywane w Event log jako nieudane, zamiast przechodzić bez echa.
Po dniu ruchu na żywo otwórz przegląd piksela w Events Manager. Wymienia on każde zdarzenie z metodą połączenia, wynikiem Event Match Quality i czasem ostatniego odbioru. Szczegóły zdarzenia zawierają informacje o dopasowaniu i deduplikacji, a Diagnostics wymienia problemy z jakością wraz ze wskazówkami, jak je naprawić.
Jak skonfigurować TikTok Events API w Shopify z ROASaurus
Potrzebujesz sklepu Shopify z aplikacją ROASaurus i dostępu do TikTok Events Manager. Strona integracji z TikTok wymienia wszystkie pola, które wysyła ROASaurus.
- Połącz swój sklep Shopify
Przejdź do Add a store › Shopify, kliknij Install app i włącz osadzenie aplikacji ROASaurus w edytorze motywu. Osadzenie przechwytuje ttclid i cookie _ttp na każdej stronie. Poradnik konfiguracji Shopify pokazuje każdy krok.
- Dodaj piksel checkoutu
W Shopify admin › Settings › Customer events dodaj własny piksel o nazwie ROASaurus i wklej fragment kodu ze strony Tracking & platforms. Uruchamia on piksel TikTok w checkoucie, w tym kopię zakupu z przeglądarki.
- Utwórz token dostępu
W TikTok Events Manager otwórz swój piksel i wygeneruj w jego ustawieniach token dostępu do Events API. Skopiuj token i kod piksela.
- Dodaj piksel TikTok w ROASaurus
Przejdź do Tracking & platforms, kliknij Add pixel na karcie TikTok i wypełnij Pixel code oraz Events API access token. Zostaw zaznaczone Also load the browser pixel (recommended, deduplicated), aby zdarzenia z przeglądarki i z serwera miały wspólne id.
- Dodaj wydatki (opcjonalnie)
Wypełnij Advertiser ID for spend i Marketing API token. ROASaurus zaimportuje wtedy wydatki z TikTok, więc kampanie TikTok pokażą ROAS i CPA obok twoich pozostałych kanałów.
- Przetestuj, potem uruchom na żywo
Wyślij zamówienie testowe z kodem zdarzenia testowego, jak opisano wyżej, a potem usuń kod.
Gdy Respect visitor consent jest włączone, co jest ustawieniem domyślnym, ROASaurus przestrzega wyboru kupującego w banerze cookie Shopify. Gdy kupujący odrzuci marketingowe cookie, ROASaurus nie ładuje dla niego piksela TikTok, nie ustawia visitor id, więc jego kliknięcia nie są z nim powiązane, i nie wysyła jego zdarzeń przeglądania do TikTok. Jego opłacone zamówienie jest nadal wysyłane z serwera do Events API, z zahashowanymi danymi zamówienia oraz adresem IP i user agent z zamówienia, ale bez ttclid i _ttp. Poradnik o zgodach i prywatności wyjaśnia, co jest zapisywane i wysyłane.
Gdy wydatki są zsynchronizowane, kampanie TikTok pojawiają się w raportach atrybucji obok Meta, a analityka kreacji dodaje statystyki wideo TikTok dla każdej reklamy. ROASaurus przypisuje zamówienia do zapisanych kliknięć w reklamy i UTM, a konwersje view-through liczy tylko jako modelowany szacunek w modelu Clicks & views, więc jego sumy zwykle różnią się od TikTok Ads Manager. O pozostałych platformach server-side przeczytasz w poradniku Pinterest Conversions API i poradniku Meta Conversions API.
Źródła
- TikTok For Business: About Events API
- TikTok Ads Manager: About Event Deduplication
- TikTok Ads Manager: How to Adopt TikTok's Updated Standard Events
- TikTok Ads Manager: How to set up matching events with Events API
- TikTok Ads Manager: About diagnostic and monitoring tools in TikTok Events Manager
W ROASaurus
- Integracja z TikTok
- Server-side tracking w ROASaurus
- Pomoc: zapobieganie podwójnemu liczeniu
- Pomoc: konfiguracja ROASaurus w Shopify