🧭 OpenAI Ads GTM 新手配置教程
从创建容器到发布 Page View、订单和自定义事件,按步骤照着做即可完成。
一个容器,三个 Tag,三个触发条件
GTM Container ID 和 OpenAI Ads Pixel ID 都必须使用你自己账号中的值。本教程不会预填测试账号 ID,避免复制错环境。
1创建容器安装 GTM
2导入模板选择 OpenAI Tag
3配置事件Page / Order / Custom
4预览发布事件流验收
先输入你自己的配置
下面两个值只在当前页面中用于生成示例,不会发送到服务器。填写后,后续代码和截图式示意图会自动更新。
⚠️不要复制别人的 Container ID 或 Pixel ID。每个客户、网站和环境都应该使用归属于自己的配置。
第 1 步:准备账号和 ID
先把下面的信息放在手边,配置时不会来回找。
- 打开 https://tagmanager.google.com/,能登录并有容器发布权限
- 已经在 OpenAI Ads Pixel 页面创建 Web Pixel
- 已把自己的 Container ID 和 Pixel ID 填到页面顶部
- 知道网站中哪个真实动作代表 Page View、下单和自定义行为
Container ID 在 GTM 哪里?
Google 跟踪代码管理器GTM-XXXXXXX
方法一:进入容器后看页面顶部
账号你的公司或客户账号
容器你的正式网站
页面顶部蓝色 IDGTM-XXXXXXX
方法二:所有账号列表
| 名称 | 类型 | 容器 ID |
|---|---|---|
| 你的正式网站 | 网站 | GTM-XXXXXXX |
1复制以
GTM- 开头的值。它不是账号 ID、网站名称,也不是 Pixel ID。Pixel 在哪里创建并获取 Pixel ID?
Pixel+ 创建 Pixel
为广告账户配置站点数据源,用于转化事件与 CAPI 上报归因。
创建 Pixel
归属账户选择实际广告账户
Pixel 名称例如:官网 Pixel
Client TypeWeb
关闭提交
创建成功后,在名称下方复制 ID
官网 PixelYOUR_PIXEL_ID
操作查看代码
2直接打开上方地址,点击创建 Pixel。提交成功后,列表中 Pixel 名称下方的一串字符就是 Pixel ID。
⚠️测试时可以把按钮点击映射成
order_created;正式上线必须绑定真实下单成功动作,不能绑定“查看商品”或普通按钮。第 2 步:创建并安装 GTM 容器
- 打开 Google Tag Manager 官网,点击创建账号。
- 填写账号名称、国家/地区和容器名称。
- 目标平台选择 网页,创建后接受服务条款。
- 创建完成后,在页面顶部复制你自己的
GTM-XXXXXXX。 - 复制 GTM 提供的两段安装代码,添加到网站每个页面。
Google 跟踪代码管理器创建账号
创建容器时这样填写
账号名称你的公司或客户名称
国家/地区选择实际地区
容器名称你的正式网站域名
目标平台网页
1创建后,页面顶部会显示你的 Container ID:GTM-XXXXXXX。把它复制到本教程顶部输入框。
第一段:放在 <head> 内尽可能靠前
HTML · 自动使用你输入的 Container ID
第二段:紧跟起始 <body> 标记之后
HTML · 自动使用你输入的 Container ID
ℹ️Google Sites 的 HTML 嵌入会运行在多层 iframe 中。Tag Assistant 顶层显示 0 个标签,不等于嵌入页里的 GTM 没有执行;最终应以实际网络请求和 OpenAI 事件流为准。
第 3 步:添加 OpenAI Ads Tag 模板
- 在 GTM 左侧打开 模板。
- 在“代码模板”区域点击搜索模板库。
- 搜索
OpenAI Ads Measurement Pixel。 - 确认发布者为 openai,点击添加到工作区并确认权限。
代码模板搜索模板库
搜索社区模板库
搜索OpenAI Ads Measurement Pixel
模板OpenAI Ads Measurement Pixel
发布者:openai · Web
发布者:openai · Web
2先核对模板名称和发布者,再点击添加到工作区。
| 检查项 | 正确状态 |
|---|---|
| 模板名称 | OpenAI Ads Measurement Pixel |
| 发布者 | openai |
| 容器类型 | Web |
⛔不要随便选择名称相近的第三方模板。模板可以执行网络请求,应确认来源和权限。
第 4 步:创建 Event ID 变量
进入 变量 → 新建 → 自定义 JavaScript,变量命名为 JS - OpenAI Click Event ID。
GTM 自定义 JavaScript
function() {
return 'oai_' + new Date().getTime().toString(36)
+ '_' + Math.random().toString(36).slice(2, 10);
}✅Event ID 是可选的事件去重标识。教程中的随机变量适合纯 Pixel 点击演示;订单等关键事件应优先使用稳定且唯一的业务 ID。
⚠️生产环境 Pixel + CAPI 双发:Event ID 必须由业务事件生成一次,并同时传给 GTM 和后端 CAPI;前端和后端各自随机生成,无法去重。
生产双发建议
dataLayer 示例
window.dataLayer.push({
event: 'purchase_success',
openai_event_id: order.id,
amount: order.amountMinor,
currency: order.currency
});
// 后端 CAPI 请求同时使用同一个 order.id 作为 event_id第 5 步:配置 page_viewed
- 进入 代码 → 新建,命名
OpenAI Ads - Page Viewed。 - 代码类型选择 OpenAI Ads Measurement Pixel。
- 填写 Pixel ID,保持“发送事件”勾选。
- Event name 选择 Page viewed。
- 触发器选择 All Pages,保存。
📘需要继续学习各事件支持哪些参数、参数含义和填写方式,请打开 OpenAI Ads 回传接入指南首页:在步骤四选择事件后,进入步骤五查看完整参数。
OpenAI Ads - Page Viewed保存
代码配置
代码类型OpenAI Ads Measurement Pixel
Pixel IDYOUR_PIXEL_ID
发送事件☑ 已勾选
Event namePage viewed
Event ID{{DLV - page view event id}}(若配置)
触发条件All Pages
3先确认 Pixel ID 是你自己的,再保存 Tag。页面加载后 SDK 上报事件名为
page_viewed。Pixel ID
YOUR_PIXEL_ID(你自己的 Pixel ID)Event namePage viewed(SDK 上报为
page_viewed)Event ID可选的去重 ID;若同一 Page View 还会由 CAPI 或另一系统发送,Pixel 与服务端必须使用同一个值。是否配置由你的接入方案决定。
TriggerAll Pages
oppref 如何进入归因链路?
🔗
oppref 是 OpenAI 广告点击引用,不是 Event ID。OpenAI 会把它附加到落地页 URL。Pixel SDK 会捕获该值并保存到第一方 Cookie,因此 OpenAI GTM Tag 中没有单独的 oppref 输入框。① 广告点击落地页 URL 带 oppref
② Pixel 初始化读取并保存 oppref
③ GTM 事件发送页面或转化事件
④ CAPI 双发服务端回传原始 oppref
| 字段 | 作用 | 在 GTM 中怎么处理 |
|---|---|---|
oppref | 把转化与 OpenAI 广告点击关联 | 不映射到 Event ID;确保 Pixel 初始化前不要从 URL 中删除它 |
| Event ID | Pixel 与 CAPI 对同一事件去重 | 双发时两端使用同一个业务事件 ID |
CAPI 接入提醒:如果后端也回传转化,需要从首次落地页 URL 读取
oppref,在跳转、登录、结账和订单链路中原样保存,并作为 CAPI 事件对象的顶层字段发送。ℹ️页面加载触发最简单,适合先验证 Pixel ID、SDK 和 GTM 是否连通。
第 6 步:配置标准事件 order_created
订单参数不是 GTM 自动猜出来的。网站必须在真实下单成功时,把订单对象推入 dataLayer,GTM 再通过数据层变量读取。
📘需要查询
order_created 的完整事件参数,请打开 OpenAI Ads 回传接入指南首页:在步骤四选择订单事件后,进入步骤五查看完整参数。① 订单系统产生订单 ID、金额和商品
② dataLayer网页推送 purchase_success
③ GTM 变量按路径读取每个字段
④ OpenAI Tag映射到 order_created
第一步:在真实下单成功处推送订单数据
商品名称从哪里来?从你网站的真实订单对象、支付成功回调或后端返回结果中读取,例如
order.items[0].name。不要优先从页面文字中抓取,因为页面文案可能变化,也可能与最终订单不一致。网站代码 · purchase_success dataLayer 示例
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'purchase_success',
openai: {
event_id: order.id
},
order: {
amount: 4200, // 订单总额,最小货币单位:42.00 USD
currency: 'USD',
items: [{
content_type: 'product',
id: 'sku_123',
name: 'Test Product',
quantity: 2,
amount: 2100, // 单件金额:21.00 USD
currency: 'USD'
}]
}
});ℹ️
order 只是示例变量名。开发人员应将它替换为网站实际的订单对象;Shopify、Shoplazza、自建商城的字段名称都可能不同。第二步:在 GTM 创建数据层变量
DLV - item 0 name保存
变量配置
变量类型数据层变量
数据层变量名称order.items.0.name
数据层版本版本 2
3路径中的
0 表示第一件商品。创建其他变量时只替换最后的字段名,例如 id、quantity、amount。| GTM 变量名 | 数据层变量名称 | 读取到的值 |
|---|---|---|
| DLV - openai event id | openai.event_id | 订单 ID,用于 Pixel/CAPI 去重 |
| DLV - order amount | order.amount | 订单总额,整数最小货币单位 |
| DLV - order currency | order.currency | USD、CNY 等三位货币码 |
| DLV - item 0 type | order.items.0.content_type | product |
| DLV - item 0 id | order.items.0.id | SKU 或商品 ID |
| DLV - item 0 name | order.items.0.name | 商品名称 |
| DLV - item 0 quantity | order.items.0.quantity | 购买数量,整数 |
| DLV - item 0 amount | order.items.0.amount | 单件金额,整数最小货币单位 |
| DLV - item 0 currency | order.items.0.currency | 商品币种 |
第三步:把变量填进 Order Created Tag
OpenAI Ads - Order Created保存
Pixel IDYOUR_PIXEL_ID
Event nameOrder created
Event ID{{DLV - openai event id}}
Amount{{DLV - order amount}}
Currency{{DLV - order currency}}
Contents · Add content item
Content type{{DLV - item 0 type}}
ID{{DLV - item 0 id}}
Name{{DLV - item 0 name}}
Quantity{{DLV - item 0 quantity}}
Amount{{DLV - item 0 amount}}
Currency{{DLV - item 0 currency}}
4Amount、Quantity 必须是整数;金额使用最小货币单位。顶层 Amount 是订单总额,Contents 中 Amount 是单件商品金额。
第四步:创建真实下单成功触发器
CE - purchase_success保存
触发器类型自定义事件
事件名称purchase_success
此触发器的触发条件所有自定义事件
5这里的事件名称必须与
dataLayer.push({event:'purchase_success'}) 完全一致。⚠️多商品订单:当前模板的 Contents 是逐行配置。可以继续添加第 2、3 件商品的变量行;如果商品数量完全动态且没有合理上限,优先由后端使用 CAPI 发送完整商品数组。
第 7 步:配置自定义事件
- 新建 Tag,命名为业务动作,例如
OpenAI Ads - Guide Pixel Method Clicked。 - Event name 选择 Custom event。
- Custom event name 填稳定的小写下划线名称,例如
guide_pixel_method_clicked。 - Event ID 选择唯一 ID 变量。
- 创建只命中目标元素的点击触发器。
📘需要学习自定义事件及其他事件的参数内容,请打开 OpenAI Ads 回传接入指南首页:在步骤四选择事件后,进入步骤五查看完整参数。
OpenAI Ads - Guide Pixel Method Clicked保存
Pixel IDYOUR_PIXEL_ID
Event nameCustom event
Custom event nameguide_pixel_method_clicked
Event ID{{JS - OpenAI Click Event ID}}
触发器配置
触发器类型点击 - 所有元素
触发条件Click Element 与 CSS 选择器相符 #choicePixel, #choicePixel *
5点击卡片中的标题、图标或说明文字时,实际 Click Element 可能是子元素,因此选择器要同时覆盖目标元素及其子元素。
Click Element、HTML 元素、CSS 选择器是什么关系?
HTML 元素页面中的真实节点,例如卡片、图标、标题。开发者工具 Elements 面板里看到的每一行标签都是元素。
Click ElementGTM 内置变量,值是用户这一次真正点击到的 HTML 元素。
CSS 选择器用来描述“哪些元素算目标”的匹配规则,例如
#choicePixel *。<div id="choicePixel">
<span class="icon">📊</span>
<div class="title">Measurement Pixel</div> ← 用户点这里
<p>适合追踪前端事件</p>
</div>
① 用户点击标题实际节点是 .title
② Click Element保存这个 div 节点
③ CSS 匹配#choicePixel * 命中子元素
④ Tag 触发发送 custom 事件
| 写法 | 能命中什么 | 注意 |
|---|---|---|
#choicePixel | 只命中卡片最外层元素 | 点到标题或图标时可能不命中 |
#choicePixel * | 命中卡片里面的所有子元素 | 不能单独覆盖外层本身 |
#choicePixel, #choicePixel * | 同时覆盖外层和所有子元素 | 本教程点击卡片推荐写法 |
✅GTM 配置路径:触发器 → 新建 → 点击 - 所有元素 → 某些点击 → Click Element → 与 CSS 选择器相符,最后填入选择器。
Custom event name
guide_pixel_method_clickedTrigger variableClick Element
CSS selector
#choicePixel, #choicePixel *ℹ️使用
Click Element 加 CSS 选择器,可以让卡片本身、图标、标题和说明文字都命中;只判断 Click ID 时,点到子元素可能不会触发。页面浏览
page_viewed标准事件
创建订单
order_created标准事件
业务交互
guide_pixel_method_clicked自定义事件
第 8 步:预览、验收并发布
- 点击 GTM 右上角预览,输入测试网址并连接。
- 分别加载页面、点击订单动作和自定义动作。
- 在 Tag Assistant 确认对应 Tag 已触发。
- 到 OpenAI Ads 资产设置 → 事件流查询 Pixel。
- 确认来源为 web、渠道为 Pixel SDK,事件名称正确。
- 回到 GTM 点击提交 → 发布及创建版本,填写版本名称和说明。
page_viewed在页面加载后出现order_created只在下单成功动作后出现- 自定义事件名称与后台定义完全一致
- 广告点击落地页中的
oppref没有在 Pixel 初始化前被跳转或脚本删除 - CAPI 回传使用业务链路保存的原始
oppref,且没有把它误当成 Event ID - Pixel + CAPI 双发使用相同 Event ID
- 发布版本名称能说明本次改动
⏳事件流可能有数秒延迟。立即查不到时等待 5–15 秒再查询;事件已接收不代表已经完成广告归因或进入报表。
🎉完成标准:GTM 已发布、真实页面动作可触发、OpenAI 事件流能看到正确事件类型。