Ready2GEO ChatGPT广告

ChatGPT Ads pixel 与 Conversions API:搭建转化跟踪

最后更新:2026 年 8 月 24 日,依据 OpenAI 官方文档核对。本页引用的事件名和参数名来自 OpenAI 的开发者文档,在 beta 期间可能会变化。

没有转化测量,一个 ChatGPT Ads 广告系列就是盲的:你知道自己花了多少,却不知道换回了什么。更重要的是,你无法启用按转化优化。本页覆盖两种官方方法,浏览器端的 pixel 和服务端的 Conversions API,以及如何让它们共存。整体框架见我们的 ChatGPT Ads 指南。

2 分钟阅读
J Josh Ready2GEO SEO 与 GEO 专家

本页涉及的 AI 引擎

2 个官方测量来源:JavaScript pixel 与服务端 Conversions API

为什么测量是前提,而不是可选项

有三个理由,其中一个是硬性的:

  • 硬性理由:按转化优化(oCPC)要求跟踪已经配置好,通过 JavaScript pixel、Conversions API,或两者同时。没有信号,系统就没有可优化的东西。
  • Ads Manager 报表里有一列转化,如果什么都没接,它会一直是空的。
  • 你的获客成本计算完全依赖这份数据:没有它,你只能按 CPC 操盘,也就是按支出操盘,而不是按结果。

OpenAI 给出的总体原则很简单:你在 Ads Manager 里创建一个数据源(data source),然后通过 pixel、API,或两者一起,向它发送转化事件。

pixel 还是 Conversions API:该选哪个?

JavaScript pixelConversions 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_startedcontents
内容page_viewed、contents_viewedcontents
线索与注册lead_created、registration_completed、appointment_scheduledcustomer_action
订阅subscription_created、trial_startedplan_enrollment

对于 contents 类型的事件,文档中的字段包括 amountcurrency,以及一个 contents 数组,数组条目包含 idnamecontent_typequantityplan_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_sha256phone_number_sha256external_id_sha256first_name_sha256last_name_sha256,以及未哈希的 countrycityregionpostal_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-srchttps://bzrcdn.openai.com加载 SDK
connect-srchttps://bzr.openai.com 和 https://bzrcdn.openai.com发送与获取事件
img-srchttps://bzr.openai.com图片请求兜底

如果代码明明已经装好,pixel 却什么都不上报,请打开 debug 参数查看控制台:CSP 报错会立刻出现在那里。

pixel 做不到的事

有一条明确的限制,在设计打点方案之前就该知道:测量 pixel 不支持 app_installed 和 app_opened 事件。这两个事件必须通过 Conversions API 从服务端发送。

此外,OpenAI 记录了与测量合作伙伴的集成,包括面向移动测量合作伙伴(MMP)的集成,适用于转化发生在应用内的广告主。

另一个需要注意的点:在同一个站点上使用多个 Pixel ID 需要特殊配置,OpenAI 对此有单独的文档。

归因:什么被计入,以及怎么计

OpenAI 会依据为你的广告系列所配置的事件,以及适用的归因窗口,来评估转化事件。有两条规则要知道:

  • 点击后归因使用所配置的点击窗口。
  • 展示后转化(view-through)在一次符合条件的展示之后,使用固定的一天窗口,与你的点击窗口无关。

还有一条避免计算出错的读数规则:主要的转化列只包含点击后转化。展示后转化是一份独立的补充报表,按 OpenAI 的说法,它不应加进转化数据,也不应用于 CPA 等基础效果指标

上线前的联调检查清单

  1. 已在 Ads Manager 中创建数据源,并取得 Pixel ID。
  2. 脚本已加载到 head 中,并用正确的 Pixel ID 调用了初始化。
  3. 在欧洲站点上,同意逻辑已接在初始化之前
  4. 标准事件在正确的位置触发,且 type 字段正确。
  5. 如果同时用了 API,去重已就位:id 与 event_id 使用同一个值,Pixel ID 相同。
  6. CSP 已针对三条指令更新。
  7. 联调期间开启 debug 模式,之后关闭。
  8. 落地页对 OAI-AdsBot 可访问:页面被屏蔽可能导致广告被拒登,与打点质量无关。我们的 ChatGPT Ads 落地页检测工具会检查这一项。
  9. 如果你的目标是 oCPC,只保留一个启用中的标准事件作为优化目标,并且要知道它在广告系列创建后就不能再改。

常见问题

ChatGPT Ads 上必须做转化跟踪吗?
按 CPM 或 CPC 投放不是必须的,但按转化优化是必须的:oCPC 要求跟踪已经通过 JavaScript pixel、Conversions API 或两者配置好,并且有一个启用中的标准转化事件作为优化目标。
pixel 和 Conversions API 必须二选一吗?
不必,两者可以共存。OpenAI 把 Conversions API 描述为比单用 pixel 更可靠的来源,并建议在可行时使用它。如果你从两侧发送同一笔转化,就需要做去重。
怎样避免一笔转化被计两次?
在 API 侧的 id 和 pixel 侧的 event_id 上使用同一个值,两个事件用同一个 Pixel ID 发送,对自定义事件则在两侧使用同一个 custom_event_name。
自定义事件可以作为 oCPC 的优化目标吗?
不可以。文档说明自定义事件不能作为 oCPC 的优化目标。必须恰好有一个启用中的标准转化事件作为目标,而且它在广告系列创建后不能再修改。
pixel 会尊重用户的同意选择吗?
SDK 提供了一条同意命令。需要知道的一点是:同意的默认值为 true,除非被显式设为 false 或已记录过拒绝。因此在欧洲的站点上,必须在初始化之前显式用 false 调用该命令,取得同意之后再改为 true。
我的 pixel 什么都不上报,该先检查什么?
先查 Content Security Policy。SDK 需要在 script-src 放行 https://bzrcdn.openai.com,在 connect-src 放行 https://bzr.openai.com 和 https://bzrcdn.openai.com,在 img-src 放行 https://bzr.openai.com。在初始化时开启 debug 参数,即可在控制台看到错误。
怎样测量一次应用安装?
不能用 pixel:它不支持 app_installed 和 app_opened。这些事件必须通过 Conversions API 从服务端发送。OpenAI 也记录了与移动测量合作伙伴的集成。
归因窗口是多长?
点击后归因使用所配置的点击窗口。展示后转化在一次符合条件的展示之后使用固定的一天窗口,与点击窗口无关,并且与主要的转化列分开报告。
30 秒检测您的网站

SEO 评分、GEO 评分、性能与响应式设计:共检测 49 项指标,即时给出 AI Overview 就绪结论。

运行 SEO 与 GEO 检测

相关指南

ChatGPT Ads 完全指南:2026 年如何在 ChatGPT 上投放广告

ChatGPT Ads 如何运作、在哪些市场可用、怎样开通账户、如何搭建广告系列、用 context hints 做定向,以及预算如何估算:一份持续更新的参考指南。

阅读指南

ChatGPT Ads 价格:竞价机制、预算与一次投放的真实成本

一次 ChatGPT Ads 投放到底要花多少钱:三种竞价模型、OpenAI 建议的起始出价、每个广告系列的每日最低消耗,以及按付款阈值扣款的计费方式。

阅读指南

ChatGPT Ads 电商实操:用产品流跑广告系列

把商品目录接入 ChatGPT Ads:三种产品流上传方式、商品两周过期机制、is_ads_eligible 字段,以及付费广告与自然商品结果之间的根本区别。

阅读指南