Serious problem with EU user ad consent

654 views
Skip to first unread message

Markus Wiederkehr

unread,
Oct 20, 2019, 8:00:09 AM10/20/19
to Google Mobile Ads SDK Developers
All of a sudden users of my app are confronted with the ad consent dialog every time my app gets started. Some are not particularly happy about that.

I wrote a small app to test what's going on and I have found that once the status has been explicitly set to UNKNOWN it is not possible to change it back to PERSONALIZED, it stays on UNKNOWN.

This only happens in the EU or with DEBUG_GEOGRAPHY_EEA set, everything works as expected with DEBUG_GEOGRAPHY_NOT_EEA.

Here's my test code, it uses the consent library version 1.0.7.

    public class MainActivity extends AppCompatActivity {
        private static final String TAG = "MainActivity";
        private static final String PUB_ID = "ADMOB_PUBLISHER_ID";
        private final Handler handler = new Handler();
        private ConsentInformation ci;

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

            ci = ConsentInformation.getInstance(this);
            ci.setDebugGeography(DebugGeography.DEBUG_GEOGRAPHY_EEA);

            Log.d(TAG, "Current status: " + ci.getConsentStatus());

            update();
            handler.postDelayed(() -> set(ConsentStatus.PERSONALIZED), 2000);
            handler.postDelayed(this::update, 4000);
            handler.postDelayed(() -> set(ConsentStatus.UNKNOWN), 6000);
            handler.postDelayed(this::update, 8000);
        }

        private void update() {
            ci.requestConsentInfoUpdate(new String[] { PUB_ID }, new ConsentInfoUpdateListener() {
                public void onConsentInfoUpdated(ConsentStatus consentStatus) {
                    Log.d(TAG, "Updated: " + consentStatus);
                }

                public void onFailedToUpdateConsentInfo(String reason) {
                    Log.e(TAG, "Failed: " + reason);
                }
            });
        }

        private void set(ConsentStatus status) {
            ci.setConsentStatus(status);
            Log.d(TAG, "Set status: " + ci.getConsentStatus());
        }
    }

Expected log output:

D/MainActivity: Current status: UNKNOWN
D/MainActivity: Updated: UNKNOWN
D/MainActivity: Set status: PERSONALIZED
D/MainActivity: Updated: PERSONALIZED
D/MainActivity: Set status: UNKNOWN
D/MainActivity: Updated: UNKNOWN

Actual log output:

D/MainActivity: Current status: UNKNOWN
D/MainActivity: Updated: UNKNOWN
D/MainActivity: Set status: PERSONALIZED
D/MainActivity: Updated: UNKNOWN
D/MainActivity: Set status: UNKNOWN
D/MainActivity: Updated: UNKNOWN

Regards,
Markus

Mobile Ads SDK Forum Advisor Prod

unread,
Oct 21, 2019, 2:36:23 AM10/21/19
to markus.w...@gmail.com, google-adm...@googlegroups.com

Hi Markus,

Thank you for reaching out to us, and for giving extensive details on your concern.

I understand that you are concerned on why the Consent SDK seems to lock your app's consent status to UNKNOWN even after you've explicitly tried setting it to PERSONALIZED, given an EU-centric geography setting. With this in mind, could you kindly provide the details below (via Reply privately to author) so that I can investigate the issue?

  • AdMob SDK version
  • Copy of your sample project (reproducing the issue)


Regards,
Ziv Yves Sanchez
Mobile Ads SDK Team



ref:_00D1U1174p._5001UKNuCf:ref
Message has been deleted

Sunho KIM

unread,
Oct 21, 2019, 9:40:26 AM10/21/19
to google-adm...@googlegroups.com

One of my users also reported this issue today.

So I investigated the issue.


I have showed my own consent dialog in my app.

The below is the daily number of consent selection event.

It seems that the consent dialog have been displayed continuously because ConsentStatus is always "UNKNOWN" even if users choose yes or no.

I never update my app during the period below.

It occurs both Android and IOS app.

I think Consent Information server has a problem.

I think it is an urgent issue.


Sunho



consent.png







S*R*T Gamer

