On Android devices, there is, as I'm sure you're aware, an option for the user to opt-out of interest based ads, which can be access from Google Settings.
I just saw on the Google Play Developer Programme Policies this quote:
Usage. The Android advertising identifier must only be used for advertising and user analytics. The status of the “Opt-out of Interest-based Advertising” setting must be verified on each access of the ID.
It goes on to say
Respecting users' selections. Upon reset, a new advertising identifier must not be connected to a previous advertising identifier or data derived from a previous advertising identifier without the explicit consent of the user. Furthermore, you must abide by a user’s “Opt out of Interest-based Advertising” setting. If a user has enabled this setting, you may not use the advertising identifier for creating user profiles for advertising purposes or for targeting users with interest-based advertising. Allowed activities include contextual advertising, frequency capping, conversion tracking, reporting and security and fraud detection.
All I want to do is display ads using AdMob and other Advertising networks. The above terms seem to indicate that it's my responsibility to manually check this opt-out setting from my code and then disable interest based ads based if it's enabled.
Do I really need to actively check this myself? If I do need to can anyone give any examples of how I do this (and how I set my ad network up to not use interest-based ads) as I can't seem to find this info anywhere.
I would have though the Ad Netorks SDK's do all of this for us developers? Or maybe these terms are directed at the Ad Networks themselves?
If you want to check it yourself you first need to get a AdvertisingIdClient.Info object by calling AdvertisingIdClient.getAdvertisingIdInfo(), (not in the main thread).
Once you have the Info object you can call info.isLimitAdTrackingEnabled() to check the user's preferences.
The ad networks should do this.
AdMob definitely does.
Related
I have an application in which I want to identify the device with Unique ID,
I have tried multiple solutions but doing after phone reset unique ID gets changed(like ANDROID_ID)
I have used below StackOverflow links which are not usable now.
Is there a unique Android device ID?,
How to get unique device numer in Android?,
Get Unique ID of Android Device?,
How to get unique device hardware id in Android?,
Get unique device ID in android
Android Q has restricted access for IMEI and serial number. It is available only for platforms and apps with special carrier permission. Also, permission READ_PRIVILEGED_PHONE_STATE is not available for non-platform apps.
Many people may mark this as duplicate but please note that
I am looking for a unique id that will last for a device. (which will not change even after resetting/formating the device)
It's not possible in latest Android versions by design to prevent apps from tracking devices due to privacy reasons. Especially if you want to track after a device factory reset as mentioned.
See Best Practices Guide
Recommendation is to use Advertising ID and not associate it with any hardware identifiers. You may identify the user account, but not the device itself. This allows the user to change the user account if they deem necessary or uninstall/reinstall the app at worst.
Play Store policy notes
Association with personally-identifiable information or other identifiers. The advertising identifier must not be connected to personally-identifiable information or associated with any persistent device identifier (for example: SSID, MAC address, IMEI, etc.) without explicit consent of the user.
Now, you may track a device as long as
you don't distribute your app via the play store (i.e sideloading, but you do risk getting booted if Play Protect on device may notice you. I can't remember the default setting, but if the device has play services, it may scan sideloaded apps and remove them if it finds malicious behavior.)
Use hardware identifiers on older versions of Android, (still subject to Play Protect, and also Play Store if you distribute through there) or force users to use a custom ROM
In the new rules, you must specify the age for displaying advertising. But there is not a single example of how to do this correctly. What should I ask the user to put the value of tag_for_under_age_of_consent? How to do it? Is it enough to show a dialogue? What to ask in the dialogue?
How to behave in the EEA area if I have other advertising providers besides AdMob?
There are cases in which you are not always aware of the age of the user. If you want to know whether they are above or below legal age you can use a prompt in which you explicitly state that you need this for advertising purposes. The documentation states:
If a publisher is aware that the user is under the age of consent, all
ad requests must set TFUA (Tag For Users under the Age of Consent in
Europe). To include this tag on all ad requests made from your app,
call setTagForUnderAgeOfConsent(true). This setting takes effect for
all future ad requests.
Additionally, if you need to handle consent which is related to other networks besides AdMob, Google provides a library which displays what information is being gathered by the different ad networks. That will ensure that you keep your GDPR compliance. It allows the users to view the different privacy policies of each respective ad network. Hopefully this helps you with solving your issue.
I found solution. Google added instructions:
https://developers.google.com/admob/android/eu-consent
I just integrate Admob for the first time in one of my applications. I have seen that using AdRequest.Builder().addKeyword(String) you may try to load ads depending on the words that are included. I have included in the latest evidence of a date of birthday and location. I have two days tried to show at least one advertisement associated with any of the words you use, but I haven't gotten anything until now. It is normal? Is there any way to show ads that have a relationship with something?
You can provide additional targeting information such as keywords and age etc and the ad network will take that into consideration when choosing ads to send your way. How they do so is entirely up to the ad network.
You don't indicate whether you are not receiving ads but expect to, or whether you are receiving ads but didn't expect to based up on the additional targeting information you have provided.
You may not be receiving ads because they are not ads for your app, in your area at this particular point in time, regardless of additional targeting info.
You may be receiving ads that you don't expect to receive (because you believe the targeting info should preclude them), because the ad network has better insight into whether this ad will be of interest to the current client.
I have an app that I'm working on that will do some very basic user tracking for advertising purposes. While looking around about the new ID for advertising I found an interesting method:
http://developer.android.com/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html#isLimitAdTrackingEnabled()
The docs for this method are incredibly sparse. How do users enable the limited ad tracking? I can't find anything on my Nexus 4.4 that look like it would set limiting ad tracking.
So my real question is, do I need to respect this boolean, and not track the user if they have this set? I assume so, but I'd really like to know more about it, and the docs aren't helping.
After digging some more. I found a bit more info here:
http://play.google.com/about/developer-content-policy.html#ADID
Respecting users' selections. Upon reset, a new advertising identifier
must not be connected to a previous advertising identifier or data
derived from a previous advertising identifier without the explicit
consent of the user. Furthermore, you must abide by a user’s “opt out
of interest-based advertising” setting. If a user has enabled this
setting, you may not use the advertising identifier for creating user
profiles for advertising purposes or for targeting users with
interest-based advertising. Allowed activities include contextual
advertising, frequency capping, conversion tracking, reporting and
security and fraud detection.
That seemed to answer my question pretty clearly. In other words, yes we do need to respect that preference.
Also, In response to this question:
How do users enable the limited ad tracking? I can't find anything on my Nexus 4.4 that look like it would set limiting ad tracking.
The answer, is that it is in the Google Settings app is where users can enable the "Opt out of interest-based ads". This sets the isLimitAdTrackingEnabled() to true.
This "limit ad tracking" means only that you cannot display to user targeted ads based on his previous interests when ads have been displayed to him.
But you can continue to display ads, and you can continue to track your user on server side.
Is it reasonable to give a user an option to either purchase the full version or click on an advertisement to unlock a feature in the application. From my understanding, AdMob pays based on clicks, not impressions. Also is it possible to listen for ad clicks in Android?
From the AdMob terms of use available here
If User is a publisher, User shall not, and shall not authorize or encourage any third party to generate fraudulent impressions of or fraudulent clicks on any advertisement,
You should not ask your users to click on the advertisement. It's against the terms of service.
You do need to carefully read your agreement with the advertisement provider. For example, I know that Google Adsense would not allow this. I admit this may not apply to AdMob (of whom I have no experience) but for those who find this question some time down the line, read the fine print. Here's the part of Adsense's Terms and Conditions I'm thinking of (Section 5):
You shall not, and shall not authorize or encourage any third party to: (i) directly or indirectly generate queries, Referral Events, or impressions of or clicks on any Ad, Link, Search Result, or Referral Button...
Aside from breaking Terms and Conditions, your users may still not click on them. New study has some interesting numbers to keep in mind...