iOS 渠道追踪原理与实现

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 接口对应的事件中,同时也会把渠道信息自动设置到用户属性中。

具体流程如下图所示: 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,980评论 3 119
  • 为了赶在中午十二点之前上学而思,儿子和我约好十点起床,结果一觉醒来已经十一点零五分。周末的一天往往就是从中午开始的...
    原疯不动阅读 193评论 0 0
  • 最近,工作比以前忙了很多,明显感觉时间不够用了,每天都会有很多想要学习的内容没有学习,造成了一定程度上的焦虑。 古...
    snailwww阅读 178评论 0 2
  • 今年,最火的宫斗剧无疑是《延禧攻略》,暑假里看到表妹追剧时我还不屑地说,宫斗剧都是千篇一律,女主也不出名,剧集太长...
    秋秋心语阅读 1,357评论 1 1
  • 作者/兰露儿 1 出发 有一个神奇的想法突然从洋洋的脑袋里冒出来,在某一个地方肯定有一所蛋的形状的房子,不是纯粹的...
    兰露儿阅读 556评论 0 4