unread,
Oct 21, 2019, 1:12:17 PM10/21/19
to Markus Wiederkehr, Google Mobile Ads SDK Developers
Please help me bro my Facebook account hacced by someone and chenge my phone number so what i do?? Please

tarik

--

---
You received this message because you are subscribed to the Google Groups "Google Mobile Ads SDK Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-admob-ads...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-admob-ads-sdk/95e848c7-0711-491e-9cc5-0293ddc9eda2%40googlegroups.com.

Chris Knight

unread,
Oct 21, 2019, 5:33:49 PM10/21/19
to Google Mobile Ads SDK Developers
I am also experiencing this issue which is badly affecting my users.  Once users set their preference, their preference appears to reset to UNKNOWN.  Sometimes this happens immediately, other times, it will persist for one or two more requests.  Once it gets reset to UKNOWN it stays that way and does not return their original choice.

IMPACT:  Every activity in my app which calls  ConsentInformation.getInstance(context).requestConsentInfoUpdate(...) is (either immediately or within a few requests) reporting UNKNOWN consent.  This value then leads to my app showing another consent dialog which is leading to frustrated customers who have to click through this on every screen leading to poor play store ratings.

Sam Lotti

unread,
Oct 21, 2019, 7:25:18 PM10/21/19
to Google Mobile Ads SDK Developers
We are also getting multiple support requests about this exact issue.  

From my testing it appears the status will go to UNKNOWN after the app is closed and then reopened.  In my testing it appear to be random but frequent, sometime I can reopen the app a few times before the dialog appears and other times its on the very next open.

This appears to be an urgent issue.

Arkadiusz Tomczak

unread,
Oct 22, 2019, 12:07:58 AM10/22/19
to Google Mobile Ads SDK Developers
I'm also observing this issue. It's very annoying for users.

Mobile Ads SDK Forum Advisor Prod

unread,
Oct 22, 2019, 1:54:44 AM10/22/19
to markus.w...@gmail.com, google-adm...@googlegroups.com

Hi all,

Thank you all for reporting this particular concern.

