互联网App产品的社交渠道推广绕不开的一个问题就是:下载和安装归因。也就是每次下载是谁推荐的(有没有想到微商?)。社交渠道和媒体广告渠道的区别是流量极度长尾分散,不可能像媒体渠道那样给每个推荐用户单独打包一个已经埋点过渠道标识的安装包。目前很多社交电商的玩法是通过邀请码来绑定关系完成归因的。有没有更NB的方式呢?查了一下还真有。目前百度上主要能查到2个产品能提供自动归因的技术,openisntall和shareinstall。2家的玩法都差不多,分享者只需要提取自己的分享链接,从该链接中下载、安装或者激活的App用户就能够自动识别出是由该分享者带来的。
首先好奇的是App内部是怎么识别出浏览器参数信息的?
出于好奇使用了一下shareinstall的demo,流程比较简单,在官网上输入一对任意的参数名和参数值(在实际应用场景中应该就是渠道和用户id),然后扫描生成的二维码,在H5页面中下载的安装包。安装后打开App会显示出设置的参数名和参数值。
第二步:扫二维码打开下载页面
第三步:在App内查看安装数据
我在第一步的页面中输入的参数是share-user和1000001,在App内果然获取到了。
通过这个流程能推测出实现机制应该是这样:
在H5下载页面获取将获取到的终端信息和参数上传到服务端,然后在打开App后也将用户信息上传到服务端,由于这2次获得的终端信息是相同的,在服务端完成匹配后就可以将参数下发到App,这时已经完成了安装归因,在用户注册时还可以完成注册归因。
接下来问题就是App如何获取到和H5相同的终端信息?
先研究了一下第二步的下载页面,里面的JS混淆后比较难查。
然后想看看安卓的代码,想用代理拿到下载地址时发现页面对代理做了限制,只好把手机里的apk传到电脑上了😶
反编了apk后看了几个类,发现了一个md5加密的方法,顺藤摸瓜后找到了被加密数据信息:
image.png
初步看是从App中获取了设备、网络、屏幕像素尺寸等信息,然后把这些信息加密成一个指纹,和H5获取到的指纹作比对。
具体的算法没有详细了解,倒是查到了一篇相关资料:
2.5代指纹追踪技术—跨浏览器指纹识别
还有一个指纹生成工具:
http://uniquemachine.org/
大概原理应该就是这样,关键技术就在于这个指纹识别了。
网友评论