我的应用违反了 Android 广告 ID 政策 [重复]

Posted

技术标签:

【中文标题】我的应用违反了 Android 广告 ID 政策 [重复]【英文标题】:My app violates the Android Advertising ID policy [duplicate] 【发布时间】:2018-10-20 10:19:09 【问题描述】:

Google Play 团队拒绝了我的应用,因为:

广告标识符不得连接到 个人身份信息或与任何持久性相关的信息 设备标识符(例如:SSAID、MAC 地址、IMEI 等) 未经用户明确同意。

例如,我们发现您应用的归因 SDK 启用从具有 android 的设备收集 IMEI 没有显着披露的广告ID,属于违反 我们的 Android 广告 ID 政策。

我没有明确收集IMEI,因此IMEI 必须由应用程序的依赖项之一访问。

我如何检测到哪个人正在访问IMEI

更新: 这些是我的依赖项

    compile "com.android.support:appcompat-v7:$support_version"
    compile "com.android.support:mediarouter-v7:$support_version"      // I'm using icons from here, like ic_media_pause and such
    compile "com.android.support:recyclerview-v7:$support_version"
    compile "com.android.support:design:$support_version"
    compile "com.android.support:support-compat:$support_version"

    compile 'com.android.support:multidex:1.0.2'

    // individual dependencies -- https://***.com/a/43407421/1121497
    compile "com.google.android.gms:play-services-maps:$gms_version"
    compile "com.google.android.gms:play-services-analytics:$gms_version"
    compile "com.google.android.gms:play-services-gcm:$gms_version"
    compile "com.google.firebase:firebase-appindexing:$gms_version"
    compile "com.google.firebase:firebase-core:$gms_version"

    compile "com.facebook.android:facebook-android-sdk:$facebook_version"
    compile 'com.facebook.android:notifications:1.0.2'

    compile 'com.batch.android:batch-sdk:1.11.0'

    compile 'commons-codec:commons-codec:1.9'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
    compile 'com.github.chrisbanes.photoview:library:1.2.2'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'info.hoang8f:android-segmented:1.0.5'
    compile 'io.card:android-sdk:5.4.2'
    compile 'me.dm7.barcodescanner:zxing:1.9'
    compile 'com.google.android.exoplayer:exoplayer:r2.2.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.2.0'

    compile 'io.reactivex:rxandroid:1.1.0'
    compile 'io.reactivex:rxjava:1.1.0'
    //compile 'io.reactivex:rxjava-joins:0.22.0' // to use JoinObservable (and-then-when combinator)

    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    // In libs we have:
    // - ZooZ 1.02 : From https://github.com/Zooz/Zooz-Android/releases/tag/1.02
    // - AppsFlyer : AF-Android-SDK 2.3.1.13 jar
    // - Volley
    compile fileTree(dir: '../libs', include: '*.jar')

    compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') 
        transitive = true
    

注意AppsFlyer已配置为:

        AppsFlyerLib.setCollectIMEI(false); // https://play.google.com/about/monetization-ads/ads/ad-id/
        AppsFlyerLib.setCollectMACAddress(false);
        AppsFlyerLib.setCollectAndroidID(false);

【问题讨论】:

能否请您发布您的 gradle 依赖项 您的manifest 中有android.permission.READ_PHONE_STATE 权限吗?你需要它吗 ?没有它,您将无法获得IMEI(对于 API >4)。另请参阅Attribution & Analytics SDKs参考Best practices for unique identifiers。可能是crashlytics 是的,我拥有android.permission.READ_PHONE_STATE 权限。我不确定删除此权限会破坏什么。我去看看你提供的资源,谢谢。你为什么怀疑crashlytics 【参考方案1】:

我的申请也被 Google 删除了。我做了以下方法重新发布。

    使用Free Privacy Policy URL创建应用程序的隐私政策

    在URL发布隐私政策

    复制已发布的隐私政策链接并将其添加到 Developer Play Console 中。 在应用程序中也添加隐私政策链接(可选)

希望这对你也有帮助。

【讨论】:

