Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Paid AdMob-Plugin: Support for "npa"-Parameter in request extras (GDPR)
Started by bjoern May 17 2018 05:39 AM

51 replies to this topic
[TOPIC CONTROLS]
Page 1 of 3 1 2 3
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

bjoern

[GLOBAL: userInfoPane.html]
bjoern
  • Enthusiast

  • 73 posts
  • Corona SDK

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!



[TOPIC: post.html]
#2

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 816 posts
  • Corona SDK

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



[TOPIC: post.html]
#3

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 24,742 posts
  • Corona Staff

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

 

Rob



[TOPIC: post.html]
#4

bjoern

[GLOBAL: userInfoPane.html]
bjoern
  • Enthusiast

  • 73 posts
  • Corona SDK

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!



[TOPIC: post.html]
#5

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 244 posts
  • Corona Staff

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?



[TOPIC: post.html]
#6

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 816 posts
  • Corona SDK

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];


[TOPIC: post.html]
#7

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 244 posts
  • Corona Staff

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

Thanks for the info!



[TOPIC: post.html]
#8

bjoern

[GLOBAL: userInfoPane.html]
bjoern
  • Enthusiast

  • 73 posts
  • Corona SDK

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!



[TOPIC: post.html]
#9

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 244 posts
  • Corona Staff

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?



[TOPIC: post.html]
#10

perflubron

[GLOBAL: userInfoPane.html]
perflubron
  • Contributor

  • 132 posts
  • Corona SDK

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. 



[TOPIC: post.html]
#11

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 244 posts
  • Corona Staff

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.



[TOPIC: post.html]
#12

bjoern

[GLOBAL: userInfoPane.html]
bjoern
  • Enthusiast

  • 73 posts
  • Corona SDK

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!



[TOPIC: post.html]
#13

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 244 posts
  • Corona Staff

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)



[TOPIC: post.html]
#14

bjoern

[GLOBAL: userInfoPane.html]
bjoern
  • Enthusiast

  • 73 posts
  • Corona SDK

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!



[TOPIC: post.html]
#15

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 244 posts
  • Corona Staff

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.



[TOPIC: post.html]
#16

bjoern

[GLOBAL: userInfoPane.html]
bjoern
  • Enthusiast

  • 73 posts
  • Corona SDK

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!



[TOPIC: post.html]
#17

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 244 posts
  • Corona Staff

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.


  • agramonte likes this

[TOPIC: post.html]
#18

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 816 posts
  • Corona SDK

thank you very much.



[TOPIC: post.html]
#19

dislam

[GLOBAL: userInfoPane.html]
dislam
  • Contributor

  • 178 posts
  • Corona SDK

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?  



[TOPIC: post.html]
#20

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 816 posts
  • Corona SDK

@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. 

 

 



[TOPIC: post.html]
#21

dislam

[GLOBAL: userInfoPane.html]
dislam
  • Contributor

  • 178 posts
  • Corona SDK

@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. 

 

I prefer your approach.  I'm just wondering how much this would affect our revenue if we always set consent=fase and show non-personalized ads?



[TOPIC: post.html]
#22

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 24,742 posts
  • Corona Staff

I'm trying to get an answer about the revenue question.  There may not be a precise answer since there are many factors in what goes into the eCPM calculation.

 

Rob



[TOPIC: post.html]
#23

fungrip

[GLOBAL: userInfoPane.html]
fungrip
  • Enthusiast

  • 54 posts
  • Corona SDK

What is the default for hasUserConsent ?



[TOPIC: post.html]
#24

Falcon777

[GLOBAL: userInfoPane.html]
Falcon777
  • Contributor

  • 380 posts
  • Corona SDK

The Consent SDK is not in the latest Admob plugin yet right?  Just want to confirm this.

 

https://developers.google.com/admob/ios/eu-consent

https://developers.google.com/admob/android/eu-consent



[TOPIC: post.html]
#25

perflubron

[GLOBAL: userInfoPane.html]
perflubron
  • Contributor

  • 132 posts
  • Corona SDK

Dislam, regarding revenue: in AdMob you can filter a report by targetting type. For me it looks like revenue will drop by around 5% by converting all personalized ads to context-based.




[topic_controls]
Page 1 of 3 1 2 3
 
[/topic_controls]