需求概述

我们现在有一个需求,某一个活动需要拉新所谓的拉新一般是推App下载,这个用户通过这个活动下载了App后,我们需要做到【在数据库中记录这个用户下载这个App是通过那个二维码渠道的,从效果上说,我们期望:

① 每个活动(渠道)在数据表中有一条记录,而一旦有经过该渠道下载的App被打开后,该渠道的下载量会+1,算KPI的(单独一条记录,带有时间戳)

② App首次打开时,如果检测到了渠道上报后,还应该为该App打上一个全局的渠道标志,后续的所有请求都应该将此参数带上,为后续产生订单以及流水做准备

比如之前我们为H5与Server的Ajax请求约定的是这样的:

 var param = {
//公共参数
common: {
us: '渠道',
version: '1.0.0'
},
other: '' // 业务参数
};

每次请求就必定会带上业务参数,而us就是native需要带的渠道参数,当然native的公共参数比前端多的多,需求明确后,我们清理下iOS引导至App Store的一般流程。

这边的一般流程是,我们一个App活动,或者我们一次推广,一般来说都会用微信打开这个网址,这个是前提一:

① 我们的一次下载来源于一次活动(推广或者固定的下载地址),而微信是主要的打开设备

然后,我们要引导至App Store,一般来说会访问一个H5页面(在微信中会引导在Safari浏览器中打开),然后由H5下载落地页跳到App Store完成下载,这个是第二个前提:

② 我们每次是由一个统一的带渠道因子的H5页面,引导至App Store的

在上述基础上,我们期望:有一个唯一的H5引导下载落地页(这里基本会抛弃微信应用宝引导下载了)

这里初步的实现方案是:

打开H5落地页时候,将这次活动的渠道号以及ip+ua+时间戳传给server端记录,如果在一定时间内,机型和ip成功匹配,则认为这次下载来源与这次渠道号

这里需要:

① Server端,提供一个接口,记录当前渠道+ip+ua+时间戳+屏幕信息(所有能记录的都记录),提供一个渠道匹配判断标志

② H5访问落地页的时候上报相关信息

③ Native首次打开的时候,调用native提供的判断接口,给该次App打标志

这里提出了三个要素:

① H5落地页

② server上报接口

② server检查接口

而这种方案是不精确的,H5如果能拿到设备号这类唯一标识的话,便能大大提高准确性,然后无论微信jsdk或者Safari都是做不到的,而网上搜索的方案,提到了一个SFSafariViewController,似乎能达到共享cookie的作用,于是进行了一番探索。

SFSafariViewController

我们调研下来,在我们的场景下,大概是这么一个情况:

① 我们使用Safari打开一个页面,并且操作cookie

② 在我们的App中,SFSafariViewController这个库能打开一个我们给予的Url,并且这个网页如果和上面是一个域名cookie是共享的

这个就很有意思了,我们就完全可以这样做了:

① 访问H5下载落地页访问接口上报时,Server往cookie种入唯一标识而后引导至App Store

② App首次打开时,以隐藏状态打开上报页面,因为同域名,会将Safari的cookie带上,这里也会带上IP等标识

③ Server打标签,如果判断有cookie或者ip匹配则返回相关渠道

④ H5检查页,使用Hybrid交互,告诉native给该App打上标识

let vc = SFSafariViewController(url: URL(string: "http://domain.com/landing.html")!)

这里方案确定,然后开始落地实施试试情况,后续在数据展示一块以友好的方式展示出来,便是大数据的一环

参考文章:https://www.sensorsdata.cn/blog/analyze-distribution-channel-of-ios-app/

