Erste Schritte

Das Google User Messaging Platform (UMP) SDK ist ein Datenschutz- und Benachrichtigungstool, um Ihre Datenschutzeinstellungen zu verwalten. Weitere Informationen finden Sie unter Über Datenschutz und Nachrichtenfunktion.

Mitteilungstyp erstellen

Erstellen Sie Nutzermitteilungen mit einer der Verfügbare Mitteilungstypen für Nutzer Datenschutz- und Messaging auf Ihrem AdMob Konto. Das UMP SDK versucht, eine Datenschutzmitteilung erstellt aus der AdMob Anwendungs-ID die in Ihrem Projekt festgelegt sind.

Weitere Informationen finden Sie unter Datenschutz und Mitteilungen

Anwendungs-ID hinzufügen

Ihre Anwendungs-ID finden Sie in der AdMob-Benutzeroberfläche: Fügen Sie die ID Ihrem . mit dem folgenden Code-Snippet:

Sie sollten bei jeder App eine Aktualisierung der Einwilligungsinformationen des Nutzers anfordern mit requestConsentInfoUpdate()starten. In dieser Anfrage wird geprüft, Folgendes:

  • Ob eine Einwilligung erforderlich ist: Beispielsweise ist eine Einwilligung für die oder die vorherige Einwilligungsentscheidung ist abgelaufen.
  • Ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist Einige Datenschutzmitteilungen Sie können festlegen, dass Apps Nutzern die Möglichkeit geben, ihre Datenschutzeinstellungen jederzeit zu ändern.

Hier ist ein Beispiel, wie Sie den Status beim Start der App prüfen können:

@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update for the consent information.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      // TODO: Load and present the privacy message form.
    },
    (FormError error) {
      // Handle the error.
    },
  );
}

Formular für Datenschutzmitteilungen laden und präsentieren (falls erforderlich)

Nachdem Sie den aktuellen Einwilligungsstatus erhalten haben, rufen Sie loadAndShowConsentFormIfRequired() um alle Formulare zu laden, die für die Einholung der Nutzereinwilligung. Nach dem Laden sind die Formulare sofort zu sehen.

@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update for the consent information.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
        if (loadAndShowError != null) {
          // Consent gathering failed.
        }

        // Consent has been gathered.
      });
    },
    (FormError error) {
      // Handle the error.
    },
  );
}
.

Wenn du weitere Aktionen ausführen musst, nachdem der Nutzer eine Auswahl getroffen oder die Anzeige geschlossen hat platziere diese Logik in der callback für Ihr Formular.

Datenschutzoptionen

Einige Formulare für Datenschutzmitteilungen werden von einem vom Publisher gerenderten Datenschutz Optionen, mit denen Nutzer ihre Datenschutzeinstellungen jederzeit verwalten können. Weitere Informationen dazu, welche Mitteilung Ihre Nutzer in den Datenschutzoptionen sehen Einstiegspunkt erhalten, siehe Verfügbare Mitteilungstypen für Nutzer.

So implementieren Sie einen Einstiegspunkt für Datenschutzoptionen:

  1. Prüfen Sie getPrivacyOptionsRequirementStatus().
  2. Wenn ein Einstiegspunkt für Datenschutzoptionen müssen Sie Ihrer App ein sichtbares und interaktives UI-Element hinzufügen.
  3. Lösen Sie das Formular für Datenschutzoptionen aus mit showPrivacyOptionsForm()

Im folgenden Codebeispiel werden diese Schritte veranschaulicht:

class AppExampleState extends State<AppExample> {
  static const _privacySettingsText = 'Privacy Settings';

  // Use a bool to initialize the Mobile Ads SDK and load ads once.
  var _isMobileAdsInitializeCalled = false;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'App Example',
      home: Scaffold(
          appBar: AppBar(
            title: const Text('App Example'),
            actions: _isMobileAdsSDKInitialized
                // Regenerate the options menu to include a privacy setting.
                ? _privacySettingsAppBarAction()
                : null
          ),
          body: // ...
      ),
    );
  }

  List<Widget> _privacySettingsAppBarAction() {
    return <Widget>[
      FutureBuilder(
          future: ConsentInformation.instance.isPrivacyOptionsRequired(),
          builder: (context, snapshot) {
            final bool visibility = snapshot.data ?? false;
            return Visibility(
                visible: visibility,
                child: PopupMenuButton<String>(
                  onSelected: (String result) {
                    if (result == _privacySettingsText) {
                      ConsentForm.showPrivacyOptionsForm((formError) {
                        if (formError != null) {
                          debugPrint(
                              "${formError.errorCode}: ${formError.message}");
                        }
                      });
                    }
                  },
                  itemBuilder: (BuildContext context) =>
                      <PopupMenuEntry<String>>[
                    const PopupMenuItem<String>(
                        value: _privacySettingsText,
                        child: Text(_privacySettingsText))
                  ],
                ));
          })
    ];
  }
}

Anzeigenanfrage senden

Bevor Sie Anzeigen in Ihrer App anfordern, prüfen Sie, ob Sie die Einwilligung eingeholt haben vom Nutzer mit canRequestAds(). Es gibt zwei sollten Sie beim Einholen der Einwilligung überprüfen:

  • Nachdem in der aktuellen Sitzung die Einwilligung eingeholt wurde.
  • Unmittelbar nach Ihrem Anruf bei requestConsentInfoUpdate() Möglicherweise wurde die Einwilligung bereits in der vorherigen Sitzung erteilt. Als Latenz solltet ihr nicht auf den Abschluss des Callbacks warten, Anzeigen so bald wie möglich nach der Einführung Ihrer App zu laden.

Wenn beim Einholen der Einwilligung ein Fehler auftritt, sollten Sie trotzdem Anzeigen anzufordern. Für das UMP SDK wird der Einwilligungsstatus aus dem vorherigen Sitzung.

class AppExampleState extends State<AppExample> {

  // Use a bool to initialize the Mobile Ads SDK and load ads once.
  var _isMobileAdsInitializeCalled = false;

  @override
  void initState() {
    super.initState();

    // Create a ConsentRequestParameters object.
    final params = ConsentRequestParameters();

    // Request an update for the consent information.
    ConsentInformation.instance.requestConsentInfoUpdate(
      params,
      () async {
        ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
          if (loadAndShowError != null) {
            // Consent gathering failed.
          }

          // Consent has been gathered.
          _initializeMobileAdsSDK();
        });
      },
      (FormError error) {
        // Handle the error.
      },
    );

    // Check if you can initialize the Mobile Ads SDK in parallel while
    // checking for new consent information. Consent obtained in the
    // previous session can be used to request ads.
    _initializeMobileAdsSDK();
  }

  void _initializeMobileAdsSDK() async {
    if (_isMobileAdsInitializeCalled) {
      return;
    }

    // Initialize the Mobile Ads SDK if the SDK has gathered consent aligned with
    // the app's configured messages.
    var canRequestAds = await ConsentInformation.instance.canRequestAds();
    if (canRequestAds) {
      setState(() {
        _isMobileAdsInitializeCalled = true;
      });

      // Initialize the Mobile Ads SDK.
      MobileAds.instance.initialize();

      // TODO: Request an ad.
    }
  }
}

Test

Wenn Sie die Integration in Ihre App während der Entwicklung testen möchten, folgen Sie mit diesen Schritten können Sie Ihr Testgerät programmatisch registrieren. Achten Sie darauf, die Code, mit dem diese Testgeräte-IDs festgelegt werden, bevor Sie Ihre App veröffentlichen.

  1. Rufen Sie uns unter requestConsentInfoUpdate()an.
  2. Suchen Sie in der Logausgabe nach einer Nachricht ähnlich dem folgenden Beispiel. Ihre Geräte-ID und wie Sie sie als Testgerät hinzufügen:

    Android

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231")
    to set this as a debug device.
    

    iOS

    <UMP SDK>To enable debug mode for this device,
    set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. Kopieren Sie die Testgeräte-ID in die Zwischenablage.

  4. Ändern Sie Ihren Code, Anrufen ConsentDebugSettings.testIdentifiers und übergeben Sie eine Liste Ihrer Testgeräte-IDs.

    ConsentDebugSettings debugSettings = ConsentDebugSettings(
      testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
    );
    
    ConsentRequestParameters params =
        ConsentRequestParameters(consentDebugSettings: debugSettings);
    
    ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
      // ...
    };
    

Geografie erzwingen

Mit dem UMP SDK können Sie das Verhalten Ihrer App so testen, als wäre das Gerät sich im EWR oder Vereinigten Königreich befinden, unter Verwendung von the DebugGeography field on ConsentDebugSettings. Beachten Sie, dass Debug-Einstellungen funktionieren nur auf Testgeräten.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
);

ConsentRequestParameters params =
    ConsentRequestParameters(consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
  // ...
};

Wenn Sie Ihre App mit dem UMP SDK testen, kann es hilfreich sein, das Status des SDK, um die erste Installation durch einen Nutzer zu simulieren. Das SDK bietet dazu die Methode reset() .

ConsentInformation.instance.reset();
.

Beispiele auf GitHub