一、广告归因概述
随着安卓版本的变化,许多用于广告归因的数据优先级也产生变化,尤其2020年安卓10版本开始无法获取imei 。
所谓广告归因,是指投入到广告平台(如头条)所带来的用户的设备匹配,通常是以用户在广告平台上的点击事件与安装我方应用后首次打开的激活事件,作为匹配标准。对于广告平台和我方应用,两个不同厂家之间的用户进行匹配,则需要一个双方一致的设备参数作为媒介。基本流程为:
1、我方后台根据广告平台的文档,制作填写广告短链,市场人员投放广告;
2、用户在广告平台点击事件;
3、广告平台发送含用户设备信息的广告短链到我方后台,我方后台保存相关信息;
4、用户下载并安装我方应用,我方读取用户设备信息;
5、我方(激活)设备信息与广告短链(点击)设备信息,进行查询匹配,若有匹配的设备参数,则为该广告带来的用户;
广告短链示例:
https://api.myhost.com/ad/toutiao/click?adkey=asdfjkl&adid=__AID__&imei=__IMEI__&mac=__MAC__&androidid=__ANDROIDID__&ip=__IP__&oaid=__OAID__&os=__OS__&ts=__TS__&callback=__CALLBACK__
其中可用于广告归因的参数有:设备IMEI、手机网卡MAC地址、安卓ID、IP地址、中信院搞的OAID
二、安卓标识参数的功能性对比
安卓ID:安卓8开始,不同应用取得的安卓ID不再相同,只有安卓7或更老的设备可以用安卓ID来作广告归因。
IP地址:所有版本手机均可获取,但因同一wifi,所有设备的外网IP都相同,还有可能用户会切换网络,路由器多出口IP切换等;导致IP不一致,误差较大,应作为最后的补充匹配。
IMEI:安卓10以前可用,需要用户授权,安卓10版本开始不可用,还需其他补充方案。
MAC地址:看代码兼容性,有的广告平台,获取不到高版本安卓的MAC地址,虽然我们自己的应用可以读取全版本安卓的MAC。
OAID:中信院联合国产手机厂商推出的,用于解决高版本IMEI无法使用的问题,可与IMEI作互补方案,2020年各大广告平台都提醒开发者增加OAID作为归因数据(注意:海外手机没有OAID)。OAID策略类似于苹果的idfa,手机用户可以重置或关闭。
小提示:安卓11的限制是,/Android/data 文件夹无法读写
最后我们采取的方案是,以优先级按顺序匹配,IMEI > OAID > MAC > ANDROIDID > IP,如果都没有匹配上,则为自然量。
三、投放分包
我们每个渠道每个投放人员都有一个独立的游戏包,用于区分数据。如果用传统方法打包,每次出包都要打几十个投放人员的分包,显示效率很低,那有没有更好的方法呢?
当然是有的,众所周知,APK文件本质其实是一个压缩包。每个包里做一个标识文件,每个人员的包只要放置一个不同的标识文件(如 META-INF/mych_123_toutiao ),安卓代码里就可以用此标识文件区分不同的人员包。
但是某些应用设置的签名安全性比较高(约2019年开始),签名后修改包内文件内容,会导致签名失效,apk无法安装。我们需要另外方法来放置标识。
正如前面所说APK的文件是一个压缩包,而压缩包正好有一个特性,就是可以添加压缩包注释。我们应用在安装后,可以读取此包注释作为不同人员包的区分标识。
另外注意:360压缩添加的注释会多带一个不可见的结尾字符,调试时建议使用winRAR添加,或自己写代码脚本添加。