安卓邀请追踪技术和iOS渠道追踪和来源统计的几种原理 - neveraway1993的博客 - CSDN博客

在开始之前,我们先来看看安卓的渠道统计。Google官方的应用商店Google Play在国内一直是无法使用的状态,所以国内的安卓App分发,都是依托数十个不同的应用市场或发行渠道,如百度、360、腾讯等互联网企业以及小米、华为、魅族等手机生产商。对于安卓App的渠道追踪,主要是围绕上面这些大的渠道来进行,并且这些渠道自己一般也会提供非常详尽和周全的数据分析给应用开发者。

iOS的发行渠道则与安卓有很大的不同,除了少数越狱的机器之外,大部分用户的App都是从App Store下载的。iOS的“渠道”其实通常是指那些在其它App或者网页内部,提供到AppStore的链接的页面。因此,在iOS中追踪发行渠道,主要是追踪进入App Store相关页面的渠道信息。

但iOS的渠道追踪面临着一道无法逾越的鸿沟。正因为iOS的渠道分发都有跳转到App Store这一步,而Apple本身是不会提供太多信息给开发者,所以,对于整个流程的三个步骤:在某个渠道点击下载链接并跳转到App Store ---> App Store内下载App --->用户激活App,这其中的第二步,开发者无法获取相关信息,所以,没有办法精确地追踪一个用户在这三个步骤中的完整轨迹,也即没有办法精确地衡量渠道的具体推广效果。同时,安卓渠道效果分析中,常见的对于不同渠道打不同包的方案,在iOS分发时也是不可行的。

对于iOS的困境,该如何解决呢?现在市场上大概有以下三种方式:

通过IDFA进行追踪:这个方案一般用在App里面打开下载链接这种推广方式。基本的方案是,推广渠道的App(例如微信),会详细记录哪个IDFA点击了待推广App(例如聚美)的链接(或是在微信中嵌入SDK去记录),而聚美本身,也会记录具体的哪个IDFA激活了聚美App,两者都将记录下来的IDFA上传至指定的服务器,进行对比,即可确定下载来源。在用户不重置系统,不还原广告的情况下,这种方式精准度比较高。

通过模糊特征匹配的方式来进行追踪:点击下载链接,会跳转到appstore页面,这个过程会触发一个服务端的请求,服务器来记录这次点击的设备信息,包括ip地址、机型等。同时,被推广App这边,也可以记录用户激活App时机器的一些基本信息,并上传至服务器。结合下载和激活的时间差,再结合设备的IP地址和机型等信息,大概可以模糊地识别出同一个用户先点击了下载链接,再激活了App,从而确定下载渠道。这种方式的精确度较低。

通过SFSafariViewController进行追踪:iOS 9中新增的SFSafariViewController,这个类的API允许在app内打开一个safari浏览器,而不是一个app内部的webview。这个app内的safari和外面系统的safari是同一个,共享同一个沙盒,可以操作同一个Cookie,也就是说它可以跨App与Safari实现共享Cookie。

 基于SFSafariViewController控件,当用户在App中通过它打开渠道页面时,我们可以将渠道信息写入Cookie中,并设置生效时间。当用户安装并激活App后,再次使用SFSafariViewController上报激活信息,同时将Cookie中的渠道信息上传,通过匹配,便可确定下载来源。由于渠道信息保存在设备本地,因此匹配是100%准确的。

但是基于SFSafariViewController这种方式也有一定的弊端。首先,这个方案只能支持iOS9及以上版本的设备,大约占全部苹果设备的85%左右,覆盖了绝大部分用户,已经具有很好的分析价值了。但对于剩余的15%的用户,该方案无法满足。此外,对于目前业界主流的一些推广渠道,如微信、朋友圈,它们尚未在App中使用SFSafariViewController控件访问网页,因此这部分渠道也无法使用精准匹配的方案。

市面上的做法有的是上述三种方式单一出现,有的是两两组合,总之不管是通过哪种方式,这都是我们想象出来的间接的方式,只能说是尽量的去接近准确,但不能做到100%准确。在今年的4月15日,苹果低调发布了一项重大功能,开始提供渠道来源的数据,就以往而言,苹果仅开放有限的数据统计,很容易让从业人员在工作遇到窘境,我们该如何统计到来源渠道。而此次推出的用户来源统计,对App推广人员来说,无疑是一项重大举措。

关于苹果推出的这项功能,我会在另一篇文章中 http://blog.csdn.net/neveraway1993/article/details/72461438,详细介绍,欢迎大家前来探讨!


每次分享时生成一个带参数的url,只要想办法在app首次启动时恢复这个参数即可,恢复的方法大致有以下几种:

1.根据ip与user-agent中的设备信息做匹配,访问url时服务器记录ip与设备信息,app首次启动再去请求服务器匹配一次

2.ios9开始,可以利用cookie来跟踪,使用safari访问url时写入cookie,app首次启动时使用SFSafariViewController控件访问同一个域名,这个控件会将之前写入的cookie一并带给服务器

3.更暴力的方法,下载时将信息直接写入安装包中;android下生成一个新的apk;ios下可利用企业证书签名,通过ad-hoc分发的方式,实时生成一个新的ipa文件,不过自ios8开始,苹果对企业证书有了更严格的限制,用户体验不好

4.还见过更奇葩的android实现方法,下载apk时将参数放到apk本地文件名中(通过http头部,Content-Disposition:attachment;filename=xxxx),安装后启动app再去想办法读取这个下载记录,不过基本不靠谱



你可能感兴趣的:(安卓邀请追踪技术和iOS渠道追踪和来源统计的几种原理 - neveraway1993的博客 - CSDN博客)