6

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

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

在任何现有设备上,都会弹出一条通知,告诉用户 this 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。可以从 App Manifest 文件中进行限制。

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

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

在此处输入图像描述

在此处输入图像描述

4

3 回答 3

1

可能涉及此权限:

android.permission.CALL_PHONE

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

com.google.android.gms

还有一个选项是,某些库试图欺骗您或其他 AdMob 帐户和/或广告商 ID 和包名称与文件中的不匹配。

于 2019-09-14T01:01:45.877 回答
0

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

  1. 在 dir 下创建xml资源目录res
  2. 在目录下创建network_security_config.xml文件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 tag android:networkSecurityConfig="@xml/network_security_config"

最后,您可以提出Play Protect 申诉

于 2019-09-13T10:18:55.487 回答
0

以下是可能的原因,

  1. 许可android.permission.CALL_PHONE

根据最近的政策变化,谷歌不允许我们使用Permissions那些被限制使用的类似通话记录的权限。这是一篇关于这个主题的不错的Medium 帖子。也许您或基础依赖项使用了该关键权限之一。如果是这样,您应该迅速将其删除。

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

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

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

如果您的应用程序使用正在渲染的小部件screen overlay(如 Toucher App),请确保您的小部件不会影响另一个应用程序正在加载的广告。

  1. 避免不必要的权限。

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

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

于 2019-09-15T19:49:03.777 回答