Why The Play Store Thinks Your App Has Ads... When It Doesn't
The Play Store is rolling out mandatory declarations of whether or not your app has ads. As part of this, they are running some automatic ad-SDK detection algorithms on your app. According to this Stack Overflow question, those algorithms may be a bit over-aggressive, reporting that you have AdMob when you are not using AdMob.
As a tiger-striped rabbit named Tanis.7x points out in an answer, the problem in this case comes from Play Services and transitive dependencies.
If your app depends upon com.google.android.gms:play-services
, you
are pulling in vast swaths of the Play Services SDK, including
play-services-ads
, the portion of the SDK that ties into AdMob.
Switching to more granular dependencies
may help here. In the case of the person who wrote the original Stack
Overflow question, they really only needed play-services-maps
, and
by switching to depend upon that instead of play-services
, the AdMob
detection problem cleared up.
However, bear in mind that even some finer-grained Play Services
artifacts will depend on play-services-ads
. play-services-all-wear
definitely depends upon play-services-ads
. Tanis.7x reports that
play-services-analytics
depends upon play-services-ads
, though
that seems to be limited to version 8.1.0. Others may crop up in the
future.
(and if you think that play-services-analytics
case was just some
random bug, play-services-location
even today
depends upon play-services-maps
,
which is a clear case of the tail wagging the dog)
It is also possible that the right ProGuard and other minification
settings for your release
build would help here, as perhaps something is being left behind that
the Play Store algorithm is detecting. Alas, we have no great way of
telling exactly what the Play Store is looking for.
Another Stack Overflow user, in a separate answer on the question, indicates that Play Store support staff said to leave the ads switch on “no”, despite the detected SDK. That makes sense, as you are declaring whether your app shows ads, not whether your app has code that might relate to ads. However, I still encourage you to try to clean this up, as future automated takedowns might sweep up your app, if they don’t improve their algorithms by then.