Paid AdMob-Plugin: Support for "npa"-Parameter in request extras (GDPR)

Hello,

would it be possible to update the (paid) AdMob plugin so that we can use the “npa”-Parameter in the request’s extras in order to receive only non-personalized ads from AdMob?

Best regards!

I think they are working on it or it is on the list.

Google is not letting people use these new features until May 25th. We can’t release our plugin early because of this.

Rob

Hi Rob,

the feature I mentioned is actually usable with older AdMob SDKs as well, however, the “npa” parameter seems to have no effect before May 25th.

So I don’t see why Corona could not implement the [request registerNetworkExtras: extras] function in its plugin before May 25h?

Best regards!

Hi,

I’m not sure what you meant by “the feature I mentioned is actually usable with older AdMob SDKs as well, however, the “npa” parameter seems to have no effect before May 25th.”

As stated on Admob’s documentation site:
 

Note:  The Consent SDK will be made available by mid-May. The functionality, however, will not take effect until May 25, 2018. Please do not attempt to use these APIs before May 25, because they may disrupt ad serving on your app.

I can highlight this:  Please do not attempt to use these APIs before May 25, because they may disrupt ad serving on your app.

Since Corona is providing access to Admob to a large amount of developers and not just implementing SDK to one app, it would be irresponsible for us to go against Google’s directions.

Or maybe I don’t understand you right? Can you elaborate on this topic?

I can. You don’t need the consent SDK for GDPR for google. I don’t plan on using it. All I did for my native app on iOS (read non corona app) is add this:

GADExtras \*extras = [[GADExtras alloc] init]; extras.additionalParameters = @{@"npa": @"1"}; [request registerAdNetworkExtras:extras]; [\_bannerView loadRequest:request];

The code for Android is also very similar although I don’t have it handy. This is supported in most recent versions of Admob including the one you are using currently in the plugin.

Edit:

Here is the Android Version for Admob:

Note:  The code in this section can be used with any version of the Google Mobile Ads SDK. It can also be used regardless of whether you used the Consent SDK to gather consent.

The default behavior of the Google Mobile Ads SDK is to serve personalized ads. If a user has consented to receive only non-personalized ads, you can configure an AdRequest object with the following code to specify that only non-personalized ads should be returned:

 

 

Bundle extras = new Bundle();
extras.putString(“npa”, “1”);

AdRequest request = new AdRequest.Builder()
        .addNetworkExtrasBundle(AdMobAdapter.class, extras)
        .build();

From the Google documentation the DFP version for iOS:

Note:  The code in this section can be used with any version of the Google Mobile Ads SDK. It can also be used regardless of whether you used the Consent SDK to gather consent.

The default behavior of the Google Mobile Ads SDK is to serve personalized ads. If a user has consented to receive only non-personalized ads, you can configure an DFPRequest object with the following code to specify that only non-personalized ads should be returned:

 

 

DFPRequest *request = [DFPRequest request];
GADExtras *extras = [[GADExtras alloc] init];
extras.additionalParameters = @{@“npa”: @“1”};
[request registerAdNetworkExtras:extras];

Well then, it’s a good news! We’ll include the implementation in the next update.

Thanks for the info!

Thanks agramonte, this is what I meant.

Can you tell if this update will be released early enough for us to update our apps till May 25th?

Because - just to point that out - since there will be no option in AdMob’s dashboard to serve only non-personalized ads, this will be the only way for us to make our apps with AdMob compliant till May 25th. Without that option, AdMob will still always serve personalized ads.

Best regards!

We have a really tight schedule, but I’ll see what I can do. But isn’t it would be better to just wait for Admob consent specific apis to become available to you on 25th and then update your apps accordingly?

We want to update our apps as soon as possible, before May 25th.

If the NPA flag is already available and usable now, adding support for it now gives us the ability to start rolling out updates.

In the other forum post you said you had implemented this AdRequest configuration already (https://forums.coronalabs.com/topic/72096-gdpr-compliance/page-6?hl=gdpr).

Hence, if it is already implemented, and it works with your current AdMob version, please roll it out. 

Hi perflubron,

As a second thought I can agree that adding this ability earlier should not harm anyone. Will give it more priority on a task system.

Thanks for your feedback, guys.

So glad to hear this!

Best regards!

Hey guys, sorry for a delay, updated plugin was released. You can check docs to learn more about gdpr compliance, it’s basically just one new parameter to load() options. 

https://docs.coronalabs.com/plugin/admob/index.html
(Docs should be updated some time in the future, when our servers will be a little less busy)

Thank you guys!

Could you please provide the syntax here, since the docs don’t contain it yet?

Best regards!

Yeah, sure. Now you have additional parameter inside options table in load() method, called  hasUserConsent. If you’ve got a user consent to use his data (to be gdpr compliant), just set this to true, set false otherwise.

Thanks! So hasUserConsent = false will send the AdMob-request with the extra “npa": "1” (?).

Is there a way to verify in the Corona Simulator console output that I am using the correct version of the AdMob-plugin, which “knows” the parameter?

Best regards!

So hasUserConsent = false will send the AdMob-request with the extra “npa”: “1” (?).

Correct.

 

Is there a way to verify

Sure, version of updated Corona Admob plugin is 1.2.4 for both iOS and Android. Basically, if you try to load an ad with  hasUserConsent parameter with any value and plugin/sdk is too old, there will be an error in console log, saying that  hasUserConsent  is not a valid parameter.

thank you very much.

How are you guys (devs) planning to implement this?  Are most of you going to have the consent pop-up (if so, how are you going to word it for AdMob?), or going to enable NPA (hasUserConsent=false) all the time?  

@dislam: No pop-up for me for Ads. I set hasUserConsent=false. The user can always go to the consent page and grant me consent. At some point I might ask them for consent for some in-game reward and I am showing more ads when the consent is false.