工作原理
由于Zonos Checkout在不同来源的iframe内运行,它无法直接访问您页面的fbq函数。中继系统通过两步握手(步骤1-2)解决这个问题,然后进行事件转发(步骤3):
- Checkout向父级发送ping — 当checkout在iframe内加载时,它向父窗口发送消息,指示它已准备好中继事件,包括像素ID。
- 父级应答 — 您页面上的中继脚本接收ping,检测(或注入)您的Meta像素基本代码,并信号表示已准备好接收事件。
- 事件被转发 — 当购物者通过结账进行时,每个分析事件通过
postMessage发送到您的页面,其中中继脚本将其转发给fbq,使用适当的track/trackCustom模式。
所有消息都针对受信任的Zonos来源(zonos.com和iglobalstores.com)通过仅HTTPS进行验证。
设置
步骤1:将Meta像素基本代码添加到您的页面
如果您还没有在您的网站上安装Meta像素,请将标准像素基本代码添加到托管Checkout iframe的页面的<head>中。将YOUR_PIXEL_ID替换为您自己的数字像素ID。
<!-- 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像素(例如,通过Google标签管理器、Shopify的原生集成或直接代码片段),您可以跳过此步骤。中继脚本将使用您现有的
fbq函数。
您可以在Meta事件管理器中您的像素的设置 -> 继续像素设置 -> 手动安装代码下找到此代码片段。
步骤2:将您的像素ID传递给Zonos Checkout
通过在Checkout的customHTML内设置window.Zonos.facebookPixelId来告诉Zonos Checkout使用哪个像素ID。Zonos仪表板在Checkout设置下公开customHTML编辑器 — 添加一个这样的<script>标签:
<script> window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';</script>此值在中继握手期间发送到父级。如果您的父页面还没有加载fbq,中继脚本将使用您提供的此ID为您注入Meta像素基本代码。
步骤3:添加Zonos分析中继脚本
将以下脚本标签添加到加载Checkout iframe的同一页面,在Meta像素基本代码之后。这是与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>就这样。一旦您的页面上有两个脚本,您的Zonos仪表板中启用了Facebook像素,并且customHTML设置了像素ID,中继将自动将所有结账漏斗事件转发给Meta。
Meta像素事件参考
对于漏斗中的每一步,Zonos Checkout会触发一个自定义事件(以便您可以构建精确的受众)和匹配的Meta标准事件(以便它显示在Meta的优化和转换报告中)。所有事件都包括一个isTestMode标志和checkoutSessionId。
| 触发器↕ | 自定义事件 (fbq('trackCustom', ...))↕ | 标准事件 (fbq('track', ...))↕ | 其他元数据↕ |
|---|---|---|---|
| 打开结账 | 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 |
| 购物者关闭结账 | zonos-checkout-close | 无 | -- |
没有Meta标准等效项的步骤(例如客户信息、运送信息)仅触发自定义
zonos-checkout-...事件。您可以通过在Meta广告管理器中使用"Event =zonos-checkout-customer-info"等方式在自定义受众中定位这些步骤。
Purchase事件元数据
Purchase标准事件遵循Meta像素Purchase事件架构。购物车项目从GA样式的items数组映射到Meta的contents数组:
| 字段↕ | 描述↕ |
|---|---|
value | 总订单值 |
currency | 三字母货币代码(例如,USD) |
order_id | Zonos订单ID或结账会话ID |
contents | 购物车项目数组,每个项目具有id、quantity和item_price |
content_ids | 项目ID数组(SKU、产品ID或产品名称回退) |
content_type | 始终为"product" |
num_items | 所有项目中的总数量 |
常见问题
为什么会为同一步骤触发两个事件(例如zonos-checkout-start和InitiateCheckout)?
Meta的标准事件可以立即进行转换优化、广告报告和相似受众。自定义zonos-checkout-...事件让您构建更精细的自定义受众,针对确切的漏斗步骤,即使没有Meta标准等效项(例如客户信息、运送信息)。同时触发两个事件可以让您获得两个世界中最好的,而不会失去任何信号。
如果我同时运行Google Analytics和Facebook Pixel怎么办?
您不需要两个中继脚本 — 同一个analyticsRelayOnInit.js在单个握手中处理两个提供商。将GA4基本标签和Meta像素基本代码添加到您的<head>中,在customHTML中同时设置window.Zonos.googleAnalyticId和window.Zonos.facebookPixelId,并在您的Zonos仪表板中启用两个提供商。每个事件都会发送给启用的任何提供商。
如果我的父页面没有安装Meta像素怎么办?
如果您的customHTML设置了window.Zonos.facebookPixelId,并且中继脚本在页面上检测不到fbq,它将使用您提供的像素ID在握手期间为您注入Meta像素基本代码。您也可以自己预安装Meta像素基本代码,如果您想在结账漏斗之外触发PageView和其他事件。
是否跟踪测试订单?
所有事件都包括一个isTestMode字段。当Checkout处于测试模式时,事件仍会中继到Meta,但标记为isTestMode: true。您可以在Meta广告管理器中过滤这些,或使用自定义转换规则排除它们。
Conversions API(CAPI)是否替代这个?
不——这是在您购物者浏览器中运行的浏览器端像素集成。Meta Conversions API是一个单独的服务器到服务器通道,一些商家在像素之外使用它来提高冗余性。两者是互补的,Zonos的中继仅处理浏览器端像素。
iframe结账的Facebook像素
使用基于iframe的旧版Checkout集成时,使用Meta(Facebook)像素跟踪整个结账漏斗。
使用旧版Checkout集成(在
iglobalstores.com上托管的iframe)的商家可以跟踪整个结账漏斗中的Meta像素事件。Zonos Checkout自动从iframe中继推送分析事件到父页面,使用与Google Analytics 4相同的轻量级中继脚本,因此事件在您的Meta事件管理器中显示为来自您自己网站的事件。对于每个漏斗步骤,会发送两个事件:
zonos-checkout-...的自定义事件(通过fbq('trackCustom', ...)),用于完整漏斗自定义受众。fbq('track', ...)),用于内置优化,例如InitiateCheckout、AddPaymentInfo和Purchase。