转化跟踪

实现

摘要

转化跟踪的实现涉及以下三个方面:

  • 从着陆页 / 应用入口点收集 rwg_token
  • 为相应归因回溯期保留 rwg_token
  • 在结账时发送转化事件

这种转化跟踪实现不需要您使用 Google Analytics(分析)或任何其他第三方 JavaScript。

在开始实施转化跟踪之前,您应该决定是在设备一级还是用户一级跟踪转化:

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

收集 rwg_token

每次 Google 显示您通过 Feed 提供的 action_link 时,该网址都会被修改以包含唯一的查询参数:rwg_token。rwg_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 的值,无需进行任何修改。

除了 rwg_token,您还需要存储与操作链接关联的 merchant_id

如果上次访问时保留了现有令牌,则应替换之前的 rwg_token 和 merchant_id,并重置 30 天的存储期。

保留上述键值对时,您可以在设备级别或用户级别存储值:

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

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

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

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

发送转化数据

当用户完成归因于 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>
  "merchant_changed": 1|2
}

merchant_changed 值用于确定商家是否已从初始重定向商家更改为其他商家。有两个值可以传递

商家更改值 要求
1 当用户离开原始商家的网站并通过您的平台向其他商家完成购买交易时,应使用此值
2 当客户通过原始实体(商家)完成交易时,应使用此值。

在沙盒环境和生产环境中,发送转化事件时您都需要提供有效的 rwg_token。出于测试目的,在发布之前,请在这两个环境中使用以下测试令牌:

ADQ7psRE9YyDSVR6YpfD-fYdxoFYVKS1xeTvXdSxqF8a3bnk0W62eMEnUjoNPwjhNHG0elwBnM1awTjr9vXET8yOowCeuODjwA==

下面是一个使用 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,
      Merchant_changed: merchantChanged
    })
  });
}

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

转化归因要求

Google 对转化归因的要求是,对任何商店中的地点链接的任何互动,归因回溯期均为 30 天。

此归因回溯期意味着,在以下任一情况下,Google 都会发送转化事件:

  • 用户访问地点操作链接,并在同一会话中为同一商家下订单(商家更改值 = 2)
  • 用户点击地点操作链接,然后在 30 天内从其他渠道回访,为同一商家下订单。(商家变更值 = 2)
  • 用户点击地点操作链接,然后在其他商店下单(无论是在同一会话内,还是在 30 天期限内的不同会话中)。( 商家更改值 = 1 )

此外,Google 希望用户从地点操作链接进入的所有平台发送转化事件。包括:

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

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

如果令牌仅在设备级别(例如浏览器 Cookie)存储,则您无需提供跨设备归因。在这种情况下,如果用户已点击该设备上的操作链接,那么每台设备都会保留一个单独的令牌,并且每个设备都将分别遵循归因规则。