问题描述:

同一个apk安装包下载地址,在被不同的推广链接安装到不同的手机后,自动区分安装所属的链接。

详细解释:

有两个人A和B要为http://127.0.0.1/sample.apk进行推广安装

A发送自己的推广链接http://127.0.0.1/sample.apk?id=a到好友x的手机

B发送自己的推广链接http://127.0.0.1/sample.apk?id=b到好友y的手机

x和y两个人的手机中安装sample.apk后进行识别自身属于A还是B的推广,从而对A和B进行推广奖励。

sample.apk运行时后程序内部并无异同参数进行识别。

————————————————

环境所面临的主要问题是,app在安装后,并不能知道自身是从哪个人的推广ID下发下来的。

在360的某个产品中,有一个推广送积分,分析后发现是一个浏览器指纹的方法,此方案在IOS系统中万无一失,统计准确,因为浏览器默认都是打开safari,而android中,统计的是chrome浏览器以及android自带浏览器,并且不能确认用户是否用了其他浏览器下载。即使统计全部浏览器指纹,由服务器去做比对分析,最后发现并不能使??浏览器后台访问,此问题还需要时间去好好分析编写一个demo测试??。

最后研究APK包,发现可以在zip文件的注释做一下文章来区分。

在zip包的末尾标记块的最后两个字符,是文件注释的长度,长度以后是明文字符串,可任意修改,不影响zip格式的解包,也不会影响apk的安装,apk安装后可以来读取这段数据来确认推广人ID。

当然,方案到了最后其实已经不能算是同一apk安装包的推广细分了,不过问题已经简化到比给每个推广用户生成一个渠道包要方便的多。省去了二次打包和签名的问题,当然还有一个最大的问题是存储的问题,因为如果有一百万人想要推广的话,我不能生成一百万份安装包存储在服务器中供用户下载。

昨天还在研究指纹问题的时候,联系了下友盟的工作人员,毕竟别人专业做统计,之前告诉我说有在做android这个功能,不过今天他们告诉我说,项目已经砍掉了,问了下实现方案,使用的IP匹配,不过这个应该比浏览器指纹更不靠谱吧,对方说大概80%的准确率。

并没有什么技术含量,如果有朋友知道android下的浏览器后台的具体细节,可以分享下。

原文:http://my.oschina.net/kings0527/blog/488668

android 渠道号怎么写,android无渠道号推广的细分统计相关推荐

  1. python调用android的接口_Python写Android接口一步到位

    最近想自己写 Android 的接口,之前学过一点 Python 基础,打算用 Flask 框架实现,请看下边 一.准备 PyCharm 编译工具 Mysql 数据库 Flask 框架和 SQLAlc ...

  2. android powermock,使用PowerMock写Android单元测试

    [TOC] 为什么用PowerMock 在写Android单测的时候,大家多为这几件事苦恼: 与Android API进行的交互,如何隔绝? 如何对private method/field进行mock ...

  3. android sd卡不可写,Android检查SD卡是否可读写

    因为external storage可能是不可用的,比如遇到SD卡被拔出等情况时.因此在访问之前应对其可用性进行检查.我们可以通过执 行 getExternalStorageState()来查询ext ...

  4. android 渠道打包工具,Walle —— Android多渠道打包神器

    图片只为致敬斯坦·李 Walle为了android多渠道打包而生的工具,废话不多说直接上用法 配置build.gradle 在项目的build.gradle文件中添加walle插件依赖 depende ...

  5. android调用完自己写的app之后如何返回原来的android应用_App逆向篇 神器之 Frida...

    说到逆向APP,很多人首先想到的都是反编译,但是单看反编译出来的代码很难得知某个函数在被调用时所传入的参数和它返回的值,极大地增加了逆向时的复杂度,有没有什么办法可以方便地知道被传入的参数和返回值呢? ...

  6. 用Kotlin写Android Gradle脚本

    Android应用开发中,离不开Gradle脚本的构建.大部分Android开发同学忽视了脚本的力量,甚至有很大一部分同学不知道Gradle脚本是什么,用什么语言编写的:当然,也有相当一部分同学知道G ...

  7. Android 置Activity全屏和无标题

    今天,实在没有什么好些写的内容,所以在网上找了很久,才决定写这个博客.比较简单,还是想保持写博客的习惯. 一.在代码里设置全屏. Activity设置全屏和无标题栏,要用到andorid.view.W ...

  8. 嵌入式Linux学习笔记—fastboot烧写Android

    本系列为本人在自学过程中的学习笔记,如有错误欢迎大家指正. 学习资料为讯为ITOP4412开发板. fastboot烧写Android 1.主要工具 OTG 接口烧写方式也叫 fastboot 烧写方 ...

  9. 【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录信息修改等功能

    五一后,被ji金伤了,哇呜呜,还是得苦逼老老实实打工写代码,看下面吧 本篇实现效果: 实现登录用户名展示到用户中心页面上,并且页面有个人信息,订单列表,修改密码,意见反馈发送到服务端,前面登录后,通过 ...

最新文章

  1. 多个div嵌套,获取鼠标所点击的div对象
  2. python测试脚本项目全程教程_《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)...
  3. NET穿透技术---UDP打孔
  4. 使用java.util.zip对字符串进行压缩和解压缩
  5. 前端框架-后台模板:Xadmin
  6. 【jQuery】使用id选择器,找出外层div中嵌套的内层div
  7. 计算机mooc操作测试视频,计算机基础课MOOC视频的制作方法.doc
  8. GCC-3.4.6源代码学习笔记
  9. C语言switch如何退出,C语言萌新,想问问如何让下面那个switch函数输出的结果继续...
  10. Xshell远程连接CentOS-7版的Linux
  11. Windows XP sp3上可以安装SQL Server 2008企业版?
  12. JAVA自动生成前缀加日期的编码
  13. Ubuntu fatal: 无法访问 ‘https://github.com/xxxxx/xxxxx‘:Failed to connect to github.com port 443: 连接超时
  14. 安卓模拟器最优选择+抖音检测全绕过简述
  15. 七年级计算机学期教学要求,七年级信息技术教学工作总结
  16. BZOJ 2243: [SDOI2011]染色
  17. 前端表单提交方式大全
  18. outlook 服务器身份验证,Outlook 加载项中的身份验证选项
  19. 快来,分享两款好用的制图软件
  20. SQL复杂查询,优化

热门文章

  1. 2009年三季度上市公司报表4
  2. python培训学校-上海python培训学校
  3. 《乞力马扎罗山的雪》——海明威
  4. Nature综述:Rob Knight手把手教你分析菌群数据(全文翻译1.8万字)
  5. Linux之显示系统相关信息
  6. jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
  7. 怎样成为知乎大V?爬取张佳玮138w+知乎关注者:数据可视化
  8. Altair Inspire Mold 2021.0.1 x64
  9. MotoSimEG-VRC软件:机器人工作路径轨迹跟踪功能使用方法
  10. 第5章 Redis新类型