App渠道来源追踪方案全面分析(iOS/Android/鸿蒙)

一、App 渠道来源追踪概述

渠道来源统计/追踪,其原理都可以称之为归因,归因是用于判断用户在什么原因、什么时间、什么场景下载了 App,以及打通他们在激活 App 后进行的一系列操作(比如注册、付费、加购等)。

渠道来源追踪的实现场景:
我们以某 App 推广为例,渠道 A、B、C 分别对应三个不同的 web 网页,三个 web 网页访问时采用同样的重定向操作,都可以跳转到该 App 的应用商店,并将三个 web 页面投放到不同的推广渠道,比如:

  • 添加到不同的三篇文章中,将三篇文章转发到各个平台引导下载,用户通过哪篇文章下载的,都能追踪到其效果。
  • 分发给不同的推广团队,团队不管是拿去地推也好,活动拉新也好,都能分析到各自拉新引流带来的贡献程度。
  • 转化成二维码,将生成的二维码贴在售卖产品的包装上,分销于不同的店铺,用户在哪里买的产品,那么就是从该产品引导下载安装的 App。

具体的流程如下:

  1. 用户通过点击链接或者扫码访问,会先跳转访问一个 web 网页,web
    网页加载时,会将当前用户设备的部分所需信息,比如设备唯一标识、系统版本等上传给服务器。
  2. 与此同时,页面也会重定向跳转至应用市场,用户在应用市场下载安装该 App。
  3. 安装成功后,用户首次启动 App。
  4. App 在启动时,会自动获取当前用户设备的信息,比如设备唯一标识、系统版本等上传给服务器。
  5. 服务器将第 1 步接收到的设备信息与第 4步发过来的设备信息进行对比,如果能匹配得上,则表明这次安装时由对应渠道链接引导安装的,如果匹配不到,则默认为是自然流量安装。

在这里插入图片描述

理论上以上方案是可行的,但是实际操作时面临的难题却非常多,比如:H5 渠道推广是获取不到设备号的,并且由于 iOS 和安卓多轮迭代,在 web 端实际上已经无法获取过多的设备唯一标识,只能用一些模糊匹配,比如获取设备的 IP、UA、手机型号等,但这些标识都是会变化的。

Android 方法限制:

**IMEI:**国际移动设备标识码,曾经最靠谱的 IMEI,在 Android 10 后禁止获取。

**Android ID:**一种半永久标识符,缺点是系统重置或刷机后会发生变化。并且在 Android 8.0 以后,签名不同的 App 所获取的 Android ID 是不一样的,而如果在 CPI 广告等场景下,就需要唯一标识一台设备,此方案也就不那么有效。

**OAID:**匿名设备标识符,移动安全联盟用于替代 IMEI 的方案,目前只有华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等设备厂商在逐步支持,缺点是一些旧版本设备没有更新,并且不仅需要第三方工具能够支持,还需要广告投放平台能够支持回传 ID 信息才有效。

iOS 方法限制:

**IDFA:**属于 iOS 的设备号,是唯一标识号,但苹果一直在对 IDFA 做各种使用限制,iOS 10 提供了 Limit Ad Tracking,用户可以在设备设置里主动关闭 IDFA,误差就基于有多少用户关闭了这个按钮。iOS14 以后,App 在访问用户设备的 IDFA 之前,会弹出授权框给用户,必须获取用户授权才能使用,增加了用户拒绝的风险,以后 IDFA 方案准确度会更低。

**iTunes Connect App 分析:**苹果官方统计功能。只需要在 iTunes Connect“App 分析”的“来源”中点击“营销活动”,右上角有个“生成营销活动链接”,进入后就能自定义设置对应的唯一标识,给每个渠道生成专属的渠道链接。将生成的活动链接,用于实际用途中,当访问该链接跳转的 AppStore,则便会统计到具体的营销活动中。

在这里插入图片描述

但缺点也很多,比如:
1、只有当营销活动启动后超过一天时间(最长 72 个小时)后才能显示相关数据;
2、至少有 5 个 App 安装量(需要 5 个不同的 appID,首次下载该 App)归因于此营销活动时,营销活动才会在“App 分析”中显示;
3、iOS 8.0 及以上版本的用户可以选择是否将自己的应用使用情况的数据发送给 Apple;
4、iTunes Connect 的统计无法同时兼容 Android 和 iOS,采用不同的统计方法可能会让数据统一性较差。
5、只做下载统计,后续 App 打开以及用户在 App 内的操作行为,就无法获取。

方案实现:

想通过 web 端进行归因统计,最主要的点在于如何获取设备的唯一标识,安卓常用的 ID 有 IMEI、Android ID 等,iOS 则是 IDFA,这些在网页端目前都存在大量限制,所以只能通过获取其他信息,进行加密规则,产生一个唯一标识。

目前 web 端能够获得的设备信息包括:设备指纹,屏幕宽高、设备像素比、操作系统、操作系统版本、IP 和时间戳等。