I will be taking this up with the rest of the team for further investigation, though we will be needing additional details in order to help with this. To that end, could you all kindly provide the details below so that I can pass it along to my team?

  • Android version
  • Device name
  • AdMob SDK version (if used)
  • Consent SDK version
  • Details of your particular findings (since the issue isn't consistently replicated)

Markus Wiederkehr

unread,
Oct 22, 2019, 2:17:16 AM10/22/19
to Google Mobile Ads SDK Developers
Hi Ziv,

It happens on all of my devices on all Android versions, both in emulators and real devices. AdMob version is irrelevant. Did you not run the code I sent you privately? It does not even include the SDK. Consent library version is 1.0.7 but probably also irrelevant since it seems to be a server issue.

My app with 400k active users asks for consent each and every time I start it on any of my test devices. That's pretty consistently replicable!

This is urgent, please inform the next tier!

Regards,
Markus

Sunho KIM

unread,
Oct 22, 2019, 2:30:07 AM10/22/19
to Google Mobile Ads SDK Developers
I am receiving a lot of reports from my users today.

It seems to be occurring in all Android versions & devices from users who live in European region.

I think it is absolutely a server issue. (Consent status server?)


I can reproduce the issue very easily with my test device.

My test device is..

Android version 10
Google Pixel 3 XL
AdMob 18.2.0
Consent SDK version 1.0.7

Mobile Ads SDK Forum Advisor Prod

unread,
Oct 22, 2019, 3:24:52 AM10/22/19
to markus.w...@gmail.com, google-adm...@googlegroups.com

Hi all,

Thank you for providing the requested details.

I will be taking this up with our Engineering team, along with all of the details thus presented, and will be updating this thread for any updates on this. Rest assured that we will actively be monitoring this particular issue.

@Markus
Thank you for providing the sample project. I was able to test the aforementioned project, although I'm afraid I could not replicate the issue on my end (see attached screenshots). That said, rest assured that the project (as well as the accompanying report) will prove very useful to the investigation.



Regards,
Ziv Yves Sanchez
Mobile Ads SDK Team



ref:_00D1U1174p._5001UKNuCf:ref
run_2.png
run_1.png

Markus Wiederkehr

unread,
Oct 22, 2019, 4:11:49 AM10/22/19
to Google Mobile Ads SDK Developers
Hi Ziv,

I just ran my app in a debugger to gain more insight.

In the consent library's class ConsentInformation you find the following piece of code, lines 434 ff.

        if (!consentData.getAdProviders().equals(consentData.getConsentedAdProviders())
            || hasNonPersonalizedPublisherIdChanged) {
            consentData.setConsentSource("sdk");
            consentData.setConsentStatus(ConsentStatus.UNKNOWN);
            consentData.setConsentedAdProviders(new HashSet<AdProvider>());
        }

So it sets the status to UNKNOWN if the AdProviders it just received from the server do not match the AdProviders the user previously consented to. (hasNonPersonalizedPublisherIdChanged is false and irrelevant.)

It turns out that the two sets are actually different, so that seems to be the cause of the problem. On my test device both sets have 199 entries but there is different information for two companies (197 are identical):

Previously consented AdProviders:
[{company_id=540, company_name='Yieldr', policy_url='https://www.yieldr.com/privacy/'}, {company_id=1170, company_name='Resolution Media', policy_url='https://www.udg.de/wp-content/uploads/2018/04/privacy_policy_EN.pdf'}]

AdProviders returned by the server:
[{company_id=540, company_name='Travel Data Collective', policy_url='https://www.yieldr.com/privacy/'}, {company_id=1170, company_name='Resolution Media', policy_url='https://www.nonstoppartner.net'}]

So in one case the company name differs and in the other case there is a difference in the privacy policy URL.

Regards,
Markus

Markus Wiederkehr

unread,
Oct 22, 2019, 4:30:33 AM10/22/19
to Google Mobile Ads SDK Developers
I should add that the server's response seems to alternate between the two versions of the AdProviders set, so each time the client stores one version as being consented to the server returns the other version on the next update request and the game starts over.

Markus

Mobile Ads SDK Forum Advisor Prod

unread,
Oct 22, 2019, 2:30:43 PM10/22/19
to markus.w...@gmail.com, google-adm...@googlegroups.com

Hi Markus,

This is Sam from the Mobile Ads SDK team. I have created an internal issue for your concern, thanks for all the detail and the test app, we will look into this and update you as we gain insights into the underlying issues.

Regards
 

Sam



ref:_00D1U1174p._5001UKNuCf:ref
Message has been deleted

Delph' 27

unread,
Feb 26, 2020, 5:47:10 AM2/26/20
to Google Mobile Ads SDK Developers


Le mardi 22 octobre 2019 20:30:43 UTC+2, mobileadssdkforumadvisor a écrit :

Hi Markus,

This is Sam from the Mobile Ads SDK team. I have created an internal issue for your concern, thanks for all the detail and the test app, we will look into this and update you as we gain insights into the underlying issues.

Regards
 

Sam

Hi, 

I have exactly the same problem today, when everything worked perfectly yesterday. Do you have a solution ?

Thank you in advance for your help 

Jens Engemann

unread,
Feb 27, 2020, 3:17:16 PM2/27/20
to Google Mobile Ads SDK Developers
Hi,

I am having the same issue since yesterday, too. I am using a custom made ads consent function and consent is requested every 2-3 restarts of my app. Applies to both the emulator and real devices.

Jens

David Martos Dourado

unread,
Feb 28, 2020, 4:51:00 AM2/28/20
to Google Mobile Ads SDK Developers
I have started noticing this myself as well since yesterday, while it was working fine for the previous months. I hope it gets resolved soon.

Mobile Ads SDK Forum Advisor Prod

unread,
Mar 2, 2020, 1:57:41 PM3/2/20
to davis...@gmail.com, google-adm...@googlegroups.com

Hi,

This is Sam from the Mobile Ads SDK team.  Can you please confirm you are using the latest versions of the consent SDK ( min v1.0.8 Android and v1.0.4 for iOS)?

We updated the consent update logic in those versions of the SDK.

If this is the case, can you please provide 2 charles logs, one for a prior session where consent was granted and one for a subsequent session where consent was again requested, so we can review for new causes of this issue?


Regards

Sam



ref:_00D1U1174p._5001UXTIZ6:ref
Reply all
Reply to author
Forward
0 new messages