安装运行的 app 怎么知道自己是从哪个推广链接下载的?

2022-03-27 11:33:47 +08:00
 laravel

这篇文章讲的方法还适用吗?

https://www.cnblogs.com/lanxingren/p/10656647.html

文章大概意思:

apk 格式是 zip 类型,给 zip 添加 comment , 然后在 app 运行时候从 apk 的 comment 里获取自定义数据。

4232 次点击
所在节点    程序员
29 条回复
0o0O0o0O0o
2022-03-27 11:41:39 +08:00
多渠道打包
lscho
2022-03-27 11:48:00 +08:00
推广链接的推广关系绑定一般都是打开推广链接的时候,复制推广码到剪切板,下载完打开 APP 注册的时候读取剪切板。
0o0O0o0O0o
2022-03-27 11:55:19 +08:00
@0o0O0o0O0o sorry ,没仔细看,是推广链接啊
Chism
2022-03-27 12:08:45 +08:00
签名文件放服务器,更改里面的一个配置文件信息,临时用命令行打包 apk 下载
laravel
2022-03-27 12:09:33 +08:00
@Chism 那就是用户想推广,得等到 apk 生成才行,生成 apk 很慢吧
liaohongxing
2022-03-27 12:12:58 +08:00
@laravel 只需要生成 1 次就行 。有缓存 ,就算是老版本都行 。一旦安装,配置文件写入机器。用户打开再更新一下就行。重要的是要安装进用户机器。
seakingii
2022-03-27 12:17:25 +08:00
这种方案不是很清楚。难道可以直接修改 APK ? APK 没有一个 HASH 校验自己的机制?文章里好像有说,签名机制选择 V1 就可以。

不过我想可能这样更稳妥,就是认为业务员数量是有限的,可以在更新新版本的 APK 和新增业务员是在后台生成好,每个业务员对应一个 APK ,扫码下载之前就准备好业务员专用的 APK 。这种做法能保证用任何签名方式,在线下客户扫码时也不用等待服务器临时生成 APK 。。。
IGJacklove
2022-03-27 12:36:12 +08:00
多渠道打包啊,你有多少个推广平台就有多少个包,你去极光啥的看看就知道了。
nicevar
2022-03-27 12:42:10 +08:00
@seakingii 校验机制肯定有,一般各种平台的安装包不会傻傻校验整个包,可能还会预留一些字节也可填充任何信息,很多移动平台的安装包都是这样的。
kwanzaa
2022-03-27 13:04:09 +08:00
先生成签名字符并记录,然后预先打包,再塞给渠道人员。
zpxshl
2022-03-27 13:08:12 +08:00
多渠道打包可以,但前提是打包前就知道渠道。
有些渠道需要动态生成的,没记错的话 apk 有个位置可以写入信息,不影响校验。
seakingii
2022-03-27 13:08:36 +08:00
@IGJacklove 楼主的需求不是”多渠道“,而是一个业务员对应一个安装包。这样他好统计业务员的业绩。(而不用额外输入业务员的代码什么的,APP 直接记录了业务员的代码)
xuecan
2022-03-27 15:08:28 +08:00
据我所知 现在还是这种方法
nuk
2022-03-27 15:44:23 +08:00
这个 comment 只对 v1 签名有效,apk v2 签名块可以增加未知 ID ,在未知 ID 的值里就增加自定义数据,不过只是文档这么说,我不知道行不行。
https://source.android.google.cn/security/apksigning/v2?hl=zh-cn#apk-signing-block
janus77
2022-03-27 17:07:14 +08:00
这种还好吧……用起来就跟多渠道打包一样,还是往 apk 里面写入每个业务员自带的 id 。
但是原理有些不一样,首先多渠道的话渠道数最多也就几十个,一次性全部打一遍就行了。而业务员显然更多,而且会有随时增加减少的情况,所以不能预先打好包。但是根据文章,可以在客户扫码的时候,每个码有自己的 id ,然后就是快速把 id 的那一部分写入 apk 生成新包,这个过程必须很快,不能重编译、重签名,因为用户扫码的时候是要立刻打开下载链接的。
laravel
2022-03-27 17:12:53 +08:00
每个用户都可以分享挣提成
Chism
2022-03-27 17:58:08 +08:00
@laravel 取决于文件量和大小,速度跟打包文件夹成.zip 差不多
Chism
2022-03-27 17:59:26 +08:00
@laravel
你可以把 affId 对应的 apk 文件暂存起来,版本号没变的话不用重新打包。这样只有第一次请求下载打包,后续就是读 apk 了。打包的话,我亲测基本 2 秒左右
icyalala
2022-03-27 18:49:18 +08:00
安卓发版都是自动化一次打几十个渠道包,
iOS 的话。。有的是用剪贴板,有的是一些广告 SDK
rv54ntjwfm3ug8
2022-03-27 19:09:32 +08:00
没有人提到浏览器指纹吗,用户的屏幕分辨率 Canvas 指纹 SSL 指纹 甚至 CPU/GPU 运算速度都能作为浏览器指纹,多项结合一下再参考 IP 地址就能获得一个非常精确的用户指纹了,App 首次启动的时候如果有匹配度>一堆阈值的人的话找一个匹配度最高的就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843146

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX