转化跟踪

图 2:转化跟踪概览

概览

转化跟踪会跟踪通过我们的某项行动中心集成由 Google 发起的转化。这有助于保持集成功能的正常运行,因为它可以影响某些网页上的排名。每次 Google 生成 action_link 时,都会修改特定网址以添加唯一的查询参数:rwg_token。您可以存储该令牌,并在用户完成预订时返回相应的值。

如需完成集成,请按以下步骤操作:

  1. 解析并存储 rwg_token
  2. 解析并存储商家信息。
  3. 返回 rwg_tokenmerchant_changed 值。
  4. 测试并验证转化跟踪。

解析并存储 rwg_token

若要完成集成,您需要收集并存储 rwg_token,最长可存储至 Google 初次推荐后的 30 天。rwg_token 值是一个编码字符串,其中包含有关链接的元数据以及生成相应 action_link 的商家信息。

解析令牌

当用户被引导至您的预约页面时,系统会在提供的网址中附加新的 rwg_token。在预约页面中,您需要解析令牌值。

以下示例展示了如何解析 rwg_token 以通过浏览器进行设备级跟踪。

const rwgToken = new URLSearchParams(location.search).get('rwg_token') || undefined;

存储令牌

存储 rwg_token 后,您可以在两个不同的级别实现转化跟踪:

  • 设备级
  • 用户级

您可以将令牌存储在任何级别,但必须在初始推荐后存储令牌 30 天

以下示例展示了设备级转化跟踪。您可以使用第一方 Cookie 将令牌值存储在浏览器中。此示例假定您已将令牌值解析为变量。请务必将 rootdomain.com 替换为您的网域。

if (rwgToken !== undefined) {
  document.cookie =
  "_rwgToken=" + rwgToken + "; max-age=2592000; domain=rootdomain.com; path=/";
}

每当 Google 生成您通过 Feed 提供的 action_link 时,系统都会修改相应网址,以添加一个唯一的查询参数:rwg_token。您必须存储此令牌,并将其作为转化事件的一部分传递回来。

在设备级存储

设备级包括使用浏览器 Cookie、本地存储空间、应用本地存储空间或任何其他可在 30 天归因回溯期内保留令牌的方法。令牌存储在用户设备的本地。因此,如果用户出现以下情况,转化事件将无法正确归因:

  • 更改孩子使用的设备。
  • 清除本地存储空间或 Cookie。
  • 使用无痕式浏览器或隐私浏览器。

使用设备级转化跟踪时,您需要在每个受支持的设备(包括移动设备)上重新实现转化事件。

在用户级存储

用户级持久性通过服务器端分析系统或其他服务器端系统将令牌保留在应用数据库中。令牌存储在服务器端。因此,在用户重新登录后,转化事件仍会正确归因。

如果您根据系统架构使用用户级转化跟踪,则可以在服务器端实现一次转化事件,并在所有受支持的设备上重复使用该事件。

刷新令牌

当 Google 将用户推荐给同一商家时,系统会使用最新推荐中的新令牌替换已存储的现有令牌。替换令牌后,令牌存储的 30 天归因回溯期会重置,并且此商家的所有新转化都会归因于最新令牌。

如需了解详情,请参阅转化归因要求

解析并存储商家信息

当用户被引导至您的预约页面时,您需要实现能够查找和捕获商家详细信息的逻辑。通常,合作伙伴会将商家元数据或 merchant_id 添加到其操作链接,并使用该元数据或 merchant_id 来识别和存储商家信息。

建议您将 merchant_id 或所选标识符与 rwg_token 一起存储。当用户确认预订后,您可以在发送完整的转化请求之前咨询商家。与令牌存储类似,您必须在初始推荐后的 30 天内将商家详细信息与令牌一起保存。

以下示例修改了之前存储的 rwg_token。它假设您已从所提供网址中的元数据解析出商家信息,并将其保存为 merchant_id 或将其与现有 merchant_id 相匹配。

