Los gehts

Plattform auswählen: Android iOS

Das Google User Messaging Platform (UMP) SDK ist ein Tool für Datenschutz und Mitteilungen, mit dem Sie Datenschutzeinstellungen verwalten können. Weitere Informationen finden Sie unter Datenschutz und Mitteilungen. Eine funktionierende IMA-Implementierung mit dem UMP SDK finden Sie in den UMP-Beispiel-Apps für Objective-C oder Swift.

Nachrichtentyp erstellen

Erstellen Sie Nutzermitteilungen mit einem der verfügbaren Nutzermitteilungstypen auf dem Tab Datenschutz und Mitteilungen Ihres Ad Manager-Kontos. Das UMP SDK versucht, eine Datenschutzmitteilung anzuzeigen, die aus der in Ihrem Projekt festgelegten Interactive Media-Anzeigen-Anwendungs-ID erstellt wurde.

Weitere Informationen finden Sie unter Datenschutz und Mitteilungen.

SDK importieren

Das UMP SDK ist nicht als Abhängigkeit des IMA SDK enthalten. Sie müssen es also explizit selbst hinzufügen.

Empfohlen: Swift Package Manager verwenden

So importieren Sie das Swift-Paket des UMP SDK:

  1. Installieren Sie in Xcode das UMP SDK Swift-Paket, indem Sie zu File > Add Packages… (Datei > Pakete hinzufügen…) gehen.

  2. Suchen Sie in der angezeigten Eingabeaufforderung nach dem GitHub-Repository für das UMP SDK Swift-Paket:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Wählen Sie die Version des UMP SDK-Swift-Pakets aus, die Sie verwenden möchten. Für neue Projekte empfehlen wir die Verwendung von Bis zur nächsten Hauptversion.

Anschließend löst Xcode die Paketabhängigkeiten auf und lädt sie im Hintergrund herunter. Weitere Informationen zum Hinzufügen von Paketabhängigkeiten finden Sie im Artikel von Apple.

CocoaPods

Wenn Sie CocoaPods verwenden möchten, öffnen Sie die Podfile-Datei Ihres Projekts und fügen Sie dem Ziel Ihrer App die folgende Zeile hinzu:

pod 'GoogleUserMessagingPlatform'

Führen Sie dann den folgenden Befehl aus:

pod install --repo-update

Wenn Sie CocoaPods noch nicht kennen, finden Sie unter CocoaPods verwenden weitere Informationen zum Erstellen und Verwenden von Podfiles.

Anwendungs-ID hinzufügen

Ihre Anwendungs-ID finden Sie in der Ad Manager-Benutzeroberfläche. Fügen Sie die ID mit dem folgenden Code-Snippet zu Ihrer Info.plist hinzu:

<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

Sie sollten bei jedem App-Start mit requestConsentInfoUpdateWithParameters:completionHandler: eine Aktualisierung der Einwilligungsinformationen des Nutzers anfordern. Mit dieser Anfrage wird Folgendes geprüft:

  • Ob eine Einwilligung erforderlich ist. Beispielsweise ist die Einwilligung zum ersten Mal erforderlich oder die vorherige Einwilligung ist abgelaufen.
  • Ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist. Bei einigen Datenschutzmitteilungen müssen Nutzer in Apps die Möglichkeit haben, ihre Datenschutzeinstellungen jederzeit zu ändern.

Swift


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  // ...
}

Objective-C


// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable requestConsentError) {
                           // ...
                         }];

Datenschutzmitteilung laden und präsentieren

Nachdem Sie den aktuellen Einwilligungsstatus erhalten haben, rufen Sie loadAndPresentIfRequiredFromViewController:completionHandler: auf, um alle Formulare zu laden, die zum Einholen der Nutzereinwilligung erforderlich sind. Nach dem Laden werden die Formulare sofort angezeigt.

Swift


try await ConsentForm.loadAndPresentIfRequired(from: viewController)

Objective-C


[UMPConsentForm
    loadAndPresentIfRequiredFromViewController:viewController
                             completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                 // Consent gathering process is complete.
                                }];

Datenschutzoptionen

Einige Formen von Datenschutzmitteilungen werden über einen vom Publisher gerenderten Einstiegspunkt für Datenschutzoptionen angezeigt, sodass Nutzer ihre Datenschutzoptionen jederzeit verwalten können. Weitere Informationen dazu, welche Mitteilung Ihre Nutzer am Einstiegspunkt für Datenschutzoptionen sehen, finden Sie unter Verfügbare Mitteilungstypen für Nutzer.

Prüfen, ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist

Nachdem Sie requestConsentInfoUpdateWithParameters:completionHandler: aufgerufen haben, prüfen Sie anhand von UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus, ob für Ihre App ein Einstiegspunkt für die Datenschutzoptionen erforderlich ist. Wenn ein Einstiegspunkt erforderlich ist, fügen Sie Ihrer App ein sichtbares und interaktives UI-Element hinzu, über das das Formular für die Datenschutzoptionen aufgerufen werden kann. Wenn kein Einstiegspunkt für den Datenschutz erforderlich ist, konfigurieren Sie Ihr UI-Element so, dass es nicht sichtbar und nicht interaktiv ist.

Swift


var isPrivacyOptionsRequired: Bool {
  return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}

Objective-C


- (BOOL)isPrivacyOptionsRequired {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
         UMPPrivacyOptionsRequirementStatusRequired;
}

