Google has put a new option on their Pricing and Distribution page of their Google Play Developer Console that requires publishers to declare if they have ads or not. Our app does not have ads, yet we are being flagged as having the AdMob SDK.
We detected Ad SDKs in one or more of your active APKs:
version: XXXXX, sdk: AdMob
If your app is serving ads, please change your ads declaration to 'Yes'. Failure to accurately declare the presence of ads is a policy violation and may result in your app's removal from Google Play. You can visit our Help Center to learn more.
We don't have AdMob, as far as I can tell from our Gradle file:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'me.dm7.barcodescanner:zxing:1.7.2'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
}
What might be causing that dependency to show up? How can I get rid of it?
From the Google Play Support Chat I was addressed to say "No" in Google Play Console, despite the detection.
You can run
gradlew -q dependencies app:dependencies
to see a the dependencies (including all transitive dependencies) for each of your configurations.You can also specify a single configuration, such as with
--configuration releaseCompile
In your case, you will find that Google Play Services includes a transitive dependency on AdMob.
You can mitigate this by using only individual components of Play Services (such as
play-services-location
) instead of the entirety of Play Services. However, you may find that one of the individual components you use still relies on AdMob. For example, version 8.1.0 ofplay-services-analytics
has a transitive dependency onplay-services-ads
, which is the AdMob SDK.