// Store the rwgToken and merchantId in your cookie and set the cookie
// expiration date to 30 days.
if (typeof rwgToken !== 'undefined') {
  document.cookie =
  "_rwgToken=" + rwgToken + "; _merchantId=" + merchantId + "; max-age=2592000;domain=rootdomain.com; path=/";
}

返回 rwg_tokenmerchant_changed

当用户完成通过 action_link 推荐开始的预订时,您需要向转化端点发送 HTTP POST 请求。有两个端点:

  • 生产环境:https://www.google.com/maps/conversion/collect
  • 沙盒环境:https://www.google.com/maps/conversion/debug/collect

发送转化事件时,您必须包含存储的 rwg_token 和值为 12merchant_changed。如需详细了解 merchant_changed,请参阅返回商家找零值

POST 正文必须是 JSON 编码的对象,格式如下:

{
  "conversion_partner_id": "<partnerId>",
  "rwg_token": "<rwg_token_val>",
  "merchant_changed": "1|2"
}
{
  "conversion_partner_id": "XXXXXXX",
  "rwg_token": "AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==",
  "merchant_changed": "2"
}

以下示例包含设备级转化跟踪,其中在用户设备上使用 Cookie,并以 JavaScript 编写:

const partnerId = XXXXXXXXXX;
const endpoint = `https://www.google.com/maps/conversion/collect`;

// Retrieve the value of the rwgToken stored in the browser's cookie
const match = document.cookie.match(new RegExp('(?:^| )_rwgToken=([^;]+)'));
const storedRwgToken = match ? match[1] : undefined;

// Send Conversion event with decoded token, verify any special characters
// are sent properly.
if (storedRwgToken !== undefined) {
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: decodeURIComponent(storedRwgToken),
      merchant_changed: merchantChanged
    })
  });
}

返回商家更改值

merchant_changed 值用于确定商家是否已从初始重定向商家更改。如果您的着陆页位于包含其他商家的平台内,那么商家发生变更是很常见的。在这种情况下,如果用户通过 Google 访问您的平台,但决定前往其他商家的网站完成预订,您需要知道该用户在其他商家处发生了转化。您可以使用布尔值来标识商家变更,但不能标识商家详细信息。

在决定为 merchant_changed 分配哪个值时,您需要考虑解析并存储商家信息中保存的原始商家。检查商家是否已更改,并根据您的要求分配值。

  • 要求:当用户离开原始商家的网站,并通过您的平台向其他商家完成购买交易时。
    • 商家更改价值1
  • 要求:当用户通过原始商家完成交易时。
    • 商家更改价值2

测试和验证转化跟踪

以下测试用例使用测试令牌部分中提供的测试令牌,旨在帮助您了解可能导致转化事件的各种不同情况。这样可确保令牌得到妥善存储,merchant_changed 值得到正确设置,并在适当的时候发送转化事件。

使用 Feed 中提供的操作链接或预约页面网址,并通过将测试令牌附加到网址末尾来运行每个测试用例。请务必使用私密或无痕浏览器窗口,这样可以清除与当前用户关联的所有现有令牌,让您从头开始操作。

测试用例 测试说明 用户流 预期结果
1 用户完成的预订并非源自 Google。 用户直接前往预约页面,而没有通过 Google 或现有引荐前往。这不应导致任何转化事件。 没有转化事件,因为用户之前未访问过预约页面,或者不是通过 Google 转介过来的。
2 用户完成通过 Google 发起的预订。 用户通过 Google 找到您的商家,被引荐至您的预约页面,然后完成预订。 由于用户是通过 Google 转到预约页面的,因此系统会发送一个包含令牌 A商家已更改值 (2) 的转化事件
3 用户(来自 Google)开始预订流程,但在完成预订之前放弃了会话。

注意:请保持此会话处于打开状态,以用于测试 4 和 5。
用户被引荐到您的预约页面,但会话结束,并且用户未完成预约。 未发生转化,因为用户未完成预订,但令牌 B 应存储 30 天。
4 用户返回预约页面(并非来自 Google),并完成预订。

