本文来自网易云社区

作者:马军

IOS,安卓渠道追踪的差异

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

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

IOS的渠道分发途径

IOS的渠道分发都是跳到app store下载,而app store并不会提供太多的信息,虽然在ITC中也在下载链中增加CT来进行分析。对追踪的 下载的流程不外乎下载页->app store下载页面->打开app激活,因最终的安装包都来自app store,在安卓中常用的在app中增加渠道号的方式就不可用了。

目前IOS追踪一般采用以下几种方案

  1. 通过IDFA来追踪。这种方案一般使用在App里面打开下载链接这种推广方式。这种方式需要先在提供下载链接的渠道app中收集IDFA,在下载安装后,启动app的时候再次上传IDFA,两者进行比进行验证渠道信息。

流程大概如下

但这种带来的局限性也显而易见,分发渠道只限于app,不适用网页或微信中的下载渠道。需要和第三方的渠道商进行接口开发,也会增加开发的成本。另外IDFA的变化也会导致部分信息丢失。

  1. 通过模糊匹配的方式进行追踪。

针对网页中的下载链接,虽然拿不到IDFA,但可以获取safari的UA和IP地址,获取UA 中的OS,浏览器版本,机型,IP以及登录时间。在下载之后另外在App侧也需要上传UA信息和Ip到服务端,和之前的信息进行比对,再结合访问的时间可以大致识别一些用户的来源。大致流程如下

但这种方式的局限性也显而易见,大量用户的准确性不高,另外对于同一出口IP的误差就更大。

3,通过cookie的方式来进行追踪

IOS新增了一个控件SFSafariViewController,这个控件增加了很多新的特性,但关键的一点是可以跨app与safari共享cookie。这给我们带来一个新的思路,可以利用safari与appp相同的cookie来识别不同的渠道信息。 具体的流程如下:

基本的原理是用户在使用safari打开下载地址时候,将渠道信息写入到cookie。当用户下载安装app,启动app的时候,在app里面使用SFSafariViewController访问同一地址,系统匹配两次cookie来追踪渠道。

此种方式比较准确,局限性也显而易见,只支持IOS9以上的。但目前IOS9以上的设备已经覆盖了8成以上的用户,对于剩下的用户,可以使用上面另一种方式进行补充了

本文来自网易云社区,经作者马军授权发布

相关文章:
【推荐】 【专家坐堂】四种并发编程模型简介

IOS渠道追踪方式的更多相关文章

  1. iOS渠道追踪统计方法大全

    说起 iOS 的渠道统计,不少人会想到苹果官方的 App 分析功能(iTunes Connect),但实际操作中我们会发现,这个服务的统计维度还不够全面,许多广告主和运营人员更关心的是各个推广渠道实际 ...

  2. iOS渠道分包2种模式之包内注入文件分包

    解决问题:商业模式中会存在这样的形式1款app需要不同的运用团队(工会)去分包推广,谁推广的包下载的人数都会在服务器记录,不同渠道的标示唯一来区分. iOS渠道分包模式有两种 一.IDFA模式 IDF ...

  3. iOS页面传值方式

    普遍传值方式如下: 1.委托delegate方式: 2.通知notification方式: 3.block方式: 4.UserDefault或者文件方式: 5.单例模式方式: 6.通过设置属性,实现页 ...

  4. iOS数据持久化方式及class_copyIvarList与class_copyPropertyList的区别

    iOS数据持久化方式:plist文件(属性列表)preference(偏好设置)NSKeyedArchiver(归档)SQLite3CoreData沙盒:iOS程序默认情况下只能访问自己的程序目录,这 ...

  5. iOS -数据持久化方式-以真实项目讲解

    前面已经讲解了SQLite,FMDB以及CoreData的基本操作和代码讲解(CoreData也在不断学习中,上篇博客也会不断更新中).本篇我们将讲述在实际开发中,所使用的iOS数据持久化的方式以及怎 ...

  6. IOS 网络请求方式

    iOS开发中的网络请求   今天来说说关于iOS开发过程中的网络请求. 关于网络请求的重要性我想不用多说了吧.对于移动客户端来说,网络的重要性不言而喻.常见的网络请求有同步GET, 同步POST, 异 ...

  7. IOS以无线方式安装企业内部应用(开发者)

    请先阅读:http://help.apple.com/deployment/ios/#/apda0e3426d7 操作系统:osx yosemite 10.10.5 (14F1509) xcode:V ...

  8. iOS 加锁的方式

    iOS多线程编程中,经常碰到多个线程访问共同的一个资源,在线程相互交互的情况下,需要一些同步措施,来保证线程之间交互的时候是安全的.下面我们一起看一下学一下iOS的几种常用的加锁方式,希望对大家有所帮 ...

  9. 最新iOS砸壳方式Frida (Mac OSX)

    1. 安装Frida 首先需要安装Python3,我下载的是 macOS 64-bit installer 安装,因Macbook本机自带python为2.7.x,故需要配置~/.bash_profi ...

随机推荐

  1. Selenium Webdriver——Table类封装

    WebTable.java import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebEl ...

  2. MVC中@Html.Action的用法

    MVC项目中如果有公共部分的代码就可以单独拿出来作为控件来用(比如头部和底部代码).跟ASP.NET中的ASCX实现的效果一样,但MVC比它方便的多. 想要实现该效果,需要知道@Html.Action ...

  3. avalon新一代UI库发布

    任何前端框架,尤其是国内的,想推广开,必须有一个UI库,光是一个核心库当光头司令是不行的.此外还有一个小圈子,供大家遇到问题时可以发问,一起完善.自从avalon嫁入"去哪儿网"后 ...

  4. 迷你MVVM框架 avalonjs 0.96发布

    本版本主要是性能优化与 fix BUG,改进如下: 处理notifySubscribers中的BUG,它在标准浏览器不会移除那些无用的视图刷新函数.详见这里 重构modelBindling.SELEC ...

  5. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path问题的解决

    这个问题的解决有二种解决办法: 1.加apache tomcat的运行环境即可 选中项目点击右键 以上这种做法是在eclipse中的做法 2.如果是maven工程,还可以采用maven做法 就在这个工 ...

  6. aws代理

    ssh -i ~/.ssh/seoul-notification-dev.pem  ec2-user@52.79.58.125ssh -CqTnN -D localhost:7080   -i ~/. ...

  7. Docker配置mysql互为主从

    配置准备 两台机器 两台机器:A(193.168.10.101)  B(193.168.10.102) 做好ssh免密登录 mysql大版本需要一致,小版本可忽略 并且两台机器已经安装好了docker ...

  8. 可用于nodejs的SuperAgent(ajax API)

    简单示例: import request from 'superagent';//引用声明 request.post(api) .withCredentials()//跨域 .end((err, re ...

  9. thymeleaf 获取项目路径

    <p th:text=${salecode}></p> <a th:href="${#httpServletRequest.getScheme()+'://'+ ...

  10. git 本地忽略某些个文件

    git update-index --assume-unchanged <要忽略的文件> git update-index --no-assume-unchanged <要取消忽略的 ...