Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade UMP SDK Version (add support for new DebugGeography enums) #1212

Open
cnkygmr opened this issue Nov 23, 2024 · 10 comments
Open

Upgrade UMP SDK Version (add support for new DebugGeography enums) #1212

cnkygmr opened this issue Nov 23, 2024 · 10 comments
Assignees
Labels

Comments

@cnkygmr
Copy link

cnkygmr commented Nov 23, 2024

Current version Android 2.2.0, Ios 2.4.0. Last version Android 3.1.0, Ios 2.7.0 I need fixes in the new version


ANDROID:

- Increased the minimum Android API level to 21.
- Updated [canRequestAds](https://developers.google.com/admob/android/privacy/api/reference/com/google/android/ump/ConsentInformation.html#canRequestAds()) to return true when the app has no privacy messages configured.
- Improved privacy message rendering behavior during orientation changes.
- Fixed a bug where privacy messages did not cover the full screen for apps displaying [edge-to-edge](https://developer.android.com/develop/ui/views/layout/edge-to-edge) content.
- Official release version for the ads personalization controls message.
- To support testing with regulated US states, added the following options to [ConsentDebugSettings.DebugGeography](https://developers.google.com/admob/android/privacy/api/reference/com/google/android/ump/ConsentDebugSettings.DebugGeography):
- DEBUG_GEOGRAPHY_REGULATED_US_STATE
- DEBUG_GEOGRAPHY_REGULATED_OTHER
- Deprecated DEBUG_GEOGRAPHY_NOT_EEA. Use DEBUG_GEOGRAPHY_OTHER instead.

IOS;

- Updated [canRequestAds](https://developers.google.com/admob/ios/privacy/api/reference/Classes/UMPConsentInformation#canrequestads) API to return true when the app has no privacy messages configured.
- Updated nullability on -[UMPConsentForm init] from nullable to nonnull.
- UIViewController references for consent messages are now nullable and not required. The SDK uses the app’s main window to look up view controllers automatically when one is not provided.
- To support testing with regulated US states, added the following options to [UMPDebugGeography](https://developers.google.com/admob/ios/privacy/api/reference/Enums/UMPDebugGeography):
- UMPDebugGeographyRegulatedUSState
- UMPDebugGeographyOther
- Deprecated UMPDebugGeographyNotEEA. Use UMPDebugGeographyOther instead.

@malandr2
Copy link
Collaborator

Hi @cnkygmr, with version 5.2.0 you're able to use the latest UMP SDK (3.1.0 and 2.7.0 and for Android and iOS, respectively). The flutter plugin has ongoing work to support UMPDebugGeographyRegulatedUSState and UMPDebugGeographyOther which it will do so in the next release.

@malandr2 malandr2 added the ump label Nov 25, 2024
@malandr2 malandr2 changed the title Upgrade UMP SDK Version Upgrade UMP SDK Version (add support for new DebugGeography enums) Nov 25, 2024
@cnkygmr
Copy link
Author

cnkygmr commented Nov 25, 2024

Also, there is a problem that I am not in America and this value returns true.

Future<bool> isPrivacyOptionsRequired() async {
    return await ConsentInformation.instance
        .getPrivacyOptionsRequirementStatus() ==
        PrivacyOptionsRequirementStatus.required;
  }

When you click on the code below and the code above returns true, the same consent form appears.

Future<bool> privacyOptions() async {
    final completer = Completer<bool>();
    bool privacyOptionsRequired = await isPrivacyOptionsRequired();
    if(privacyOptionsRequired) {
      ConsentForm.showPrivacyOptionsForm((formError) {
        if(formError != null) {
          completer.complete(false);
        } else {
          completer.complete(true);
        }
      });
    } else {
      completer.complete(true);
    }
    return completer.future;
  }

@malandr2
Copy link
Collaborator

malandr2 commented Nov 25, 2024

Hi @cnkygmr, based on your available message types, you may need to provide a privacy entry point and the form itself may be the same in order for user to modify their consent. This is working as intended.

@Tom3652
Copy link

Tom3652 commented Dec 7, 2024

I am also looking for the UMPDebugGeographyRegulatedUSState to test my code, i have a live app in the US but don't know if they receive the message i have setup in AdMob.

@malandr2
Copy link
Collaborator

malandr2 commented Dec 9, 2024

Hi @Tom3652, if you have set up a US regulated state message and the user lives in a US regulated state, they are still able to see the message. Currently there just isn't a way to test this via DebugSettings in Flutter but there will be support in our next release

@Tom3652
Copy link

Tom3652 commented Dec 10, 2024

Hi @malandr2 thanks for confirming, i simply would like to test it on my own to see the flow on when they are receiving it and if it's a correct user experience.
Is it enough to call :

  ConsentInformation.instance.requestConsentInfoUpdate(
      params,
      () async {
        ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) async {
          GmaMediationUnity mediationUnity = GmaMediationUnity();
          if (loadAndShowError != null) {
            // Consent gathering failed.
            LogManager.printDebug("Error consent form : ${loadAndShowError.message}");
          } else {
            AnalyticsAPI.logEvent("accept_ads_consent_eu");
            mediationUnity.setGDPRConsent(true);
            mediationUnity.setCCPAConsent(true);
          }
        });
      },
      (FormError error) {
        LogManager.printDebug("Error consent form : ${error.message}");
        AnalyticsAPI.logError(error, reason: "GDPR Consent form error : ${error.message}");
      },
    );

To display all the messages to the users ?

@malandr2
Copy link
Collaborator

Hi @Tom3652, the UMP SDK APIs look correct for consent forms that may appear on app start. You will also need to implement a privacy options entry point for privacy messages forms that require it, such as GDPR. Follow the UMP SDK guide https://developers.google.com/admob/flutter/privacy and see the Privacy Options section covers what APIs to use.

@malandr2
Copy link
Collaborator

And FWIW, setting

mediationUnity.setGDPRConsent(true);

to true is not recommended. It's possible the user did not grant consent and should be set to false. We recommend reading the user's consent choices to actually confirm the user has given consent to GDPR. Read our GDPR guide for how to ready consent choices

@Tom3652
Copy link

Tom3652 commented Dec 12, 2024

Hi @malandr2, thank you for your answer and explanations.

I very willing to do what is necessary but i admit i did not understand (took the time to understand) everything regarding on how to collect precisely the user's consent using the UMP SDK
I will check deeper your links and apply the necessary changes to comply as soon as i can.

Back to this issue, do you have any ETA about your next release ?
Thanks again !

@malandr2
Copy link
Collaborator

We expect a new release in January

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants