App 渠道追踪概述

背景

渠道分发都有跳转到 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地推效果统计:通过二维码统计地推效果

你可能感兴趣的:(App 渠道追踪概述)