cPixel 如何做到每笔购买只计一次
cPixel 如何防止一笔购买被计算两次?
cPixel 会向每个已连接的账户各发送一次 Shopify 购买事件,使用一个由您的店铺和结账信息构建的事件 ID,并在其服务器端发送处于活动状态时关闭 Meta 的浏览器端 Purchase。其他事件来自浏览器或服务器,或者两者共用一个事件 ID。剩下的重复通常来自另一个应用或代码。
这个 ID 是您店铺 myshopify.com 地址与结账令牌的哈希值,而不是订单 ID,因此买家的浏览器和 cPixel 的服务器会各自独立地得出相同的值。您在某个平台上连接的每个账户都会获得这个 ID,cPixel 也不会重复连接同一个像素。大多数其他事件携带的是 Shopify 自身的事件 ID。当您开启了结账流程之外的订单跟踪时,这些订单会获得来自订单本身的 ID;仅发送给 GA4 的退款事件则拥有自己的 ID。
每个平台按哪个 ID 去重?
每个平台都有各自的键:Meta、TikTok、OpenAI Ads、Pinterest 和 Snapchat 使用事件 ID,GA4 和 Google Ads 使用事务 ID。cPixel 会向每个平台各发送一次事件,或者在该平台匹配的键下发送两次。
| 平台 | 按什么去重 | 时间窗口 | cPixel 发送的内容 |
|---|---|---|---|
| Meta | 事件名称和事件 ID,同一像素;通常保留最先收到的 | 48 小时 | 浏览和结账事件来自双方,共用一个 ID;Purchase 仅来自服务器 |
| TikTok | 事件和事件 ID;保留最先收到的 | 48 小时 | 全部来自服务器,除了 Pageview,双方会在同一个 ID 下发送 |
| GA4 | 事务 ID,仅限 Web 数据流 | 未说明 | 购买事件来自服务器,以订单 ID 作为事务 ID;其余来自浏览器 |
| OpenAI Ads | Pixel ID、事件名称和 id;最先收到的为准 |
未说明 | 结账和购买事件来自服务器;其余来自浏览器代码 |
| 事件名称和事件 ID;保留最先捕获的 | 48 小时 | 结账和购买事件来自服务器;其余来自浏览器代码 | |
| Snapchat | 其去重 ID;购买事件也按订单 ID | 48 小时;按订单 ID 为 30 天 | 结账、付款信息和购买事件来自服务器;其余来自浏览器代码 |
| Google Ads | 事务 ID,限同一个转化操作内 | 未说明 | 购买事件来自感谢页上的浏览器代码,携带订单 ID |
来源,核查于 2026 年 9 月 24 日:Meta、TikTok、GA4、OpenAI、Pinterest、Snap、Google Ads。
在实时中,一次已完成的服务器端发送的详情会注明其键,例如“通过事件 ID 去重”:这是该平台用于匹配副本的键,而不是证明它确实合并了一对重复事件。
为什么 Meta 只从服务器接收购买事件?
因为 Meta 是唯一一个 cPixel 有能力从双方同时发送购买事件的平台,而同一份数据不能被计算两次。服务器端副本由 Shopify 订单构建而成,不依赖买家的浏览器,并且携带更多 Meta 用来匹配客户的信息。
Meta 的浏览器端 Purchase 只会在 cPixel 向该像素的服务器端发送未处于活动状态时触发:该账户没有访问令牌、Meta 拒绝了该令牌、从我们的服务器发送事件已关闭,或者 Free 套餐已暂停服务器端发送。无论哪种情况,Meta 都只会收到一次 Purchase。
在实时中,Meta 出现在该购买事件的服务器行,而不是浏览器行。在 Meta Events Manager 中,Purchase 通过 Conversions API 到达,而其他事件由于双方都会发送,因此显示为“Multiple”。
哪些情况仍会重复计数?
另一个正在向同一像素发送数据的工具,以及在平台的时间窗口关闭之后进行的重新发送。cPixel 无法对另一个应用的事件去重:每个应用都会创建自己的事件 ID,因此平台会看到两笔购买。
常见的第二发送方包括某平台自己的 Shopify 应用(如 Facebook & Instagram 或 Google & YouTube)、另一个跟踪应用或自定义像素,以及粘贴在您主题中的像素代码。用 cPixel 自己通知中的话说,重复通常表现为“页面浏览量翻倍,而订单收入看起来仍然正确”,因此除了购买事件,也要检查页面浏览量。解决方法是每个像素只保留一个发送方:将 cPixel 与 Facebook and Instagram 应用配合使用。
我该如何找到第二个发送方?
先从 cPixel 的目的地页面入手,再到对应平台中确认。cPixel 每天会读取一次您的店铺前台,查找写入主题的代码和在 Shopify 中注册的像素,并在另一个应用也为 cPixel 发送的某个平台设置了跟踪下列出任何重叠项。
- 在 cPixel 中打开目的地,阅读每条检测结果下的该怎么处理。
- 在 Shopify 中前往 Settings → Customer events,记录每一个可能向同一平台发送数据的应用像素和自定义像素。
- 在 cPixel 中打开实时,点击开始会话,下一笔真实订单,查看 cPixel 把它发送给了哪些账户。
- 在该平台中检查这笔订单是否只生成了一笔购买。在 Meta Events Manager 中,如果一笔 Purchase 既通过浏览器又通过 Conversions API 到达,说明存在第二个发送方,因为当 cPixel 向该像素的服务器端发送处于活动状态时,其浏览器端 Purchase 是关闭的。
该扫描报告的是已配置的内容,而不是实际发生的事情,也无法读取受密码保护的店铺,因此没有出现提示并不能排除存在第二个发送方。关于主题代码、标签管理器和 Meta 的事件设置工具,请参阅为什么 Meta 会把 Shopify 购买计算两次。
重新发送一笔购买时会发生什么?
它会保留原始的事件 ID,因此仍记得第一份副本的平台只会保留一份。发送失败后的重试、Free 套餐暂停期间被搁置订单的重放、每晚对未收到 Webhook 的订单的修复,以及实时中的重新发送事件,都会重复使用这个 ID。
平台的时间窗口是限制所在。Meta 在 48 小时内去重,因此一旦订单超过这个时长,cPixel 对被搁置订单的重放就会跳过 Meta,而每晚的修复也只覆盖昨天的订单,处于 Meta 和 TikTok 的窗口之内。
重新发送事件在付费套餐上可用,会以原始 ID 向每个已连接账户重新发送一笔购买。请把它用于确实未到达的购买,而不是用来凑数:超过 48 小时后重新发送,在 Meta 上可能会被计算两次。