- (void)gatherConsentFromConsentPresentationViewController:(UIViewController *)viewController
                                  consentGatheringComplete:
                                      (void (^)(NSError *_Nullable))consentGatheringComplete {
  UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
  // Set tag for under age of consent. Use NO constant to indicate that the user is not under age.
  parameters.tagForUnderAgeOfConsent = NO;

  UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
  // Uncomment the following line to simulate a consent request from users in the
  // European Economic Area (EEA) for testing purposes.
  // debugSettings.geography = UMPDebugGeographyEEA;
  parameters.debugSettings = debugSettings;

  // Requesting an update to consent information should be called on every app launch.
  [UMPConsentInformation.sharedInstance
      requestConsentInfoUpdateWithParameters:parameters
                           completionHandler:^(NSError *_Nullable requestConsentError) {
                             // ...
                           }];
}

- (void)loadAndPresentIfRequiredFromViewController:(UIViewController *)viewController
                           completionHandler:(void (^)(NSError *_Nullable))completionHandler {
  [UMPConsentForm
      loadAndPresentIfRequiredFromViewController:viewController
                               completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                   // Consent gathering process is complete.
                                  }];
}

- (void)presentPrivacyOptionsFormFromViewController:(UIViewController *)viewController
                                  completionHandler:
                                      (void (^)(NSError *_Nullable))completionHandler {
  [UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                            completionHandler:completionHandler];
}

@end

Eine vollständige Liste der Status für die Anforderungen an Datenschutzoptionen finden Sie unter UMPPrivacyOptionsRequirementStatus.

Formular für Datenschutzoptionen präsentieren

Wenn der Nutzer mit Ihrem Element interagiert, präsentieren Sie das Formular mit den Datenschutzoptionen:

Swift


ConsentForm.presentPrivacyOptionsForm(
  from: viewController, completionHandler: completionHandler)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Anzeigen mit Nutzereinwilligung anfordern

Prüfen Sie vor dem Anfordern von Anzeigen mit UMPConsentInformation.sharedInstance.canRequestAds, ob Sie die Einwilligung des Nutzers eingeholt haben:

Swift

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

An den folgenden Stellen können Sie prüfen, ob Sie Anzeigen anfordern können, während Sie die Einwilligung einholen:

Wenn während der Einwilligungserhebung ein Fehler auftritt, prüfen Sie, ob Sie Anzeigen anfordern können. Das UMP SDK verwendet den Einwilligungsstatus aus der vorherigen App-Sitzung.

Redundante Anzeigenanfragen vermeiden

Wenn Sie UMPConsentInformation.sharedInstance.canRequestAds prüfen, nachdem Sie die Einwilligung eingeholt und requestConsentInfoUpdateWithParameters:completionHandler: aufgerufen haben, sollten Sie darauf achten, dass Ihre Logik redundante Anzeigenanfragen verhindert, die dazu führen könnten, dass beide Prüfungen true zurückgeben. Beispielsweise mit einer booleschen Variable.

Test

Wenn Sie die Integration in Ihrer App während der Entwicklung testen möchten, gehen Sie so vor, um Ihr Testgerät programmatisch zu registrieren. Entfernen Sie den Code, mit dem diese Testgeräte-IDs festgelegt werden, bevor Sie Ihre App veröffentlichen.

  1. Rufen Sie einfach requestConsentInfoUpdateWithParameters:completionHandler: an.
  2. Suchen Sie in der Logausgabe nach einer Meldung, die in etwa wie im folgenden Beispiel aussieht. Sie enthält Ihre Geräte-ID und eine Anleitung, wie Sie sie als Testgerät hinzufügen:

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

  4. Ändern Sie Ihren Code so, dass UMPDebugSettings().testDeviceIdentifiers aufgerufen und eine Liste Ihrer Testgeräte-IDs übergeben wird.

    Swift

    let parameters = RequestParameters()
    let debugSettings = DebugSettings()
    
    debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
    parameters.debugSettings = debugSettings
    
    // Include the UMPRequestParameters in your consent request.
    ConsentInformation.shared.requestConsentInfoUpdate(
        with: parameters,
        completionHandler: { error in
          // ...
        })
    

    Objective-C

    UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
    UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
    
    debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
    parameters.debugSettings = debugSettings;
    
    // Include the UMPRequestParameters in your consent request.
    [UMPConsentInformation.sharedInstance
        requestConsentInfoUpdateWithParameters:parameters
                            completionHandler:^(NSError *_Nullable error){
                              // ...
    }];
    

Geografie erzwingen

Mit dem UMP SDK können Sie testen, wie sich Ihre App verhalten würde, wenn sich das Gerät in verschiedenen Regionen wie dem Europäischen Wirtschaftsraum (EWR), dem Vereinigten Königreich und der Schweiz befinden würde. Verwenden Sie dazu UMPDebugGeography. Beachten Sie, dass die Debug-Einstellungen nur auf Testgeräten funktionieren.

Swift

let parameters = RequestParameters()
let debugSettings = DebugSettings()

debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings

// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.requestConsentInfoUpdate(
    with: parameters,
    completionHandler: { error in
      // ...
    })

Objective-C

UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];

debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;

// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error){
                           // ...
}];

Wenn Sie Ihre App mit dem UMP SDK testen, kann es hilfreich sein, den Status des SDK zurückzusetzen, um die erste Installation durch einen Nutzer zu simulieren. Das SDK bietet hierfür die Methode reset.

Swift

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Beispiele auf GitHub

Ein vollständiges Beispiel für die auf dieser Seite beschriebene Integration des UMP SDK finden Sie unter Swift UmpExample und Objective-C UmpExample.