这些信息信息只能在小范围推广,比如面向个人用户时区分一定程度的不同设备,但是真正做大范围推广时,由于同类型设备较多,准确率会大大下降。

二、接入第三方工具

自己捣鼓方案存在太多不确定性,比如方案精准度不够,而且沉没成本和维护成本都不是一般公司能承担的。参考国内一些专精渠道来源追踪的第三方公司,按照年收费标准大概一个月几百块,优点是精准度高(方案比较成熟),稳定性较强(有 24 小时的更新和维护),也适用于 App 端(iOS/android/鸿蒙)和 web 端,还适用于多种开发框架。

接入第三方工具的话,App 端和 web 端都需要接入相应的 SDK,用于传递参数、统计 App 的行为等分析。

这里以集成 openinstall 为例实现步骤:
1、在 openinstall 开发者平台创建应用,每个应用会默认生成唯一的 AppKey。

2、App 端(iOS/android/Harmony)SDK 集成。
由于 openinstall 采用零配置方案,并自动生成集成代码,开发者只需根据集成文档按步骤点击下一步,几分钟便可完成 SDK 集成。

3、测试阶段上传 ipa/apk 包,正式使用时配置应用市场的下载链接即可,上传安装包时,会自动读取应用的基础信息,比如包名等,上传完成就可以在线模拟测试,体验完整的 App 安装/拉起流程,待对外正式发布时,配置相应的应用市场地址即可。

4、在线测试
集成完毕并上传 apk/ipa 安装包后,可先使用 openinstall 提供的在线测试功能,确保 App 安装后能正确还原输入的动态参数,能正常的拉起 App。

在这里插入图片描述

5、Web SDK 集成
经过在线测试确认 sdk 集成正确的情况下, 开发人员可以开始在 web 分享页/渠道页上集成 openinstall web api,同样只需简单的复制粘贴即可。

6、添加渠道
将已经集成 web SDK 的公司网页添加到 H5 渠道管理这里,填写自定义 URL 的落地页,添加完成就生成一个渠道管理项,通过打开链接或者扫描二维码下载,就能实现渠道统计了。

在这里插入图片描述

在 App 启动安装时将自动获得渠道相关参数信息,可以通过接口发送给我们的服务器绑定渠道,做数据统计分析。

采用 openinstall 的 SDK,在 Web 端的归因统计数据更为准确,经过测试验证,同一台设备,通过不同的渠道链接或者 Web 网页链接访问并下载的 App,他们对该设备的唯一标识是一样的,即使切换无线网络和移动数据。

openinstall 基本原理

openinstall 的核心价值在于,帮助 Android/iOS 开发者精确的获取 App 每一次安装的分享(或推广)来源。

大致原理如下:

在这里插入图片描述

如今想要自建渠道来源追踪方案是比较困难的,毕竟移动端系统割裂程度大,隐私保护政策也是三天两头在调整,导致各种标识和方法经常迭代,自行打造一套高准确度的方案成本太高,如果预算充足可以采用第三方工具来一步到位,不必重复造轮子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466020.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

参数跟丢了之JS生成器和包装器

如需转载请注明出处.欢迎小伙伴一起讨论技术. 逆向网址:aHR0cHM6Ly91bmlvbi5qZC5jb20vcHJvTWFuYWdlci9pbmRleD9wYWdlTm89MQ 跟踪接口:aHR0cHM6Ly9hcGkubS5qZC5jb20vYXBp 跟踪参数:h5st 本文目标:记录学习下自定义的生成器和包装器,不做具体的参数加密逻辑分析 直接启动器进…

Redis集群——针对实习面试

目录 Redis集群Redis集群解决了什么问题?Redis集群是如何分片的?什么是Sentinel?Redis如何使用哨兵(Sentinel)系统?集群如何进行故障转移?Redis集群中的主从复制模型是怎样的?Redis集…

【种完麦子,我就往南走,去西双版纳,过个冬天!】

麦子奶奶:冰哥,你好。 大冰:你好,咱俩不定谁大呢。 麦子奶奶:嗯,我大,我60多了,你各方面都是哥。 大冰:阿姨好 麦子奶奶:我想出去看看祖国的大好河山&…

长亭那个检测能力超强的 WAF,出免费版啦

告诉你们一个震撼人心的消息,那个检测能力超强的 WAF——长亭雷池,他推出免费社区版啦,体验地址见文末。 八年前我刚从学校毕业,在腾讯做安全研究,看到宇森在 BlackHat 上演讲的议题 《永别了,SQL 注入》 …

Elasticsearch+kibana+filebeat的安装及使用

