【问题标题】:Unauthorised Advertising Clicks - Violation of Device and Network Abuse policy未经授权的广告点击 - 违反设备和网络滥用政策
【发布时间】:2019-08-14 09:30:39
【问题描述】:

我们的应用(One Ticket)最近从 Playstore 中删除,Google 表示它违反了设备和网络滥用政策,并补充说我们已确定您的应用正在促进用户设备上未经授权的广告点击。但我们的应用程序不包含任何广告。它如何促进unauthorized advertising clicks

在尝试安装 apk 时,它播放保护对话框显示: This app tries to use your device to commit advertising frauds

在任何现有设备上,都会弹出一条通知,告诉用户这个app is harmful

以下是我们的应用所需的权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove"/>

以下是我们正在使用的库: ` .

     dependencies {
    compile fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
    // Library for UI testing
    // Library for WebView testing using Espresso
    // Library for RecyclerView UI testing using Espresso
    androidTestImplementation('com.android.support.test.espresso:espresso-contrib:2.0') {
        exclude group: 'com.android.support', module: 'appcompat'
        exclude group: 'com.android.support', module: 'support-v4'
        exclude group: 'javax.inject'
        exclude module: 'recyclerview-v7'
    }
    // Library to listen to network events: min sdk version = 9
    // Adapter delegates for RecyclerViews
    // Library for validations
    // Library for swipe to dismiss on RecyclerViews
    // Library for the "About us" pages
    implementation('com.mikepenz:aboutlibraries:5.1.1@aar') {
        transitive = true
    }
    // Library for RecyclerViews animations
    // Tabs
    // Parcelable
    implementation('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
        transitive = true;
    }
    implementation('com.crashlytics.sdk.android:answers:1.3.6@aar') {
        transitive = true;
    }
    apply from: 'check-release.gradle'
    // These are the necessary Maven dependencies for apps using the HAFAS library
    // The actual HAFAS library together with a HaCon special version of Google GSON.

    // Both libraries are located in the app/libs directory and have to be copied for use in own projects.
    //implementation 'com.google.code.gson:gson:2.8.5'
    //compile fileTree(dir: 'libs', include: ['*.jar'])
    //api project(':capital-metro-41-prod')

    implementation "com.android.support.constraint:constraint-layout:1.1.0"
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'net.steamcrafted:materialiconlib:1.0.3'
    implementation 'org.mockito:mockito-core:2.8.47'
    implementation 'com.google.dexmaker:dexmaker:1.2'
    implementation 'com.google.dexmaker:dexmaker-mockito:1.2'
    implementation 'com.github.pwittchen:reactivenetwork:0.5.2'
    implementation 'com.hannesdorfmann:adapterdelegates:1.0.2'
    implementation 'com.mobsandgeeks:android-saripaar:2.0.2'
    implementation 'com.hudomju:swipe-to-dismiss-undo:1.0'
    implementation 'jp.wasabeef:recyclerview-animators:2.2.5'
    implementation 'io.karim:materialtabs:2.0.2'
    implementation 'org.parceler:parceler-api:1.0.3'
    annotationProcessor 'org.parceler:parceler:1.0.3'
    implementation 'com.cocosw:bottomsheet:1.3.1@aar'
    implementation 'me.grantland:autofittextview:0.2.1'
    implementation 'com.braintreepayments.api:braintree-api:1.7.1'
    implementation 'com.braintreepayments.api:braintree:1.7.1'
    implementation 'com.braintreepayments.gateway:braintree-java:2.51.0'
    implementation 'com.soundcloud.android:android-crop:1.0.1@aar'
    implementation 'javax.inject:javax.inject:1'
    implementation 'javax.annotation:javax.annotation-api:1.2'
    implementation 'com.google.dagger:dagger:2.16'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.16'
    implementation 'com.yalantis:ucrop:1.1.+'
    implementation 'com.google.android.gms:play-services-base:12.0.1'
    implementation 'com.google.android.gms:play-services-location:12.0.1'
    implementation 'com.google.android.gms:play-services-maps:12.0.1'
    implementation 'com.google.android.gms:play-services-analytics:12.0.1'
    implementation 'com.google.android.gms:play-services-auth:12.0.1'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:gridlayout-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation "com.sothree.slidinguppanel:library:3.4.0"
    implementation 'com.squareup.sqlbrite:sqlbrite:0.8.0'
    // To fix the error thrown by support library for @drawable/abc_ic_ab_back_mtrl_am_alpha
    androidTestImplementation 'com.android.support.test:runner:0.5'
    androidTestImplementation 'com.android.support.test:rules:0.5'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-web:2.2.2'
    androidTestImplementation 'org.mockito:mockito-core:1.10.19'
    androidTestImplementation 'com.google.dexmaker:dexmaker:1.2'
    androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
    implementation 'com.google.android:flexbox:1.1.0'

    //Mosby MVP Framework
    implementation 'com.hannesdorfmann.mosby:mvp:2.0.1'
    implementation 'com.hannesdorfmann.mosby:viewstate:2.0.1'

    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

    implementation 'com.android.support:multidex:1.0.3'

    //androidTestCompile 'com.google.dagger:dagger:2.0'
    //androidTestApt 'com.google.dagger:dagger-compiler:2.0'
    //apt 'org.parceler:parceler:1.0.3'
    //apt 'com.google.dagger:dagger-compiler:2.0'

    implementation 'android.arch.lifecycle:extensions:1.1.1'
}`