注意:预订流程网址不得包含 rwg_token。
用户在测试 4 后返回预约页面。令牌 B 应存储 30 天,并且在这 30 天内的任何转化都应返回转化事件。 系统会发送一个包含 Token B商家已更改值 (2) 的转化事件,因为用户在之前通过 Google 推荐访问预约页面后,又返回了该页面。
5 用户在测试 4 之后完成源自 Google 的新预订。 如果用户在之前通过 Google 引荐访问过预约页面后,再次通过 Google 引荐访问该页面,那么其 30 天的存储时间范围会重置,并且新令牌 Token C 会替换旧令牌 Token B。之后的所有转化都将归因于 Token C 由于用户完成了预订,并且新令牌替换了之前存储的令牌,因此系统会发送一个包含令牌 C商家已更改2 的转化事件。

如果您的平台允许用户向其他商家结账,请测试以下内容。

测试用例 测试说明 用户流 预期结果
6 用户通过 Google 访问您的预约页面,但最终向其他商家完成了预订。 用户通过 Google 访问您的预约页面,系统使用了 Token A,但在完成预订之前,用户前往了其他页面,并向与原始引荐来源不同的商家完成了预订。 系统会发送转化事件,因为用户完成的预订是通过 Google 的引荐(带有 Token A)发起的,并且由于用户在与引荐不同的商家处完成了预订,因此商家已更改值为 1

在测试期间,将 HTTP POST 请求发送到转化端点。有两个端点:

  • 生产环境:https://www.google.com/maps/conversion/collect
  • 沙盒环境:https://www.google.com/maps/conversion/debug/collect

测试令牌

如需测试转化跟踪,请将以下某个测试令牌添加到您在 Feed 中提供的操作链接或预约页面网址的末尾。

Token A

rwg_token=AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ%3D%3D

令牌 B

rwg_token=AJKvS9U2QfiQanHFQrlJxBjD0AyFany3qpaJVEWOcY4nHqY_UkLYFFDj6RIa-EXS1iEmV8gtFPG6v1cU1jnusJK66ijXXnaqkQ%3D%3D

令牌 C

rwg_token=AJKvS9VwInjZ_hGZPvBz0COVWJ5oFDzocFt9hGi7TMurlo2l71uiXP48PspPUMmRnqCUDE1mF_A5H_dMV78cBTF8jIfSQK6lEA%3D%3D

发送成功的转化事件后,您可以在 Action Center 的转化跟踪信息中心内看到这些事件的汇总数据。

conversion-tracking-dashboard

转化归因要求

Google 对转化归因的强制性标准是:对于与地点操作链接的任何互动,在任何商店的归因时间范围均为 30 天。

此归因回溯期意味着,在以下任何一种情况下,Google 都可以预期会收到转化事件:

  • 用户点击某个地点操作链接,并在同一会话中向同一商家下单。商家更改价值 = 2。
  • 用户点击地点操作链接,然后在 30 天的归因回溯期内通过其他渠道回访,向同一商家下单。商家更改价值 = 2。
  • 用户点击某个地点操作链接,然后在另一家商店下单,无论是在同一会话中还是在 30 天归因回溯期内,都属于这种情况。商家更改价值 = 1。

此外,Google 希望能够从用户通过地点操作链接访问的任何设备发送转化事件。这些设备包括:

  • 桌面或移动 Web 应用。
  • 移动应用,无论是通过应用深层链接还是通过您网域的注册应用 intent。

如果令牌存储在用户级,则您应提供跨设备归因。如需了解详情,请参阅在用户级存储。在这种情况下,如果用户在桌面设备上点击了操作链接,然后使用同一用户账号在移动设备上完成交易,则必须触发转化事件。

如果令牌仅存储在设备级,例如在浏览器 Cookie 中,则不应提供跨设备归因。在这种情况下,如果用户在相应设备上点击了操作链接,则每部设备都可以单独保留一个令牌,并且每部设备都可以单独遵循归因规则。