App无码邀请以及广告归因实现探讨

其实无码邀请,我在2019年帮朋友做前途问鹿的时候,就用到了,他的介绍信息在此https://docs.jiguang.cn/jmlink/guideline/intro/

基本的流程大约如此:

上个月,集团营销部门负责投放的一位同事离职了,将公司的这一套归因系统交接给我了,我看了下,是购买的openinstall私有部署的,跟极光魔链也差不多,提供了一下服务:

  1. 免填邀请码;
  2. 用户分享统计;
  3. 自动关注;
  4. 商品导购;
  5. 兴趣建模;
  6. 渠道统计;
  7. 其他一些场景

核心步骤大约是:

  1. 分享页面通过JS SDK将从URL解析拿到的参数以及当前识别信息传到openinstall的服务器。生成一个唯一识别ID。
  2. 用户下载APP,安装后,APP里面的SDK会收集当前的识别信息,传给服务器,让服务器跟步骤1的数据进行匹配,如果成功则返回识别ID。
  3. APP里面的SDK获取到识别ID后,后面的操作如果需要,带上这个ID即可。

这里可以看到,核心的就是匹配,即在h5里上传一些用户数据,在app也也上传一些用户数据,两者进行匹配。当然,这里未必上传原始数据,也许上传的是加密后的数据。

那么h5大约可以下列数据:

  • clientWidth 屏幕宽度
  • clientHeight 屏幕高度
  • devicePixelRatio 屏幕像素比
  • version webgl版本
  • renderer gpu型号
  • 内网IP 通过webrtc 获取
  • 外网IP 通过http协议获取

有个Fingerprintjs2它是用来生成唯一识别码的,里面用到识别元素都是可以获取的。

这些在app里也可以获取到,根据这些信息在服务端匹配,就可以完成设备识别号(imei,idfa,AAID等)和唯一识别ID的绑定。后续还能绑上用户注册id等信息。

匹配并不需要所有字段信息都存在,也不需要所有字段都一样。可以定义一些策略,满足几项即可匹配,同时还可以限制数据有效期。

此外,还有一些其他手段,不一定有效,但是可以辅助提高匹配度。

  • 在ios里,通过h5页面向指定domain种上一个cookie,在app里通过CFSafariViewController来获取这个cookie。
  • 在h5里往粘贴板写入一段识别串,在app里获取这个识别串来匹配。但是剪切板信息是用户隐私,所以此方法可能违规。

以上主要讲述的是无码邀请,是由一个携带参数的URL来实现对用户下载,注册,购买等行为的归因逻辑。因为此场景发起者是浏览器,所以碍于浏览器的权限限制,只能根据当前用户的IP+UA等通用信息进行模糊匹配来实现的。IP是其中重要的判断依据,然而ip是变化的,时间越久变化的可能性越大。这里头还有一个点,就是app安装判断,如果用户已经安装了app,则可以直接scheme带参数跳转,精确度最高,具体如何判断app安装,网上有很多方案,这里不具体展开了。

此外,还涉及app到app的追踪,比如第三方app或app商店操作,因为由app发起,可以获得一些精确标识,比如OAID,IMEI,IDFA, Android ID, MAC.这样匹配起来更准确,某些广告商也提供了sdk来简化操作。此外还可以针对不同渠道集成不同的渠道参数来判断。