ChatGPT Ads pixel 与 Conversions API:搭建转化跟踪
最后更新:2026 年 8 月 24 日,依据 OpenAI 官方文档核对。本页引用的事件名和参数名来自 OpenAI 的开发者文档,在 beta 期间可能会变化。
没有转化测量,一个 ChatGPT Ads 广告系列就是盲的:你知道自己花了多少,却不知道换回了什么。更重要的是,你无法启用按转化优化。本页覆盖两种官方方法,浏览器端的 pixel 和服务端的 Conversions API,以及如何让它们共存。整体框架见我们的 ChatGPT Ads 指南。
本页涉及的 AI 引擎
- ChatGPT
为什么测量是前提,而不是可选项
有三个理由,其中一个是硬性的:
- 硬性理由:按转化优化(oCPC)要求跟踪已经配置好,通过 JavaScript pixel、Conversions API,或两者同时。没有信号,系统就没有可优化的东西。
- Ads Manager 报表里有一列转化,如果什么都没接,它会一直是空的。
- 你的获客成本计算完全依赖这份数据:没有它,你只能按 CPC 操盘,也就是按支出操盘,而不是按结果。
OpenAI 给出的总体原则很简单:你在 Ads Manager 里创建一个数据源(data source),然后通过 pixel、API,或两者一起,向它发送转化事件。
pixel 还是 Conversions API:该选哪个?
| JavaScript pixel | Conversions API | |
|---|---|---|
| 运行位置 | 访客的浏览器中 | 仅在你的服务器上 |
| 接入方式 | 在 head 里放一段脚本 | 后端开发 |
| 稳健性 | 易受拦截插件和浏览器限制影响 | OpenAI 将其描述为比单用 pixel 更可靠的来源 |
| OpenAI 的建议 | 起点 | 在可行时使用,以获得更准确的数据 |
务实的答案不是“二选一”,而是“两个都用,并做去重”。pixel 一小时就能装好,立刻让广告系列跑起来;API 随后接入,长期保证测量的可靠性。
安装测量 pixel
ChatGPT Ads 测量 pixel 是一个浏览器 SDK,用于测量你网站上可归因于 ChatGPT 内广告的事件。脚本从 https://bzrcdn.openai.com/sdk/oaiq.min.js 异步加载,需放在 <head> 区块中,然后用你的 Pixel ID 初始化:
oaiq("init", { pixelId: "YOUR-PIXEL-ID" });
pixelId 参数是必填的,在 Ads Manager 里创建。可选的 debug 参数会把 SDK 的活动写入浏览器控制台,在联调阶段很有用。
此后所有测量都通过同一条命令进行:oaiq("measure", eventName, eventData, options)。
标准事件、自定义事件及其约束
每个标准事件都期待一个数据对象,其中的 type 字段必须对得上。OpenAI 的开发者文档把它们这样分组:
| 类别 | 事件 | 期待的 type 字段 |
|---|---|---|
| 电商 | order_created、items_added、checkout_started | contents |
| 内容 | page_viewed、contents_viewed | contents |
| 线索与注册 | lead_created、registration_completed、appointment_scheduled | customer_action |
| 订阅 | subscription_created、trial_started | plan_enrollment |
对于 contents 类型的事件,文档中的字段包括 amount、currency,以及一个 contents 数组,数组条目包含 id、name、content_type 和 quantity。plan_enrollment 类型的事件则期待一个 plan_id。文档说明 amount 和 quantity 要使用整数值。
当没有合适的标准事件时,可以用第三个参数加一个选项对象来声明自定义事件:
oaiq("measure", "custom", { type: "custom" }, { custom_event_name: "quote_requested" })
自定义事件名必须遵守明确的规则:1 到 64 个字符,只能使用字母、数字、下划线和连字符,并且以字母或数字开头和结尾。
注意一条结构性限制:自定义事件不能作为 oCPC 的优化目标。如果你的业务转化需要驱动优化,就必须把它作为标准事件上报。
接入服务端 Conversions API
这个 API 只能从你的服务器调用。文档中的实施要点:
- 通过
POST /conversions/pixels端点创建一个网站转化来源及其 Pixel ID。 - 生成一把密钥,用于代表当前广告账户从服务端发送事件。
- 这把密钥必须存放在服务端的密钥管理器中。文档态度明确:绝不要把它放进浏览器端代码、客户端可见的环境变量、日志或代码仓库里。
- 该 API 接受最多 1000 个事件的批次。对你的错误处理来说这一点很关键:批次中只要有一个事件失败,整批都会失败。
最后这条规则在设计阶段就该处理:一份订单上某个字段格式不对,导致整批被拒,就可能让 999 条有效转化从你的报表里消失。
pixel 与 API 去重:不能漏掉的规则
如果你同时从 pixel 和 Conversions API 发送同一笔转化,就必须告诉系统,否则它会被计两次。文档给出的方法是:
- 在 API 侧的 id 和 pixel 侧的 event_id 上使用同一个值。
- 两个事件使用同一个 Pixel ID 发送。
- 对自定义事件,两侧使用同一个 custom_event_name。
在 pixel 侧,写法类似:oaiq("measure", "order_created", {...}, { event_id: "order_12345" })。匹配依据是 Pixel ID、事件名和 event_id;对自定义事件,custom_event_name 在这套逻辑中取代事件名。
实践建议:用你的订单号或线索编号作为去重键,那是唯一在两侧都天然可得的值。
自动高级匹配
自动高级匹配(AAM)用于在没有点击标识可用时,把转化关联到你的广告上。pixel 会自动从表单及站内其他来源中识别可辨认的客户信息,将其标准化,并直接在浏览器中做 SHA-256 哈希。文档明确说明不会传输任何原始数据。
你也可以在初始化时,自行在 user 对象里提供已哈希的标识:email_sha256、phone_number_sha256、external_id_sha256、first_name_sha256、last_name_sha256,以及未哈希的 country、city、region 和 postal_code 字段。
这项功能涉及个人数据:是否启用,应当与你的数据保护负责人共同判断,在欧洲尤其如此。
同意管理、GDPR 与 pixel 的开关控制
SDK 提供了一条同意命令,应当在初始化之前调用,以便在用户同意之前阻断测量:
oaiq("consent", false);,然后 oaiq("init", { pixelId: "..." });,在取得同意后再调用 oaiq("consent", true);。
有两点要记住。第一,同意的默认值为 true,除非被显式设为 false 或已记录过拒绝:因此在欧洲的站点上,必须在前面显式调用 oaiq("consent", false),而不能依赖默认行为。第二,当该值为 false 时,测量事件不会被发送。
此外,opt_out 参数可以让某个事件不参与用户级别的个性化,其默认值为 false。SDK 还处理一个注重隐私的标识 oppref,它从 URL 中捕获,并存储在 __oppref cookie 中。
背景提醒:个性化广告在上线阶段于欧洲经济区和瑞士不可用。这并不免除你为测量本身处理用户同意的义务。
Content Security Policy:需要放行的域名
在启用了严格 CSP 的站点上,最常见的静默故障就是:SDK 还没来得及初始化就被拦下了。文档中的指令如下:
| 指令 | 需放行的来源 | 作用 |
|---|---|---|
| script-src | https://bzrcdn.openai.com | 加载 SDK |
| connect-src | https://bzr.openai.com 和 https://bzrcdn.openai.com | 发送与获取事件 |
| img-src | https://bzr.openai.com | 图片请求兜底 |
如果代码明明已经装好,pixel 却什么都不上报,请打开 debug 参数查看控制台:CSP 报错会立刻出现在那里。
pixel 做不到的事
有一条明确的限制,在设计打点方案之前就该知道:测量 pixel 不支持 app_installed 和 app_opened 事件。这两个事件必须通过 Conversions API 从服务端发送。
此外,OpenAI 记录了与测量合作伙伴的集成,包括面向移动测量合作伙伴(MMP)的集成,适用于转化发生在应用内的广告主。
另一个需要注意的点:在同一个站点上使用多个 Pixel ID 需要特殊配置,OpenAI 对此有单独的文档。
归因:什么被计入,以及怎么计
OpenAI 会依据为你的广告系列所配置的事件,以及适用的归因窗口,来评估转化事件。有两条规则要知道:
- 点击后归因使用所配置的点击窗口。
- 展示后转化(view-through)在一次符合条件的展示之后,使用固定的一天窗口,与你的点击窗口无关。
还有一条避免计算出错的读数规则:主要的转化列只包含点击后转化。展示后转化是一份独立的补充报表,按 OpenAI 的说法,它不应加进转化数据,也不应用于 CPA 等基础效果指标。
上线前的联调检查清单
- 已在 Ads Manager 中创建数据源,并取得 Pixel ID。
- 脚本已加载到 head 中,并用正确的 Pixel ID 调用了初始化。
- 在欧洲站点上,同意逻辑已接在初始化之前。
- 标准事件在正确的位置触发,且 type 字段正确。
- 如果同时用了 API,去重已就位:id 与 event_id 使用同一个值,Pixel ID 相同。
- CSP 已针对三条指令更新。
- 联调期间开启 debug 模式,之后关闭。
- 落地页对 OAI-AdsBot 可访问:页面被屏蔽可能导致广告被拒登,与打点质量无关。我们的 ChatGPT Ads 落地页检测工具会检查这一项。
- 如果你的目标是 oCPC,只保留一个启用中的标准事件作为优化目标,并且要知道它在广告系列创建后就不能再改。
常见问题
ChatGPT Ads 上必须做转化跟踪吗?
pixel 和 Conversions API 必须二选一吗?
怎样避免一笔转化被计两次?
自定义事件可以作为 oCPC 的优化目标吗?
pixel 会尊重用户的同意选择吗?
我的 pixel 什么都不上报,该先检查什么?
怎样测量一次应用安装?
归因窗口是多长?
SEO 评分、GEO 评分、性能与响应式设计:共检测 49 项指标,即时给出 AI Overview 就绪结论。
相关指南
ChatGPT Ads 完全指南:2026 年如何在 ChatGPT 上投放广告
ChatGPT Ads 如何运作、在哪些市场可用、怎样开通账户、如何搭建广告系列、用 context hints 做定向,以及预算如何估算:一份持续更新的参考指南。
阅读指南ChatGPT Ads 价格:竞价机制、预算与一次投放的真实成本
一次 ChatGPT Ads 投放到底要花多少钱:三种竞价模型、OpenAI 建议的起始出价、每个广告系列的每日最低消耗,以及按付款阈值扣款的计费方式。
阅读指南ChatGPT Ads 电商实操:用产品流跑广告系列
把商品目录接入 ChatGPT Ads:三种产品流上传方式、商品两周过期机制、is_ads_eligible 字段,以及付费广告与自然商品结果之间的根本区别。
阅读指南