完美!请注意,现在在第一个网站上托管您的隐私政策,因此您甚至不必使用第二个链接。【参考方案2】:

Crashlytics 使用各种标识符来提供他们的服务,包括 Android ID 和 Android Advertising ID.

所以 crashlytics lib 可能是个问题。这个库正在处理广告 ID。许多使用 crashlytics lib 而未使用 AppsFlyerLib 的开发人员收到此警告。 所以我认为你也应该关注 crashlytics 库。

如需了解更多信息,请访问crashlytics security page

【讨论】:

你能发一份证据吗?例如一个链接。 如果你通过这个链接,你会得到关于try.crashlytics.com/security的信息的澄清【参考方案3】:

您必须在您的应用程序上添加隐私政策。

首先,您必须创建一个隐私政策 URL,然后根据应用程序将该 URL 添加到 GOOGLE PUBLISHER CONSOLE 中。您可以使用此网站轻松创建隐私政策。

Privacy Policies

如果您有服务器/主机,请尝试在您自己的服务器上上传隐私政策页面,否则您可以使用此网站进行存储。

提及:您必须在您的应用程序中添加此政策页面。创建一个菜单作为隐私警察,并在对话框中显示您的所有策略内容。最简单的方法

【讨论】:

只将隐私政策添加到 google play 商品详情中是行不通的。【参考方案4】:

您正在使用低于 sdk 4.3 的 Appsflyer。这就是问题。 这是他们发送给所有开发者的电子邮件。

你好,

AppsFlyer 和 Google Play 团队正在合作以确保 所有使用 AppsFlyer SDK 的广告商都符合 Google 播放隐私政策。为避免对您的业务造成任何干扰,我们 强烈建议所有广告客户采取以下步骤。

如果您运行的是 AppsFlyer SDK 4.3 或更早版本:请 尽快更新到最新的 AppsFlyer SDK 来维护 完全合规。如果您在较新的 SDK 中启用了 IMEI 收集 版本:通过 AppsFlyer SDK 禁用 IMEI 收集,方法是删除 以下代码 AppsFlyerLib.getInstance().setImeiData("IMEI_DATA_HERE") 如果您的应用 尚不符合 Google Play 隐私政策,我们 建议您及时更正您的数据收集。 有关 AppsFlyer SDK 的更多信息,请访问帮助 居中或联系您的成功经理。

感谢 AppsFlyer 团队

【讨论】:

感谢您的回答@Bruno 我很感激。但是我想知道是否存在一个程序/应用程序/任何东西来检测谁在访问 IMEI,而不是单独检查每个依赖项(取决于项目可能真的很难)。幸运的是,我的应用已获得批准,所以我只是好奇,以防它再次发生在我身上。 @ilopezluna 嗨。我的应用程序中有同样的问题。是导致拒绝的appsflyer吗?你如何在最新版本中初始化appsflyer以确保它不会收集IMEI?谢谢! 我们添加了以下几行:AppsFlyerLib.setCollectIMEI(false); // https://play.google.com/about/monetization-ads/ads/ad-id/ AppsFlyerLib.setCollectMACAddress(false); AppsFlyerLib.setCollectAndroidID(false); 注意:我们使用的不是最新版本。【参考方案5】:

就我而言,这是由于 Google Play 控制台中未设置隐私政策 URL。我也使用 Crashlytic。但是当我添加隐私政策时,它需要一些时间来处理,然后它得到了解决。 我没有事件必须再次重新发布。

【讨论】:

您的答案与您的其他答案有何不同?

以上是关于我的应用违反了 Android 广告 ID 政策 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

React Native:违反使用 Android 广告 ID 政策和开发者分发协议第 4.8 节

Android 应用因 Android 广告 ID 政策而不断被拒绝

如何在不更新 APK 文件的情况下解决违反使用 Android 广告 ID 政策和第 4.8 节的问题 [重复]

如何解决“违反使用 Android 广告 ID 政策和开发者分发协议第 4.8 节”的问题

如何在我的应用程序中显示隐私政策

Admob违规消息Android应用程序