Jak to działa
Ponieważ Zonos Checkout działa wewnątrz iframe na innym pochodzeniu, nie może
bezpośrednio uzyskać dostępu do funkcji fbq na Twojej stronie. System relay
rozwiązuje ten problem za pomocą dwuetapowego uzgodnienia (kroki 1-2) i następnie
przesyłania zdarzeń (krok 3):
- Checkout wysyła ping do strony nadrzędnej -- Gdy kasa ładuje się wewnątrz iframe, wysyła wiadomość do okna nadrzędnego, informując, że jest gotowa do przesyłania zdarzeń, w tym identyfikator Pixel.
- Strona nadrzędna potwierdza -- Skrypt relay na Twojej stronie odbiera ping, wykrywa (lub wstrzykuje) Twój kod podstawowy Meta Pixel i wysyła sygnał potwierdzający, że jest gotowy do odbierania zdarzeń.
- Zdarzenia są przesyłane -- Podczas gdy kupujący postępują przez kasę,
każde zdarzenie analityczne jest wysyłane poprzez
postMessagedo Twojej strony, gdzie skrypt relay przesyła je dofbqz odpowiednim trybemtrack/trackCustom.
Wszystkie wiadomości są walidowane względem zaufanych pochodzeń Zonos
(zonos.com i iglobalstores.com) wyłącznie przez HTTPS.
Warunki wstępne
- Meta Pixel z identyfikatorem Pixel (ciąg numeryczny, zazwyczaj 15-16 cyfr). Możesz go utworzyć w Meta Events Manager.
- Starsza integracja Checkout, która ładuje Zonos Checkout w iframe na Twojej stronie.
- Facebook Pixel włączony w ustawieniach Zonos Checkout (w pulpicie Zonos, w sekcji Ustawienia Checkout → Śledzenie).
Konfiguracja
Krok 1: Dodaj kod podstawowy Meta Pixel do swojej strony
Jeśli nie masz jeszcze Meta Pixel zainstalowanego na witrynie, dodaj standardowy
kod podstawowy Pixel do <head> strony, na której hostowany jest iframe Checkout.
Zamień YOUR_PIXEL_ID na swój własny numeryczny identyfikator Pixel.
<!-- Meta Pixel Code --> <script> !(function (f, b, e, v, n, t, s) { if (f.fbq) return; n = f.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments); }; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s); })( window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js', ); fbq('init', 'YOUR_PIXEL_ID'); fbq('track', 'PageView');</script>Uwaga: Jeśli Twoja witryna ma już zainstalowany Meta Pixel (np. poprzez Google Tag Manager, natywną integrację Shopify lub bezpośredni fragment), możesz pominąć ten krok. Skrypt relay będzie używać Twojej istniejącej funkcji
fbq.
Możesz znaleźć ten fragment w Meta Events Manager w sekcji Pixel Ustawienia -> Kontynuuj konfigurację Pixel -> Zainstaluj kod ręcznie.
Krok 2: Przekaż swój identyfikator Pixel do Zonos Checkout
Poinformuj Zonos Checkout, który identyfikator Pixel ma być używany, ustawiając
window.Zonos.facebookPixelId wewnątrz customHTML Twojej Kasy. Pulpit Zonos
uwidacznia edytor customHTML w ustawieniach Checkout -- dodaj tag <script>
w taki sposób:
<script> window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';</script>Ta wartość jest wysyłana do strony nadrzędnej podczas uzgodnienia relay. Jeśli
Twoja strona nadrzędna nie ma już załadowanego fbq, skrypt relay wstrzyknie
kod podstawowy Meta Pixel za Ciebie, używając tego identyfikatora.
Krok 3: Dodaj skrypt relay analityki Zonos
Dodaj poniższy tag skryptu do tej samej strony, na której ładujesz iframe Checkout, po kodzie podstawowym Meta Pixel. To jest ten sam skrypt używany do Google Analytics 4 -- jeden relay obsługuje obie dostawcy, więc jeśli już go dodałeś dla GA4, pomiń ten krok.
<script async src="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js"></script>Kompletny przykład
Oto jak wygląda pełna konfiguracja w sekcji <head> Twojej strony:
<head> <!-- ... Twoje istniejące tagi head ... --> <!-- Meta Pixel Code --> <script> !(function (f, b, e, v, n, t, s) { if (f.fbq) return; n = f.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments); }; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s); })( window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js', ); fbq('init', 'YOUR_PIXEL_ID'); fbq('track', 'PageView'); </script> <!-- Zonos analytics relay dla iframe checkout --> <script async src="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js" ></script></head>To wszystko. Gdy oba skrypty są na Twojej stronie, Facebook Pixel jest włączony
w pulpicie Zonos, a customHTML ustawia identyfikator Pixel, relay automatycznie
przekazuje wszystkie zdarzenia funnel kasy do Meta.
Referencja zdarzeń Meta Pixel
Dla każdego kroku w ścieżce Zonos Checkout uruchamia zarówno zdarzenie
niestandardowe (abyś mógł budować precyzyjne odbiorców), jak i pasujące
zdarzenie standardowe Meta (aby pojawiło się w optymalizacji i raportowaniu
konwersji Meta). Wszystkie zdarzenia zawierają flagę isTestMode i
checkoutSessionId.
| Wyzwalacz↕ | Zdarzenie niestandardowe (fbq('trackCustom', ...))↕ | Zdarzenie standardowe (fbq('track', ...))↕ | Dodatkowe metadane↕ |
|---|---|---|---|
| Kasa się otwiera | zonos-checkout-start | InitiateCheckout | -- |
| Kupujący wpisuje dane klienta | zonos-checkout-customer-info | none | -- |
| Kupujący wybiera metodę wysyłki | zonos-checkout-shipping-info | none | serviceLevelId |
| Kupujący wpisuje dane płatności | zonos-checkout-payment-info | AddPaymentInfo | paymentMethod |
| Próba płatności nie powiedzie się | zonos-checkout-payment-fail | none | -- |
| Zamówienie zostało ukończone | zonos-checkout-success | none | order_id, currency, value, contents, content_ids |
| Zamówienie zostało ukończone (e-commerce) | purchase | Purchase | order_id, currency, value, contents, content_ids |
| Kupujący zamyka kasę | zonos-checkout-close | none | -- |
Kroki bez odpowiednika w standardowych zdarzeniach Meta (np. informacje o kliencie, informacje o wysyłce) uruchamiają tylko zdarzenie niestandardowe
zonos-checkout-.... Możesz je kierować w Meta Ads Manager poprzez niestandardowe odbiorców używając "Event =zonos-checkout-customer-info", itd.
Metadane zdarzenia Purchase
Zdarzenie standardowe Purchase jest zgodne ze
schematem zdarzenia Meta Pixel Purchase.
Elementy koszyka są mapowane z tablicy stylu GA items do tablicy Meta
contents:
| Pole↕ | Opis↕ |
|---|---|
value | Całkowita wartość zamówienia |
currency | Trzyliterowy kod waluty (np. USD) |
order_id | Identyfikator zamówienia Zonos lub identyfikator sesji kasy |
contents | Tablica elementów koszyka, każdy z id, quantity i item_price |
content_ids | Tablica identyfikatorów elementów (SKU, ID produktu lub fallback) |
content_type | Zawsze "product" |
num_items | Całkowita ilość na wszystkich elementach |
Debugowanie
Aby włączyć dziennik debugowania dla skryptu relay, dodaj parametr zapytania
zonosDebug=1 do adresu URL Twojej strony:
https://www.yourstore.com/checkout?zonosDebug=1Otwórz konsolę programisty swojej przeglądarki, aby zobaczyć szczegółowe dzienniki uzgodnienia relay i przesyłanych zdarzeń. Jest to przydatne do weryfikacji:
- Czy skrypt relay otrzymuje ping z iframe kasy.
- Czy Meta Pixel jest skonfigurowany z prawidłowym identyfikatorem Pixel.
- Czy zdarzenia są przesyłane do
fbqz oczekiwanym trybemtrack/trackCustom.
Rozszerzenie Meta Pixel Helper Chrome jest również przydatne do inspekcji wywołań Pixel w czasie rzeczywistym.
Częste pytania
Dlaczego dla tego samego kroku uruchamiane są dwa zdarzenia (np. zonos-checkout-start i InitiateCheckout)?
Standardowe zdarzenia Meta zapewniają optymalizację konwersji, raportowanie reklam
i odbiorców typu lookalike z pudełka. Niestandardowe zdarzenia zonos-checkout-...
pozwalają Ci budować bardziej szczegółowe niestandardowe odbiorcy na dokładnym
kroku funnel, nawet gdy nie istnieje odpowiednik standardowego Meta (np. informacje
o kliencie, informacje o wysyłce). Uruchamianie obu daje Ci najlepsze z obu
światów bez utraty jakiegokolwiek sygnału.
Co jeśli uruchamiam zarówno Google Analytics, jak i Facebook Pixel?
Nie potrzebujesz dwóch skryptów relay -- ten sam analyticsRelayOnInit.js
obsługuje obie dostawców w jednym uzgodnieniu. Dodaj tag podstawowy GA4 i kod
podstawowy Meta Pixel do <head>, ustaw zarówno window.Zonos.googleAnalyticId
i window.Zonos.facebookPixelId w customHTML, i włącz obu dostawców w pulpicie
Zonos. Każde zdarzenie jest rozprowadzane do dostawców, którzy są włączeni.
Co jeśli moja strona nadrzędna nie ma zainstalowanego Meta Pixel?
Jeśli Twoje customHTML ustawia window.Zonos.facebookPixelId i skrypt relay
nie wykrywa fbq na stronie, wstrzyknie kod podstawowy Meta Pixel za Ciebie
podczas uzgodnienia, używając podanego identyfikatora Pixel. Możesz także
sam zainstalować kod podstawowy Meta Pixel, jeśli chcesz uruchamiać PageView
i inne zdarzenia poza ścieżką kasy.
Czy zdarzenia testowe są śledzone?
Wszystkie zdarzenia zawierają pole isTestMode. Gdy Checkout jest w trybie
testowym, zdarzenia są nadal przesyłane do Meta, ale oznaczone jako
isTestMode: true. Możesz je filtrować w Meta Ads Manager lub wykluczać za
pomocą niestandardowych reguł konwersji.
Czy Conversions API (CAPI) zastępuje to?
Nie -- to jest integracja Pixel po stronie przeglądarki, która działa w przeglądarkach Twoich kupujących. Meta Conversions API to oddzielny kanał server-to-server, który niektórzy handlowcy używają obok Pixel dla nadmiarowości. Te dwa są uzupełniające się, a relay Zonos obsługuje tylko Pixel po stronie przeglądarki.
Facebook Pixel dla iframe Checkout
Śledź pełną ścieżkę kasy za pomocą Meta (Facebook) Pixel podczas korzystania z integracji Checkout opartej na iframe.
Sprzedawcy korzystający ze starszej integracji Checkout (iframe hostowany na
iglobalstores.com) mogą śledzić zdarzenia Meta Pixel na całej ścieżce kasy. Zonos Checkout automatycznie przekazuje zdarzenia analityczne z iframe do strony nadrzędnej, wykorzystując ten sam lekki skrypt relay, który jest używany do Google Analytics 4, więc zdarzenia pojawiają się w Meta Events Manager tak, jakby pochodziły z Twojej własnej witryny.Dla każdego kroku ścieżki emitowane są dwa zdarzenia:
zonos-checkout-...(poprzezfbq('trackCustom', ...)) dla celowych odbiorców na całej ścieżce.fbq('track', ...)) do wbudowanej optymalizacji, np.InitiateCheckout,AddPaymentInfoiPurchase.