App 渠道追踪概述
2020-06-23 本文已影响0人
V_coa
背景
渠道分发都有跳转到 App Store 这一步,而 Apple 本身是不会提供太多信息给开发者的。所以,对于整个流程的三个步骤:在某个渠道点击下载链接并跳转到 App Store -> App Store 内下载 App -> 用户激活 App 中的第二步,是一个完全的黑盒,所以,没有办法精确地追踪一个用户在这三个步骤中的轨迹。
- 场景:
用户在网页上进行用户行为,产生了数据,然后下载了 App,当用户打开 App 的时候,希望知道渠道来源,并延续在网页上的行为和数据。 - 例子:
用户在 App 里面的浏览器访问了某个页面,被引导下载了 App, 等用户下载完成,打开 App 的时候,甚至能同步刚才在页面上的一些数据。
方案
image- 用户访问落地页 URL, 如
https://xxx/yyy?channelCode=23901&testKey=testValue
, 并带上设备指纹数据渠道号放在URL中,业务参数等自定义参数放在 Body 中,向服务端请求 token - 用户点击下载按钮,复制 token 到粘贴板,使用到零宽度字符隐藏 token,是 iOS 则写 Cookie(SFSafariViewController iOS 9.x.x)
- H5 重定向到 App Store,用户下载,安装 App
- 安装完成,用户打开 App,检测剪贴板是否有 token, 上报 token 和 设备指纹,iOS 9.x.x 尝试读 Cookie
- 后端检验 token,渠道来源
- 服务端返回参数
有些情况会导致剪贴板没有数据(系统版本或用户覆盖剪贴板),所以通过收集设备的多维信息屏幕尺寸,操作系统,IP,手机型号, 访问时间等设备指纹信息,综合作为”唯一标识”(设备指纹),一种互补的方法。
各端处理
前端:
提供对应的 Web SDK 方便集成,在进入 H5 页,获取
- 屏幕高度 (window.screen.height)
- 屏幕宽度 (window.screen.width)
- 设备像素比 (window.devicePixelRatio)
- IP (服务端)
- 设备类型 (iPhone | iPad | iPod | Android) 等
- 系统版本号 (12.2)
- 访问时间(服务端)
等参数包含在 URL 中,自定义参数用 Body,请求成功返回 token,点击跳转 App Store 时,复制 token 到剪贴板。
客户端:
获取剪贴板数据和设备指纹数据,请求渠道来源和自定义参数。
{
"channelCode": "",
"data": {
"action": "",
"extend": ""
}
}
服务端:
服务端校验 token 的合法性,以及渠道来源,如果没有获取到 token, 或 iOS <=9.x.x 不支持 JS 操作剪贴板,所以这个时候,采用设备指纹作为“唯一标识”,判断来源。最后返回自定义参数,规则如下:
- 获取在剪贴板能获取到 token, 就用 token 作为唯一标识
- 如果获取不到 token,就在设备指纹完全一致的情况下,加上一定时间内的限制,存在一定误差
总结
涉及实现技术点:
- 粘贴板,零宽度字符(用于隐藏粘贴板内容,用户不可见)
- 设备指纹,屏幕宽高、设备像素比、操作系统、操作系统版本、IP 和时间戳等
- iOS SFSafariViewController,获取 Cookie
通过渠道追踪,主要用于解决以下问题:
- 运营活动效果分析:可用于统计分析不同的运营活动带来的新增用户数量、留存情况。为App精细化运营提供支持
- H5页面操作延续功能:通过运营活动带来的App用户,在首次安装完成启动App,获取业务参数,可以延续之前H5页面的行为
- 新用户冷启动推荐辅助:将新用户在H5页面的操作轨迹提供给推荐算法,解决新用户冷启动精准推荐问题
- 社交分享效果统计:精确统计每个分享带来的App安装量及留存情况
- App地推效果统计:通过二维码统计地推效果