1 iOS 与安卓的发行渠道的差异
Google 官方的应用商店 Google Play 在国内一直是无法使用的状态,所以国内的安卓 App 分发,都是依托数十个不同的应用市场或发行渠道,如百度、360、腾讯等互联网企业以及小米、华为、魅族等手机生产商。对于安卓 App 的渠道追踪,主要是围绕上面这些大的渠道来进行,并且这些渠道自己一般也会提供非常详尽和周全的数据分析给应用开发者。
iOS 的发行渠道则与安卓有很大的不同,除了少数越狱的机器之外(对于越狱,以及各种“助手”的发行渠道,本文暂时先不讨论),大部分用户的 App 都是从 App Store 下载的。iOS 的“渠道”其实通常是指那些在其它 App 或者网页内部,提供到 AppStore 的链接的页面。因此,在 iOS 中追踪发行渠道,主要是追踪进入 App Store 相关页面的渠道信息。
2 现有的 iOS 渠道追踪方案
正如前面所说,iOS 的渠道分发都有跳转到 App Store 这一步,而 Apple 本身是不会提供太多信息给开发者的。所以,对于整个流程的三个步骤:在某个渠道点击下载链接并跳转到 App Store ---> App Store 内下载 App ---> 用户激活 App 中的第二步,是一个完全的黑盒,所以,没有办法精确地追踪一个用户在这三个步骤中的完整轨迹,也即没有办法精确地衡量渠道的具体推广效果。同时,安卓渠道效果分析中,常见的对于不同渠道打不同包的方案,在 iOS 分发时也是不可行的。
目前,对于 iOS 的渠道追踪,业内一般有两种解决方案:
通过 IDFA 来贯穿第一步和第三步:这个方案只能用作在 App 里面打开下载链接这种推广方式。基本的方案是,提供下载链接,也即是作为推广渠道的 App(例如今日头条),会详细记录哪个 IDFA 点击了待推广的 App(例如某个手游)的链接,而手游本身,则会记录具体的哪个 IDFA 激活了手游 App,从而,可以用 IDFA 将用户的第一步和第三步贯通起来。但是,对于那些在腾讯微信、应用宝推广的 App,或者是在网页中增加下载链接的渠道,由于微信与各个浏览器(例如 Safari 等)都不会提供 IDFA 的获取接口,所以这种情况下是拿不到点击推广渠道的设备的 IDFA 的,方案也因此而不可行。
通过模糊特征匹配的方式来进行追踪:对于上面描述的第二种情况,虽然拿不到 IDFA,但是却是可以获取点击下载链接时的 User Agent 和 IP 的,根据 User Agent 可以获取一些与手机操作系统、机型相关的信息。同时,手游 App 这边,也是可以记录用户激活 App 时使用的机器的一些基本情况。所以,结合下载和激活的时间差,再结合设备的机型和 IP 等信息,可以模糊地识别出同一个用户先点击了下载链接,再激活了 App。对于一些用户量比较少的用户,这种追踪方案准确率还是比较高的,如 TalkingData 等第三方数据分析商就提供了此类追踪方案。
3 Sensors Analytics 的解决方案
前文中,我们描述了两种渠道追踪的方案,其中通过 IDFA 可以精准地追踪渠道的推广效果,与 Sensors Analytics 一直推崇的“精准分析”理念是一脉相承的。
而基于 IP、Date、UserAgent 的模糊匹配方案,可以覆盖所有设备及推广渠道,可以很好地弥补精准匹配方案无法覆盖的需求。
因此,结合两种方案,用户可根据需求选择不同方案,实现渠道追踪。
3.1 通过 IDFA 实现 App 内精准匹配(以今日头条为例)
3.1.1 实现原理
1)使用神策链接生成工具生成监测链接,并将链接放到今日头条的后台监测地址中进行配置。
2)配置成功后,当用户在今日头条 App 内点击该广告时,今日头条会把之前监测链接中占位符中的数据通过检测地址返回给神策,神策服务端将记录这些信息,比如 IDFA,utm_ 属性,IMEI,MAC Address ,同时也会记录今日头条回调 URL(CALLBACK_URL) 等信息。
3)当用户下载 App 并启动(需手动调用 trackInstallation 接口)时,客户端 SDK 会获取用户的 IDFA(iOS 端)或 IMEI(Android 端)然后传给神策服务端,服务端进行匹配。
4)匹配成功后会将之前记录的 utm_ 属性自动添加到调用 trackInstallation 接口对应的事件中,同时也会把这些 utm_ 属性自动添加到该用户的用户属性中。
5)匹配成功后,神策服务端会访问今日头条回调 URL,通知今日头条。
具体流程如下图所示:
3.1.2 操作步骤
1.使用 Sensors Analytics 渠道链接生成工具 生成监测链接,并将链接配置在今日头条后台:
下图为今日头条后台配置界面:
2.App 端开启 IDFA
由于 App 内推广是基于 IDFA 进行的精准匹配,所以项目中需要开启 IDFA。如果使用源码集成 iOS SDK,可在项目的编译选项 Preprocessor Macros 中定义选项 SENSORSANALYTICSIDFA=1 开启 IDFA;如果使用 cocoaPods 集成,在集成时可直接使用 pod 'SensorsAnalyticsSDK', :subspecs => ['IDFA'] 集成,该方式集成后将直接开启 IDFA。
3.App 端调用 trackInstallation 接口
在 App 启动时调用 Sensors Analytics iOS SDK 的 trackInstallation: 接口,传入事件名称和属性,iOS SDK 向 Sensors Analytics 的服务器上报数据,进行服务端渠道匹配。
3.2 通过 IP、Date 和 User Agent 实现模糊匹配
3.2.1 实现原理
1)使用神策链接生成工具生成对应的链接.
2)当用户点击链接之后会跳转到 App 的下载页,神策会记录用户的 IP、Date 和 User Agent 值,同时也会记录在链接生成工具中传入的广告信息(utm_ 属性)。
3)当用户通过该链接进入下载页面并下载 App,然后启动 App后(App在启动时需手动调用 trackInstallation 接口),App 端通过 trackInstallation 获取 IP、Date、User Agent ,并传给服务端进行匹配。
4)服务端将 App 端接收到的信息与之前保存的信息进行匹配,如果匹配成功,则把对应的渠道信息( utm_ 属性)自动加入调用 trackInstallation 接口对应的事件中,同时也会把渠道信息自动设置到用户属性中。
具体流程如下图所示: