我开发了一些高级应用程序,用户可以直接从我的登录页面下载,因此安装不会通过Play商店进行。
这些应用程序与我的服务器通信以进行跟踪,我希望能够查明哪些应用程序安装与我的下载跟踪系统中的哪些下载条目相对应,以便能够准确分析我的广告系列。
有没有办法识别与APK下载相关的用户或设备?
编辑:
到目前为止,我尝试的是使用IP,国家,浏览器用户代理和Android版本等数据创建指纹,将其保存在数据库中,并让应用程序在首次打开后向我发送相同的数据,然后尝试找到这样的条目,但它经常失败(找不到相应的条目)。
由于公司政策,我无法发布那部分代码(是的,我知道...
作为一些额外的信息,我的页面在后端使用 php。我一直在尝试创建用户设备的某种指纹,并在安装应用程序并将其与服务器上的指纹数据库进行比较,但它不是一个好的系统......
一种方法是为可以在您的网站上下载的版本使用自定义产品风格。 如果您在 Gradle 中使用 buildConfigField 属性,则可以让应用自动向跟踪服务器发送自定义跟踪属性。
build.gradle:
productFlavors {
GooglePlay {
buildConfigField 'Boolean', 'isGooglePlay', 'true'
}
Website {
buildConfigField 'Boolean', 'isGooglePlay', 'false'
}
}
分析.java:
private String appendTrackerToQueryString(String queryString) {
return queryString + "&productFlavor=" + (BuildConfig.isGooglePlay ? "GooglePlay" : "Website");
}
根据有关问题的澄清信息进行编辑:
由于操作希望将特定下载与特定安装绑定,因此另一种方法是动态创建配置文件并使用 aapt 将其注入预构建的 apk 文件中。 请参阅安卓:如何手动将文件添加到apk?。 新软件包需要使用相同的密钥库进行签名,然后供用户下载。 此方法会增加下载过程的一些时间,因此需要与服务器负载和下载需求进行平衡。