我怀疑以下库以及修复程序。

  1. Fabric Crashlytics:2.9.3 之前的所有版本都收集广告 ID。 解决方案:

更新到最新的2.10.3版本

.

  1. Firebase:收集广告 ID 解决方案:从清单中禁用它
<meta-data android:name="firebase_analytics_collection_enabled"
   android:value="false" />
  1. Facebook:收集广告 ID。可以从应用清单文件中进行限制。

  2. 更新我们的应用政策。

除了这些库之外,还有其他可能导致此问题的原因吗?我错过了什么吗?

【问题讨论】:

  • 不,如果您没有使用任何 ADS SDK,那么只需重新检查每个第三方库以检查它们是否使用广告 ID
  • 应用程序是做什么的?您使用的是SYSTEM_ALERT_WINDOW 权限还是您使用的任何库都使用了该权限?
  • @MorrisonChang 我们没有在任何地方使用SYSTEM_ALERT_WINDOW 权限。添加了我们正在使用的库和权限列表。
  • 这个问题。
  • @MuntasirAonik 你能帮我解释一下这怎么可能是个问题

标签: android google-play-protect


【解决方案1】:

可能涉及此权限:

android.permission.CALL_PHONE

要么放弃该功能,要么让用户点击绿色按钮来调用......而且这些库已经过时了(请自己查找它们,因为我正在打电话):

com.google.android.gms

仍然可以选择,某些库试图欺骗您或其他 AdMob 帐户和/或广告商 ID 和包名称与文件中的不匹配。

【讨论】:

    【解决方案2】:

    这可能是因为您使用的是明文通信或未使用 SSL。 为了实现安全通信,

    1. res目录下创建xml资源目录。
    2. xml目录下创建network_security_config.xml文件
    3. <?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">172.0.0.0.0. </domain>//your ip </domain-config> </network-security-config>复制到文件中。
    4. 添加menifes.xml's application tagandroid:networkSecurityConfig="@xml/network_security_config"

    终于可以制作Play Protect Appeals

    【讨论】:

    • 感谢您的回答,但我可以确认我们没有在任何地方使用 cleartextTrafficPermitted= true 并且所有网络调用都使用 https 协议。
    【解决方案3】:

    以下是可能的原因,

    1. 权限android.permission.CALL_PHONE

    根据最近的政策变化,Google 不允许我们使用 Permissions 那些被限制使用的通话记录权限。这是一个关于这个主题的好Medium post。也许您或基础依赖项使用了该关键权限之一。如果是这样,您应该尽快将其删除。

    1. 布局/视图鼓励用户点击广告。

    如果您错误地设计了加载广告的布局/视图,导致用户会意外点击广告,则您违反了政策。也许您正在后台加载广告并在它准备好时显示出来。同时,如果用户正在与应用程序交互,他/她会不小心点击广告。推荐一种在用户切换新活动时显示全屏广告(如插页式广告)的方式。

    1. Draw Overlay 影响其他应用的广告

    如果您的应用程序使用通过 screen overlay(如 Toucher 应用程序)呈现的小部件,请确保您的小部件不会影响其他应用程序正在加载的广告。

    1. 避免不必要的权限。

    如果您的应用程序不需要功能/权限。请避免它。不必要的许可有时会导致此问题。前往this

    您似乎正在使用第三方库。如果您不了解第三方库的实现,则使用第三方库可能会造成危害。尽可能避免使用此类库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 2019-11-04
      • 2019-07-09
      • 1970-01-01
      相关资源
      最近更新 更多