【数据标识】iOS App下载渠道的统计需求的更多相关文章

  1. iOS APP下载安装时,如果出现此时无法下载安装APP的字样时,一些解决思路

    1.在iosAPP下载安装时,如果出现此时无法下载安装APP的字样时,可能是苹果系统进行了支持更新,并需要我们确认条约.至于如何判断是否是苹果系统进行了更改,只需要我们进入开发者账号,进入我的账户(A ...

  2. ios app下载跳到itunes

    <body class="box"> <div class="text"> <a href="https://itune ...

  3. 统计iOS产品不同渠道的下载量

    如何统计iOS产品不同渠道的下载量? 一.前言 在开发过程中,Android可能会打出来很多的包,用于标识不同的商店下载量.原来觉得苹果只有一个商店:AppStore,如何做出不同来源的统计呢?本篇文 ...

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

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

  5. 如何统计iOS产品不同渠道的下载量?

    一.前言 在开发过程中,Android可能会打出来很多的包,用于标识不同的商店下载量.原来觉得苹果只有一个商店:AppStore,如何做出不同来源的统计呢?本篇文章就是告诉大家如何做不同渠道来源统计. ...

  6. APP开发:对于IOS APP应用的推广渠道有哪些?

    亿合科技了解到,随着移动互联网时代的到来,苹果从2007年进入中国市场,一直备受大众喜爱,手机应用也层出不穷.那么对于那么多的IOS APP应用怎么能获得用户的喜爱呢?于是推广APP应用是需要做的,亿 ...

  7. 利用 Charles Proxy 下载旧版本 iOS App

    一.软件准备 1.旧版本 iTunes1.IPSW Downloads:https://ipsw.me/2.百度网盘链接: https://pan.baidu.com/s/1PO9Z12o-rqZ_J ...

  8. IOS如何下载旧版本应用APP

    前言 文章相对来说比较复杂,特别是查找版本ID对应的步骤,这里推荐使用另一种方案,操作起来更简单. 本文介绍如何使用Workflow及Fiddler下载IOS旧版本APP应用. 实现原理 通过Work ...

  9. 大数据技术之_25_手机APP信息统计系统项目_01_APP 数据生成模块 + 数据收集模块 + 数据处理模块框架搭建 + 业务需求处理 + 数据展示模块 +项目总结 + 问题总结

    一 项目概述1.1 角色1.2 业务术语1.3 项目效果展示二 项目需求三 项目概要3.1 项目技术架构3.2 项目目录结构3.3 项目技术选型3.4 项目整体集群规划3.5 创建项目工程四 APP ...

随机推荐

  1. 华硕A450c详细清灰拆机教程

    很久都想写点东西,但又无从下笔. 上次把自己的笔记本清了灰,这次有时间就整理一下,随便作为我的第一次随笔. 准备:笔记本(我的是华硕A450c),拆机工具(螺丝刀等) 温馨提示:要慢点 1,先翻开笔记 ...

  2. Cell.reuseIdentifier 指什么

    Cell.reuseIdentifier 指的是 默认为空,如果不定义,在执行 [_tableView registerNib:templateCellNib forCellReuseIdentifi ...

  3. 如何在Eclipse中配置python开发环境

    考虑到网上关于Eclipse中配置Python开发环境的文章千篇一律,故写此文以总结. 本文主要内容是:三种Pydev配置方法和一种PyDev卸载方法. 本文的前提是你已经安装了Eclipse和pyt ...

  4. 1.1.2.托管对象模型(Core Data 应用程序实践指南)

    托管对象模型即对象图,可以看成实体类的描述,规定了数据字段. 要想创建托管对象模型,需生成NSManagedObjectModel类的实例.

  5. html <select> 用JS控制默认选中项

    <html> <head> <!--禁止页面缓存--><meta http-equiv="content-type" content=&q ...

  6. Frameset使用教程

    frame,是网页开发必须掌握的知识.例如后台架构.局部刷新,页面分割,都是frame的用途表现,尤其是后台页面制作,使用frame会给用户带来非常舒适的使用感受. frame知识点包括(frames ...

  7. js原生拓展网址——mozilla开发者

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript https://developer.mozilla.org/zh-CN/docs/Web ...

  8. php生成PDF文件(FPDF)

    首先要下载FPDF http://www.fpdf.org/  附件可以在我的资源里下载http://yunpan.cn/c3RJ5BpPfX6dL  访问密码 f1f2 FPDF文档:http:// ...

  9. Spring 使用context:annotation-config的设置

    Spring 使用context:annotation-config的设置: 还是需要声明Bean的,并且还可能自己定义Annotation: xml: <?xml version=" ...

  10. 触摸滑动插件 Swiper

    Swiper Swiper  是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端. Swiper中文网里已有详细的使用介绍,我就不多做介绍了. http://www.swiper ...