实现
摘要
转化跟踪的实现由以下三部分组成:
-
从着陆页 / 应用入口点收集
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
您需要在 30 天内保留 rwg_token
网址参数,该参数会附加到您提供的所有操作链接。应存储并返回 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==
下面提供了设备级转化跟踪(使用用户设备上的 Cookie)的完整示例,该示例以 JavaScript 的形式介绍了如何发出此 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)存储,则无需提供跨设备归因。在这种情况下,如果用户点击了某个设备上的操作链接,那么每台设备都会保留一个单独的令牌,并且每个设备都将分别遵循归因规则。