Как это работает
Поскольку Zonos Checkout работает внутри iframe на другом источнике, он
не может получить прямой доступ к функции fbq вашей страницы. Система передачи решает эту проблему
с помощью двухэтапного квитирования (шаги 1-2), за которым следует передача события (шаг 3):
- Checkout отправляет сигнал родительской странице — Когда checkout загружается внутри iframe, он отправляет сообщение родительскому окну, указывая на то, что он готов передавать события, включая ID Pixel.
- Родительская страница подтверждает — Скрипт передачи на вашей странице получает сигнал, обнаруживает (или внедряет) ваш базовый код Meta Pixel и сигнализирует обратно, что он готов получать события.
- События передаются — По мере продвижения покупателей по этапам оформления заказа, каждое
событие аналитики отправляется через
postMessageна вашу страницу, где скрипт передачи пересылает его наfbqс соответствующим режимомtrack/trackCustom.
Все сообщения проверяются на соответствие доверенным источникам Zonos (zonos.com и
iglobalstores.com) только через HTTPS.
Предварительные требования
- Meta Pixel с ID Pixel (числовая строка, обычно 15-16 цифр). Вы можете создать его в Meta Events Manager.
- Интеграция legacy Checkout, которая загружает Zonos Checkout в iframe на вашей странице.
- Facebook Pixel включён в параметрах Zonos Checkout (в панели управления Zonos в разделе Checkout settings -> Tracking).
Настройка
Шаг 1: Добавьте базовый код Meta Pixel на вашу страницу
Если вы ещё не установили Meta Pixel на свой сайт, добавьте стандартный
базовый код Pixel в <head> страницы, которая размещает iframe Checkout.
Замените YOUR_PIXEL_ID на ваш собственный числовой ID 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>Примечание: Если на вашем сайте уже установлен Meta Pixel (например, через Google Tag Manager, встроенную интеграцию Shopify или прямой фрагмент кода), вы можете пропустить этот шаг. Скрипт передачи будет использовать вашу существующую функцию
fbq.
Вы можете найти этот фрагмент в вашем Meta Events Manager в разделе Settings -> Continue Pixel Setup -> Install code manually.
Шаг 2: Передайте ваш ID Pixel в Zonos Checkout
Сообщите Zonos Checkout, какой ID Pixel использовать, установив window.Zonos.facebookPixelId
внутри customHTML вашего Checkout. Панель управления Zonos предоставляет
редактор customHTML в параметрах Checkout — добавьте тег <script> примерно так:
<script> window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';</script>Это значение отправляется родительской странице во время квитирования передачи. Если на вашей родительской странице уже не загружен fbq, скрипт передачи внедрит базовый код Meta Pixel для вас, используя этот ID.
Шаг 3: Добавьте скрипт Zonos analytics relay
Добавьте следующий тег script на ту же страницу, которая загружает iframe Checkout, после базового кода Meta Pixel. Это тот же скрипт, который используется для Google Analytics 4 — один скрипт передачи обрабатывает обоих поставщиков, поэтому если вы уже добавили его для GA4, пропустите этот шаг.
<script async src="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js"></script>Полный пример
Вот как выглядит полная настройка в <head> вашей страницы:
<head> <!-- ... your existing head tags ... --> <!-- 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 for iframe checkout --> <script async src="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js" ></script></head>Вот и всё. Как только оба скрипта находятся на вашей странице, Facebook Pixel включён в
вашей панели управления Zonos, и customHTML устанавливает ID Pixel, скрипт передачи автоматически
пересылает все события воронки оформления заказа в Meta.
Справочник событий Meta Pixel
Для каждого этапа воронки Zonos Checkout отправляет как пользовательское событие (чтобы вы
могли создать точную аудиторию), так и соответствующее стандартное событие Meta (чтобы оно
отображалось в отчётах оптимизации и конверсии Meta). Все события включают
флаг isTestMode и checkoutSessionId.
| Триггер↕ | Пользовательское событие (fbq('trackCustom', ...))↕ | Стандартное событие (fbq('track', ...))↕ | Дополнительные метаданные↕ |
|---|---|---|---|
| Checkout открывается | zonos-checkout-start | InitiateCheckout | -- |
| Покупатель вводит информацию о клиенте | zonos-checkout-customer-info | нет | -- |
| Покупатель выбирает способ доставки | zonos-checkout-shipping-info | нет | serviceLevelId |
| Покупатель вводит данные платежа | zonos-checkout-payment-info | AddPaymentInfo | paymentMethod |
| Попытка платежа не удалась | zonos-checkout-payment-fail | нет | -- |
| Заказ успешно завершён | zonos-checkout-success | нет | order_id, currency, value, contents, content_ids |
| Заказ завершён (событие электронной коммерции) | purchase | Purchase | order_id, currency, value, contents, content_ids |
| Покупатель закрывает checkout | zonos-checkout-close | нет | -- |
Этапы без эквивалента стандартного события Meta (например, информация о клиенте, информация о доставке) отправляют только пользовательское событие
zonos-checkout-.... Вы можете нацеливаться на них в Meta Ads Manager с помощью пользовательских аудиторий, используя "Event =zonos-checkout-customer-info" и т.д.
Метаданные события Purchase
Стандартное событие Purchase соответствует
схеме события Meta Pixel Purchase.
Товары в корзине сопоставляются из массива в стиле GA items в массив Meta contents:
| Поле↕ | Описание↕ |
|---|---|
value | Общая стоимость заказа |
currency | Трёхбуквенный код валюты (например, USD) |
order_id | ID заказа Zonos или ID сеанса оформления заказа |
contents | Массив товаров в корзине, каждый с id, quantity и item_price |
content_ids | Массив ID товаров (SKU, ID продукта или fallback имени продукта) |
content_type | Всегда "product" |
num_items | Общее количество по всем товарам |
Отладка
Для включения отладочного логирования скрипта передачи добавьте параметр запроса zonosDebug=1 в URL вашей страницы:
https://www.yourstore.com/checkout?zonosDebug=1Откройте консоль разработчика вашего браузера, чтобы увидеть подробные логи квитирования передачи и переданных событий. Это полезно для проверки того, что:
- Скрипт передачи получает сигнал из iframe checkout.
- Meta Pixel настроен с правильным ID Pixel.
- События переданы на
fbqс ожидаемым режимомtrack/trackCustom.
Помощник Meta Pixel расширение Chrome также полезно для проверки вызовов Pixel в реальном времени.
Часто задаваемые вопросы
Почему два события отправляются для одного этапа (например, zonos-checkout-start и InitiateCheckout)?
Стандартные события Meta обеспечивают оптимизацию конверсии, отчёты по объявлениям и похожие
аудитории прямо из коробки. Пользовательские события zonos-checkout-... позволяют вам создавать
более точные пользовательские аудитории на точном этапе воронки, даже если нет стандартного
эквивалента Meta (например, информация о клиенте, информация о доставке). Отправка обоих
даёт вам лучшее из обоих миров, не теряя никакого сигнала.
Что, если я запущу Google Analytics и Facebook Pixel одновременно?
Вам не нужны два скрипта передачи — один analyticsRelayOnInit.js обрабатывает
обоих поставщиков в единственном квитировании. Добавьте оба базовых тега на вашу страницу, установите
оба window.Zonos.googleAnalyticId и window.Zonos.facebookPixelId в customHTML и включите
обоих поставщиков в вашей панели управления Zonos. Каждое событие распределяется на тех поставщиков, которые
включены.
Что, если на моей родительской странице не установлен Meta Pixel?
Если ваш customHTML устанавливает window.Zonos.facebookPixelId и скрипт передачи
обнаруживает отсутствие fbq на странице, он внедрит базовый код Meta Pixel для вас
во время квитирования, используя предоставленный вами ID Pixel. Вы также можете предварительно установить
базовый код Meta Pixel самостоятельно, если хотите отправлять PageView и другие
события вне воронки оформления заказа.
Отслеживаются ли тестовые заказы?
Все события включают поле isTestMode. Когда Checkout находится в режиме тестирования, события
всё ещё передаются в Meta, но помечены с isTestMode: true. Вы можете отфильтровать
их в Meta Ads Manager или исключить с помощью пользовательских правил конверсии.
Заменяет ли Conversions API (CAPI) это?
Нет — это интеграция Pixel на стороне браузера, которая работает в браузерах ваших покупателей. Meta Conversions API — это отдельный канал сервер-к-серверу, который некоторые торговцы используют наряду с Pixel для избыточности. Эти два дополняют друг друга, а реле Zonos обрабатывает только браузерный Pixel.
Facebook Pixel для iframe Checkout
Отслеживайте всю воронку оформления заказа с помощью Meta (Facebook) Pixel при использовании интеграции iframe-based legacy Checkout.
Торговцы, использующие интеграцию legacy Checkout (iframe, размещённый на
iglobalstores.com), могут отслеживать события Meta Pixel по всей воронке оформления заказа. Zonos Checkout автоматически передаёт события аналитики из iframe на родительскую страницу, используя тот же лёгкий скрипт передачи, который используется для Google Analytics 4, поэтому события появляются в вашем Meta Events Manager так, как будто они исходят от вашего собственного сайта.Для каждого этапа воронки отправляются два события:
zonos-checkout-...(черезfbq('trackCustom', ...)) для создания полной воронки пользовательской аудитории.fbq('track', ...)) для встроенной оптимизации, напримерInitiateCheckout,AddPaymentInfoиPurchase.