版本7.6.0 自己去官网下载或者私信找我要,jdk是8版本 1.ES安装 网上有好多安装教程可以自己去搜索 这个是我的es文件路径: { “name” : “node-1”, “cluster_name” : “elasticsearch”, “cluster_uuid” : “NIepktULRfepkje3JHw8NA”, “ve…

NVR小程序接入平台/设备EasyNVR多品牌NVR管理工具/设备汇聚公共资源场景方案全析

随着信息技术的飞速发展,视频监控已经成为现代社会安全管理和业务运营不可或缺的一部分。特别是在公共资源管理方面,视频监控的应用日益广泛,涵盖了智慧城市、智能交通、大型企业以及校园安防等多个领域。NVR小程序接入平台EasyNVR作为一款功…

ThingsBoard规则链节点:RPC Call Reply节点详解

引言 1. RPC Call Reply 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 设备控制 3.2 状态查询 3.3 命令执行 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台,提供了设备管理…

【论文复现】基于图卷积网络的轻量化推荐模型

本文所涉及所有资源均在这里可获取。 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐、摄影的一位博主。 📗本文收录于论文复现系列,大家有兴趣的可以看一看…

sql数据库-DQL-基本查询

目录 举例表emp 查询多个字段 查询整张表所有数据 给字段名起别名(更方便阅读) 去除重复的数据 举例表emp 查询多个字段 SELECT 字段1,字段2,字段3...FROM 表名; 举例查询emp表中的name,workno,age字段返回 查询整张表所有数据 …

OpenCV通过指针裁剪图像

OpenCV 中mat 格式的像素数值都是连续排列的。为了深入了解cuda 编程。我们来写一个简单的小程序测试一下。 1 不裁剪 cv::Mat crop_image(int(height), int(width), CV_8UC3, image.data);2 只保留图像1/3 cv::Mat crop_image(int(height/3), int(width), CV_8UC3, image.da…

Perforce《2024游戏技术现状报告》Part2:游戏引擎、版本控制、IDE及项目管理等多种开发工具的应用分析

游戏开发者一直处于创新前沿。他们的实践、工具和技术受到各行各业的广泛关注,正在改变着组织进行数字创作的方式。 近期,Perforce发布了《2024游戏技术现状报告》,通过收集来自游戏、媒体与娱乐、汽车和制造业等高增长行业的从业者、管理人…

软件测试面试题及答案

以下是软件测试相关的面试题及答案! 1、测试分为哪几个阶段? 一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试 2、软件测试的流程是什么? 需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时…

Python实例:爱心代码

前言 在编程的奇妙世界里,代码不仅仅是冰冷的指令集合,它还可以成为表达情感、传递温暖的独特方式。今天,我们将一同探索用 Python 语言绘制爱心的神奇之旅。 爱心,这个象征着爱与温暖的符号,一直以来都在人类的情感世界中占据着特殊的地位。而通过 Python 的强大功能,…

TypeError: can‘t multiply sequence by non-int of type ‘float‘

通过python程序编写excel表格中的数据,在计算数值时出现数值类型错误: TypeError: cant multiply sequence by non-int of type float 问题分析: 读取的Excel文件中的单元格数据,读取的数值有可能不是数值类型,而是含…

行业人才缺口达百万,无人机“飞手”之渴如何解?0基础无人机学习技术详解

针对无人机“飞手”行业人才缺口达百万的问题,以下是对如何缓解这一缺口以及0基础学习无人机技术的详细解析: 一、缓解无人机“飞手”人才缺口的方法 1. 产教融合: 通过校企合作、产教融合等方式,培养具备实战能力的无人机“飞手…

D60【python 接口自动化学习】- python基础之数据库

day60 数据库定义 学习日期:20241106 学习目标:MySQL数据库-- 128:数据库定义 学习笔记: 无处不在的数据库 数据库如何存储数据 数据库管理系统(数据库软件) 数据库和SQL的关系 总结 数据库就是指数据…

React中类组件和函数组件的理解和区别

react代码模块分为类组件和函数组件。 从语法和定义、内部状态管理、生命周期、性能、可读性和维护性、上下文、集成状态管理库等角度对比React中类组件和函数组件。 1、语法和定义 类组件: 使用 ES6 的类(class)语法定义的 React 组件。…

苹果 CMS 原生 Java 白菜影视 App 源码

源码介绍 苹果 CMS 原生 Java 白菜影视 App 源码是一款功能强大的影视应用程序,支持画中画、投屏、点播、播放前广告和支持普通解析等多种功能。与萝卜 App 源码相比,该套源码更加稳定,且拥有画中画投屏和自定义广告等功能,提高了…

三菱MR-J4-B系列伺服参数一览

要点 与伺服系统控制器连接后,同服系统控制器的伺服参数的值即被写入各参数中。根据伺服系统控制器的机种和伺服放大器软件版本及MRConfigurator2的软件版本,存在无法设定的参数或范围。详细内容请参照伺服系统控制器的用户手册。请使用MR Configurator2…

做遥感算法?GIS开发?新型测绘?哪个专业更注重编程能力?

遥感、地信、测绘三大地理行业,编程能力的重视程度各有不同: 遥感:编程服务算法 遥感行业通常与卫星、航空摄影和无人机等技术密切相关,遥感对编程的要求更多注重AI算法、机器学习、大数据等方面,包括神经网络,高斯过…