install_referrer 意图弃用
Posted
技术标签:
【中文标题】install_referrer 意图弃用【英文标题】:install_referrer intent deprecation 【发布时间】:2020-04-04 02:15:51 【问题描述】:我收到了来自谷歌的电子邮件:
我们最近宣布将弃用 install_referrer 意图广播机制。由于您的一个或多个应用使用此意图来跟踪引荐,我们希望确保您在 2020 年 3 月 1 日之前进行切换。在此日期之后,新版本的 Play 商店应用将不再在应用安装后广播 install_referrer 意图。
我没有直接使用install_referrer
,但是在浏览合并清单时,我发现一些以包名com.google.firebase.measurement
命名的firebase 服务使用它。
我的 firebase 依赖项已更新到最新版本。
我应该关心它吗?
【问题讨论】:
我有同样的信,我不使用firebase。我没有使用install_referrer
。我使用 ADMOB(谁可以使用install_referrer
?)。那么如果我们自己不使用install_referrer
,我们需要改变什么?
我今天收到了这条消息,但我不明白我该怎么办!!我正在使用 unity3d,并且我已经使用过(Admob 和 Firebase)
我收到这封电子邮件并查看了我的合并清单,看起来 Firebase 是触发此问题的原因。所以基本上等到 Firebase 修复他们的代码并发布更新?
@A92 从 firebase 支持处查看我的回答
奇怪的是我在我的两个应用程序中使用了 Firebase,但在邮件中它只说明了其中一个应用程序,尽管它是 Firebase 集成最少的应用程序。
【参考方案1】:
来自 Firebase 支持:
这是一个很好的收获。谢谢让我们注意到这个。 到目前为止,您无需[采取]行动,我已经创建了一个 内部请求,以便我们可以为 install_referrer 在弃用之前的意图广播。截至目前, 我们还没有找到任何细节或时间表,什么时候会 实施的。您可以不时查看我们的发行说明 有关 Firebase 功能及其服务的更新。
奇怪的是谷歌的产品不同步。
但是,如果您不使用 Firebase,并且您的应用包含使用 install_referrer
的第三方库,请直接与他们联系。
要查找 install_referrer
包含在哪个库中,请打开合并清单并搜索 install_referrer
,检查包含 install_referrer
的服务的包名称。
【讨论】:
希望在他们发布解决方案之前不会太久,我想所有与安装应用程序相关的事件(可能是first_open
事件)都不会在 3 月 1 日之后发送2020 年。在他们发布解决方案后,所有使用 Firebase SDK 的应用都应该发布新应用 - 否则 Firebase 将不会收到任何受影响的事件。
@Pavel Poley 如果我不使用 Firebase,你能告诉我如何检查 install_referrer
@MouaadAbdelghafourAITALI 打开合并清单并尝试找到install_referrer
,右键去声明,可以看到服务的包名
查看合并清单显示来自 Firebase 的 install_referrer。应该是公认的答案!拯救了我的一天!谢谢
有来自firebase的消息吗,我更新到了17.2.2版本还是找到了com.android.vending.INSTALL_REFERRER【参考方案2】:
com.google.firebase:firebase-core:17.2.1
和 com.google.firebase:firebase-analytics:17.2.1
将 INSTALL_REFERRER
添加到 AndroidManifest
。可能需要等到 Firebase 团队更新这些包才能使用新的 API。
【讨论】:
就我而言,我没有使用任何 Firebase 库,并且INSTALL_REFERRER
仍然出现
@MouaadAbdelghafourAITALI 那么在你的情况下应该有一些其他库使用不推荐使用的 API。
谢谢,所以主要问题来自 Firebase 库
检查您应用的AndroidManifest.xml
中的合并清单选项卡并查找<intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter>
。然后,如果您选择该行,它会告诉您它来自哪个库。在我们的例子中是play-services-ads
。
我将它更新到版本 17.2.2 但仍然找到 com.android.vending.INSTALL_REFERRER @AndrewS【参考方案3】:
各种 SDK 都可以为安装引用者注册一个接收者。
对于不确定哪个 SDK 将接收器添加到您的清单的开发人员,查看清单合并责备文件很有用。
通常,在build/
中有一个文件intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt
在该文件中,您需要找到具有
的接收器<action android:name="com.android.vending.INSTALL_REFERRER" />
在它的意图过滤器中,它之前的行将指示该行的来源在您的清单中。
例如,我的一个应用程序的相关行如下所示:
44 <receiver
44-->[com.appbrain:appbrain-sdk:15.10] .../jetified-appbrain-sdk-15.10/AndroidManifest.xml:29:9-35:20
45 android:name="com.appbrain.ReferrerReceiver"
45-->[com.appbrain:appbrain-sdk:15.10] .../jetified-appbrain-sdk-15.10/AndroidManifest.xml:30:13-57
46 android:exported="true" >
46-->[com.appbrain:appbrain-sdk:15.10] .../jetified-appbrain-sdk-15.10/AndroidManifest.xml:31:13-36
47 <intent-filter>
47-->[com.appbrain:appbrain-sdk:15.10] .../jetified-appbrain-sdk-15.10/AndroidManifest.xml:32:13-34:29
48 <action android:name="com.android.vending.INSTALL_REFERRER" />
48-->[com.appbrain:appbrain-sdk:15.10] .../jetified-appbrain-sdk-15.10/AndroidManifest.xml:33:17-79
48-->[com.appbrain:appbrain-sdk:15.10] .../jetified-appbrain-sdk-15.10/AndroidManifest.xml:33:25-76
49 </intent-filter>
50 </receiver>
这表明 AppBrain SDK(我是其中的开发者之一)为安装引荐来源网址添加了接收器。我们的博文中的下图解释了究竟发生了什么变化 (https://medium.com/appbrain/the-google-play-referrer-api-and-the-appbrain-sdk-38cfbaa350dc) 阐明了 Google 正在发生的变化:
【讨论】:
太棒了!我不知道这个文件,它帮助我弄清楚install_referrer
到底在使用什么。澄清一下,我在 app-modules build/
文件夹中找到它,而不是在根 build/
文件夹中。
我正在使用 Unity3D,但我不确定如何使用这些信息,您是否也知道 Unity3D 的解决方案?【参考方案4】:
检查我构建的 apk 上的清单文件后,我发现 Firebase Core Analytics 上的 firebase-measurement-connector 模块使用的安装引用广播,因此我将它们排除在外:
implementation ('com.google.firebase:firebase-ads:17.2.0')
exclude group: 'com.google.firebase', module: 'firebase-core'
exclude group: 'com.google.firebase', module: 'firebase-analytics'
exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
然后通过 Analyzing APk 再次重新检查我的 manifest 合并文件,并且 Install referer 广播消失了。
另一方面,如果您使用跟踪分析,Google 会要求您在 2020 年 3 月之前切换到 Install Referrer API https://developer.android.com/google/play/installreferrer/library.html
【讨论】:
【参考方案5】:我检查了 Firebase 支持代理是否存在此问题。 Firebase 库正在使用 install_referrer,我得到了 Firebase 支持代理的以下响应:
这是一个很好的收获。谢谢让我们注意到这个。我是 目前正在与我们的分析专家讨论,并将回复 在 48 小时内,或在我有更多信息后尽快。目前,没有 需要您采取任何行动,等待下一次更新 Firebase 团队。
我认为我们需要等待 Firebase 的下一个版本。 Firebase 团队更新了这些包以使用新的 API。
如果您自己在代码中使用了此 API,则需要立即更改它,因为您不依赖于 firebase 或任何其他第三方库提供商。
【讨论】:
我更新到了17.2.2版本还是找到了com.android.vending.INSTALL_REFERRER,请问你是怎么解决的? 是的,同样的情况,Faxriddin Abdullayev 收到支持代理的回复了吗?谢谢! 好吧,我们终于有更新了,他们删除了:分析版本 17.4.0。【参考方案6】:Android 开发者博客上有一篇关于此的文章
https://android-developers.googleblog.com/2019/11/still-using-installbroadcast-switch-to.html
在本文中,他们还提到了 install_referrer 意图广播机制的旧实现,并提供了完整的信息。所以我们可以在我们现有的代码中找到它。
https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-campaigns
【讨论】:
OP 提到他没有直接集成到这个 API 中......鉴于其相对模糊的用例,这里的大多数开发人员很可能不会直接使用它 @Jey Sidri 它帮助了我,*** 不仅仅是关于你知道的 OP 吗?【参考方案7】:INSTALL_REFERRER
不仅带有Firebase
,还带有ADMOB
。我可以确认Admob v3.18.3
拥有此权限,但它不再进入Admob v4.2.1
。我没有测试过其他版本,但我听说一些以前的版本,比如4.2.0
& 4.1.0
也没有这个权限。
但这里的问题是我们是否需要删除权限,或者我们需要确保如果我们的应用使用Play Install Referrer Library
,那么必须包含INSTALL_REFERRER
。因为所需的操作不是删除它,而是迁移到它。
【讨论】:
以上是关于install_referrer 意图弃用的主要内容,如果未能解决你的问题,请参考以下文章
Google Play Install Referrer API 与 INSTALL_REFERRER 广播