转化跟踪

实现

摘要

转化跟踪实现分为以下三个部分:

  1. 从着陆页 / 应用入口点收集 rwg_token
  2. 为适当的归因回溯期保留 rwg_token
  3. 在结账时发送转化事件

实现此转化跟踪功能不需要您使用 Google Analytics 或任何其他第三方 JavaScript。

在开始实施转化跟踪之前,您应先确定是将在设备级别还是用户级别跟踪转化:

  • 设备级包括使用浏览器 Cookie、本地存储空间、应用本地存储空间或任何其他可在 30 天的归因时间范围内保留令牌的方法。由于令牌会存储在用户设备的本地,因此如果用户更改所用设备、清除本地存储空间/Cookie,或者使用无痕式浏览或无痕模式,转化事件可能无法正确归因。使用设备级转化跟踪时,您必须在所有受支持的平台(包括移动平台)上重新实现此功能。
  • 用户级包括通过服务器端分析系统或其他服务器端系统将其持久存储在应用数据库中。由于令牌会存储在服务器端,因此即使用户更改了所用设备、清除了本地存储空间/Cookie,或者使用了无痕式浏览或无痕模式,只要用户重新登录,系统仍会将转化事件归因于该用户。使用用户级转化跟踪时,您或许可以在服务器端实现一次,然后在所有受支持的平台上重复使用。具体取决于系统的架构。

收集 rwg_token

每当 Google 显示您通过 Feed 提供的 action_link 时,都会修改该网址以添加唯一的查询参数:rwg_tokenrwg_token 值是一个编码字符串,其中包含与用户点击的链接相关的一些元数据。您将存储此令牌,并将其作为转化事件的一部分传回。

在每个着陆页 / 应用入口点上,您都必须解析为 rwg_token 查询参数设置的值并将其存储起来。持久化 rwg_token 步骤介绍了存储此参数的要求。

下面的示例展示了如何解析此令牌,以便通过浏览器进行设备级跟踪。或者,您也可以在响应请求时在服务器端收集此令牌:

<script>
  var query = location.search.substring(1);
  var params = query.split('&');
  var rwgToken = undefined;
  for (var i = 0; i < params.length; ++i) {
    var pair = params[i].split('=');
    if (pair[0] == 'rwg_token') {
      rwgToken = decodeURIComponent(pair[1]);
      break;
    }
  }
</script>

保留 rwg_token

您需要将 rwg_token 网址参数保留 30 天,该参数将附加到您提供的所有操作链接。rwg_token 的值应存储并返回,且不进行任何修改。 如果有来自上次访问的现有令牌保留,则应替换旧令牌,并重置 30 天的存储期限。

在持久化令牌时,您可以在设备级别或用户级别存储令牌:

  • 设备级包括使用浏览器 Cookie、本地存储空间、应用本地存储空间或任何其他可在 30 天的归因时间范围内保留令牌的方法。
  • 用户级包括通过服务器端分析系统或其他服务器端系统将其持久存储在应用数据库中。

以下是设备级转化跟踪示例,其中通过第一方 Cookie 将此令牌存储在网络浏览器中。此示例假定您已将令牌值解析为变量(如上例所示)。如需使用此示例,您需要将“rootdomain”更新为您的域名。

<script>
  if (typeof rwg_token !== 'undefined') {
    document.cookie =
    "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/";
  }
</script>

使用用户级转化跟踪时,rwg_token 应存储在服务器上并与用户相关联。

发送转化数据

当用户完成可归因于 Google 地点行动链接的交易时,您必须向转化端点发送 HTTP POST 请求。有两个端点,一个用于生产环境,另一个用于沙盒环境。

  • 正式版:https://www.google.com/maps/conversion/collect
  • 沙盒:https://www.google.com/maps/conversion/debug/collect

该 POST 正文应为采用以下格式的 JSON 编码对象:

{
  'conversion_partner_id': partnerId,
  'rwg_token': <rwg_token_val>
}

无论是在沙盒环境还是生产环境中,您都必须在发送转化事件时提供有效的 rwg_token。如需在沙盒环境中进行测试,您可以使用以下测试令牌。

AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==

下面是一个完整的示例,展示了如何使用 JavaScript 进行设备级转化跟踪(使用用户设备上的 Cookie)来发出此 POST 请求:

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

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal
    })
  });
}

使用用户级转化跟踪时,您应从服务器端存储机制检索与用户关联的令牌(无论用户位于何种平台),并使用相同的生产或沙盒端点发送该令牌。

转化归因要求

对于任何实体店与地点链接的互动,Google 要求的转化归因标准归因期为 30 天。

此归因时间范围意味着,我们希望在以下任一情况下发送转化事件:

  • 用户点击地点操作链接,并在同一会话中下单
  • 用户点击某个地点操作链接,然后在 30 天内通过其他渠道返回以下单。
  • 用户点击某个地点操作链接,然后在 30 天内(同一会话或其他会话中)在其他商店下单。

此外,我们希望从用户可以通过地点操作链接到达的所有平台发送转化事件。包括:

  • 桌面版或移动版 Web 应用
  • 移动应用(通过应用深层链接或为您的网域注册的应用 intent)

如果令牌存储在用户级别(请参阅持久存储令牌),您应提供跨设备归因。也就是说,如果用户在桌面设备上点击操作链接,然后在移动设备上(使用同一用户账号)完成交易,则应触发转化事件。

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