唯一的交易 ID(例如订单确认号)对于准确地衡量转化(尤其是购买交易)至关重要。它们可防止重复统计转化次数,并支持高级衡量功能。
交易 ID 可用于跟踪线上和线下转化。
如果您向转化页(例如订单确认页)添加了转化跟踪代码,则只有当用户在您的网站上完成某项有价值的操作后,系统才应当统计一次转化。但是,如果用户返回该转化页或重新加载该页,则可能会重新触发同一代码,并针对同一订单计入第二次转化。
为避免系统重复计算此类转化,您可以修改自己的转化跟踪代码以获取唯一的交易 ID,例如您可能已经在用的订单确认号。如果具有相同交易 ID 的同一转化操作产生了两次转化,Google Ads 便会将第二次转化认定为重复转化。您会收到一条出错提示,并且系统不会统计重复转化。
为提升转化衡量的准确性,我们强烈建议除了使用 Google 代码外,还使用数据管理器上传存储在后端(例如 CRM 中)的线上转化数据。执行此操作时,交易 ID 在代码和服务器到服务器的上传中应保持一致。这有助于您提升转化跟踪的准确性。您可以在此处了解更多信息。
在本文中,我们将介绍如何向您的转化跟踪代码中添加唯一的交易 ID,以及如何将其与线下转化结合使用。
本页内容
准备工作
您需要满足以下条件才能向转化跟踪代码中添加交易 ID:
- 为网站设置转化跟踪。您需要先在自己的 Google Ads 账号中创建一个转化操作并向您的网站添加转化跟踪代码,才能按照下面的说明继续操作。
- 您的网站应能够生成唯一的交易 ID,例如交易的订单确认号。交易 ID 可以包含数字、字母和特殊字符,如短划线或空格,但最多不能超过 64 个字符。每笔订单的交易 ID 必须是唯一的,这一点至关重要。为多个订单使用相同的 ID 会导致实际统计的数量不足。交易 ID 中不能包含任何可用以识别用户个人身份的信息。
- 根据您的设置,您可能需要修改网站代码的能力。您或您的 Web 开发者需要能够修改转化跟踪代码。
操作说明
您需要将一段代码添加到您的转化跟踪代码中,以提取唯一的订单编号并将其随跟踪代码一起发送。不必对您的 Google Ads 账号进行任何更新,只需更新您的转化跟踪代码即可。
注意事项
请确保您传递的是交易 ID 的动态价值。如果您的代码针对不同交易向 Google Ads 发送了相同的 ID,就会导致转化次数统计严重不足。
通过 Google 代码事件代码段设置交易 ID
第 1 步(共 3 步):生成并公开交易 ID
发生转化时(例如客户完成购买),您的服务器应生成唯一的交易 ID。然后,您可以在转化确认页面的 HTML 中提供此 ID。通常的做法是将该 ID 直接呈现到页面上的 JavaScript 变量中。
例如,在确认页面上,您的服务器端代码可能会生成类似以下内容的代码段:
<script>
const uniqueTransactionId = 'TID_1663445995_789'; // 此值应由您的服务器动态生成
</script>第 2 步(共 3 步):在 Google 代码事件代码段中传递该 ID
接下来,修改您的 Google 代码事件代码段,以传递此动态生成的 ID。在转化页上找到您的事件代码段,然后使用您在上一步中定义的变量添加 transaction_id 参数。
// 此变量应使用来自您服务器的唯一 ID 填充
const uniqueTransactionId = 'TID_1663445995_789';
gtag('event', 'conversion', {
'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
'value': 120.50,
'currency': 'USD',
'transaction_id': uniqueTransactionId // Here's the unique ID
});
第 3 步(共 3 步):验证您的实现情况
部署代码后,在您的网站上完成一次测试购买。然后,您可以使用 Tag Assistant 验证交易 ID 是否正确地在转化 ping 中传递。
通过 Google 跟踪代码管理器设置交易 ID
对于使用 Google 跟踪代码管理器的广告客户,传递唯一交易 ID 的最可靠方法是使用网站的数据层。该过程主要包含两个阶段:确保您网站的开发者将 ID 推送到数据层,然后配置 Google 跟踪代码管理器以读取该 ID 并将其传递给 Google Ads。
第 1 部分:将交易 ID 推送到数据层(供您的 Web 开发者参考)
在配置 Google 跟踪代码管理器之前,您的 Web 开发者必须更新网站的代码,以便在每次发生转化时将唯一的交易 ID 推送到数据层。这样一来,Google 跟踪代码管理器才能捕获该值。
以下是您的开发者将添加到转化确认页面的代码示例。
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'purchase', // 用于触发 GTM 代码的自定义事件名称
'transaction_id': 'UNIQUE_TRANSACTION_ID_FROM_YOUR_SYSTEM' // 动态交易 ID
});
</script>开发者注意事项:
- 必须为每笔订单动态填充唯一的
transaction_id值。 - 推送自定义事件(例如 purhase)是一种最佳实践,因为它可以提供清晰的信号,供您在 Google 跟踪代码管理器中触发 Google Ads 代码。
第 2 部分:配置 Google 跟踪代码管理器
正确实现数据层后,请在您的 Google 跟踪代码管理器容器中按以下步骤操作。
第 1 步(共 4 步):创建触发器
首先,创建一个触发器,用于在发生购买事件时触发 Google Ads 代码。
- 在 Google 跟踪代码管理器工作区中,前往触发器,然后点击新建。
- 为触发器命名。例如,“自定义事件 - 购买”。
- 对于“触发器配置”,选择自定义事件。
- 在“事件名称”字段中,输入您的开发者推送到数据层的事件的名称,例如“purchase”。
- 点击保存。
第 2 步(共 4 步):创建数据层变量
接下来,创建一个从数据层捕获交易 ID 的变量。
- 前往变量,然后在“用户定义的变量”部分,点击新建。
- 为您的变量命名。例如:“DLV - transaction_id”。
- 在“变量配置”中,选择数据层变量。
- 在“数据层变量名”字段中,输入
transaction_id。此名称必须与dataLayer.push()代码中使用的键完全一致。 - 点击保存。
第 3 步(共 4 步):更新您的 Google Ads 转化跟踪代码
最后,配置您的 Google Ads 转化跟踪代码以使用您刚刚创建的变量。
- 前往代码,然后点击现有的 Google Ads 转化跟踪代码;如果您还没有此类代码,请创建一个。
- 在“代码配置”中,找到“交易 ID”字段。
- 点击该字段旁边的
按钮,然后选择您在上一步中创建的数据层变量。例如:
{{DLV - transaction_id}}。 - 在“触发条件”下,选择您在第 1 步中创建的触发器。例如“自定义事件 - 购买”。
- 点击保存。
- 发布您的 Google 跟踪代码管理器容器,使更改生效。
按照这些步骤操作后,Google 跟踪代码管理器会在每次购买交易发生时动态地从数据层提取唯一交易 ID,并将其发送给 Google Ads。
第 4 步:验证您的实现
配置代码并发布 Google 跟踪代码管理器容器后,您应验证交易 ID 是否被正确捕获和传递。最好的方法是使用 Google 跟踪代码管理器中内置的预览模式。
- 启动预览模式:在您的 Google 跟踪代码管理器工作区中,点击右上角的“预览”按钮。输入您网站的网址,然后点击“连接”。系统随即会在浏览器的新标签页中打开您的网站,并在底部显示 Tag Assistant 调试窗格。
- 完成一次测试转化:在您的网站上,完成一次测试购买流程以触发转化事件。
- 检查代码触发情况:在 Tag Assistant 窗口或标签页中,您应该可以在左侧的事件时间轴上看到您创建的自定义事件(例如
purchase)出现。点击此事件。 - 检查 Google Ads 代码:在相应事件的“已触发的代码”部分中,您应该能够看到您的 Google Ads 转化跟踪代码。点击相应代码即可打开其详细信息。
- 验证交易 ID:在代码详细信息中,您会看到传递给 Google Ads 的确切值。找到“交易 ID”字段,确认其中显示的是为该测试购买生成的唯一 ID。它不应是静态值,也不应显示为“undefined”。
- 重复测试:为确保 ID 是动态的,请再次进行测试购买,并验证是否捕获到新的且不同的交易 ID。
使用内容管理系统 (CMS) 设置交易 ID
对于与 Google 深度集成的内容管理系统 (CMS),您的购买转化或事件可能已在发送交易 ID。例如,Shopify 会自动通过 Google & YouTube 应用为其转化附加交易 ID。
如果您的 CMS 或电子商务平台没有直接与 Google 集成,但提供 API 访问权限,您可以手动获取交易 ID。请查阅相应平台的文档。您可以在全局 JavaScript 变量或数据层中找到交易 ID,也可以通过其服务器端 API 提取交易 ID,然后将其传递给前端以供代码使用。
为线下转化设置交易 ID
当您导入用户点击广告后所完成转化的数据时,可以选择在“交易 ID”(或“订单 ID”)列中添加唯一的交易 ID。如果您要为其他数据源设置交易 ID,则必须提供交易 ID。对于线下转化数据导入 (OCI),交易 ID 为可选,但最好为购买转化包含它。
为多个数据源的转化设置交易 ID
如果您要通过数据管理器连接其他数据源,以使用更多数据来补充网站转化数据,则必须为每次购买收集唯一的交易 ID。
新数据源中的 ID 必须与您的转化跟踪代码捕获的 transaction_id 完全一致。任何差异(例如不同的前缀、后缀或多余的空格)都将阻碍 Google Ads 对事件数据进行去重,并影响转化报告的准确性。
验证 Google 代码中的交易 ID 实现情况
您可以使用 Google Tag Assistant 来检查交易 ID 是否正确发送。在进行测试购买时,请使用 Tag Assistant 确保您的 Google Ads 代码触发中的“交易 ID”字段包含唯一值。
使用 Chrome 开发者工具验证转化 ping
您还可以使用 Chrome 开发者工具验证转化 ping。
- 在 Google Chrome 中,右键点击网站中的任意位置,然后选择检查。
- 前往网络标签页,然后在发送到
https://www.googleadservices.com/pagead/conversion的请求中查找&oid=参数 - 确认它是否为每笔订单设置了唯一值。
交易 ID 编码错误
虽然交易 ID 有助于避免重复统计转化,但如果交易 ID 编码有误,转化可能会被标记为无效;如果 Google Ads 发现多个客户使用同一交易 ID,可能会跳过去重流程。
以下是一些编码错误示例:
动态变量解析失败
您的服务器端代码使用变量来动态提供唯一的交易 ID。如果代表这些变量的代码段无法解析,您可能会收到错误。以下是一些示例代码段:
{{ order_number }}[invoice-prefix][invoice-number]null-user-idgtm.init<%= orderId %>[object Object].transaction_id<google_ads_transaction_id>Number(order.id).toString()<?php echo $order->id; ?><b>Notice</b>: Undefined variable: order_id in <b>/home/examples/example.com.ua/www/catalog/view/theme/default/template/common/success.tpl</b> on line <b>66</b>
示例
如果您在 Google 代码事件代码段中使用了 {{ order_number }},但您的服务器端变量是 {{order_number}}(没有多余空格),它将无法填充交易 ID。结果只会显示 {{ order_number }} 这个变量名,而不是实际 ID。
占位符值
以下是通用或用作静态测试值或标签的字符串或固定数字,不应作为交易 ID 使用:
button-confirm恭喜啦thank_you未设置购买网页浏览Conversion Tracking Google Ads1234https://www.google.com/Google
不相关的数据类型
以下数据类型和值不应作为交易 ID 使用:
- 网址
www.example.comhttps://www.example.org/admin/example.comhttps://www.example.com/products
- 电子邮件地址
...@gmail.com...@yahoo.com自定义网域
- 价格或币种
$17.99$ 5.37$ 21.45$ 15.50美元澳元
- 经过哈希处理的字符串或 UUID 字符串
50d858e0985ecc7f60418aaf0cc5ab587f42=G-1234567890e9891562113d8a62add1bf0888-af2bdbe1aa9b6ec1e
- 产品
/products/dog-proof-fence-pack-timber-fences/shop/product/electric-toothbrushProduct Pro_trial_monthly_undefined
- 电话号码
在某些情况下,交易 ID 会以 key=value 格式显示在网址中的问号后面。例如,如果网址为 https://example.com/success?order_id=54321,则 order_id 是变量名称,而 54321 是交易 ID。网址的其余部分不应用作交易 ID。
关于交易 ID 和“计数”设置
向事件代码段中添加交易 ID 不同于将“计数”设置更改为针对每次广告点击仅统计一次转化。
添加交易 ID 可以避免重复统计同一次转化。比方说,如果某个用户重复打开某个订单确认页,那么同一次购买行为将被计为两次转化,这就发生了重复统计。
如果您将“计数”设置更改为仅统计一次转化,那么每次广告点击发生后将仅计入一次转化,即使广告点击促成了多次转化(例如带来了多笔不同的购买交易)也是如此。
那么,您何时应使用“计数”,何时又该使用交易 ID 呢?
- 如果您希望针对每次广告点击跟踪一位潜在客户,请将您的计数设置更改为“1”。
- 如果您希望跟踪用户在点击广告之后的每一次购买,但又不希望将同一笔购买统计两次,请向您的事件代码段添加交易 ID。如需跟踪购买次数,建议您添加交易 ID。
注意:
- Google Ads 报告中不会显示交易 ID。
- 向转化跟踪代码中添加交易 ID 不会解决浏览型转化重复计数问题。
- 如果您的网站已经具备转化次数去重解决方案,我们仍建议您添加交易 ID,作为准确统计转化数据的额外保障。
- 如果您使用 Google 跟踪代码管理器,则可以使用交易 ID。确保以变量而不是静态字符串的形式输入交易 ID。