转化跟踪

实现

摘要

转化跟踪的实施分为以下三部分:

  • 从着陆页 / 应用入口点收集 rwg_tokenmerchant_id
  • 针对相应的归因回溯期保留 rwg_tokenmerchant_id
  • 在转换时比较保留的 merchant_idmerchant_id(预订完成)。
  • 在转化时发送转化事件(预订完成)。

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

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

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

收集 rwg_token

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

在每个着陆页 / 应用入口点,您必须解析为 rwg_token 查询参数设置的值并存储该值。“保留 rwg_token”步骤中介绍了存储此参数的要求。

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

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;
  }
}

收集 merchant_id

如果您在着陆页上的前端实现转化跟踪逻辑,则必须实现一个用于查找和捕获 merchant_id 的自定义脚本。通常,merchant_id 可能已经存在于着陆页或网址中,因此您可以从那里捕获它。否则,您必须设法在某处公开数据,以便可以捕获数据(这可能意味着后端会发生更改)。

如果您在后端实现转化跟踪逻辑,则可能会在用于查询内部系统以生成前端页面的数据旁边找到 merchant_id

merchant_id 必须与您在 Feed 中与 Google 分享的名称相同。

保留 rwg_tokenmerchant_id

您必须将 rwg_token 网址参数附加到您提供的所有操作链接,在 30 天内保留该参数。应存储和返回 rwg_token 的值,不要进行任何修改。

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

如果上次访问时存在保留的现有令牌,则应替换较早的 rwg_tokenmerchant_id,并重置 30 天的存储窗口。

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

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

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

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

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

发送转化数据

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

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

博文正文应为 JSON 编码的对象,格式如下:

{
  "conversion_partner_id": <partnerId>,
  "rwg_token": <rwg_token_val>,
  "merchant_changed": 1|2
}

示例(合作伙伴 20123456 具有测试令牌的商家未经更改):

{
  "conversion_partner_id": 20123456,
  "rwg_token": "AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ",
  "merchant_changed": 2
}

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

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

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

AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==

以下是采用 JavaScript 进行设备级转化跟踪(在用户设备上使用 Cookie)的完整示例,说明如何发出此发布请求:

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
    })
  });
}

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

转化归因要求

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

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

  • 用户前往地点操作链接,并在同一会话中为同一商家下订单。(商家更改值 = 2)
  • 用户点击地点操作链接,然后在 30 天内从其他渠道返回并下单购买同一商家。(商家更改值 = 2)
  • 用户前往地点操作链接,然后在其他商店下单(在同一会话内或 30 天内的不同会话内)。(商家更改值 = 1)

此外,Google 要求从用户可通过地点操作链接登录的所有平台发送转化事件。包括:

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

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

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