Jetzt starten

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Gemäß der Richtlinie zur EU-Nutzereinwilligung von Google müssen Sie Ihren Nutzern im Europäischen Wirtschaftsraum (EWR) und im Vereinigten Königreich bestimmte Informationen offenlegen und ihre Einwilligung zur Verwendung von Cookies oder anderen lokalen Speicherverfahren, sofern gesetzlich erforderlich, sowie für die Verwendung personenbezogener Daten (z. B. AdID) zur Auslieferung von Anzeigen einholen. Diese Richtlinie entspricht den Anforderungen der EU-Datenschutzrichtlinie für elektronische Kommunikation und der EU-Datenschutz-Grundverordnung (DSGVO).

Google bietet das User Messaging Platform SDK (UMP) an, um Publisher bei der Umsetzung dieser Richtlinie zu unterstützen. Das UMP SDK wurde aktualisiert, um die neuesten IAB-Standards zu unterstützen. Alle diese Konfigurationen können jetzt bequem in AdMob Datenschutz und Mitteilungen durchgeführt werden.

Voraussetzungen

Arten von Nutzermitteilungen

Siehe Arten von Nutzermitteilungen Eine vollständige Liste der unterstützten Nachrichten. Eine genaue Anleitung zur Implementierung der einzelnen Nachrichtentypen finden Sie in der linken Navigationsleiste.

SDK importieren

CocoaPods (bevorzugt)

Das UMP SDK ist als Abhängigkeit des Google Mobile Ads SDK-Pods enthalten, der mit Google Mobile Ads SDK 7.64.0 beginnt.

Am einfachsten lässt sich das SDK mit CocoaPods in ein iOS-Projekt importieren. Öffnen Sie die Podfile Ihres Projekts und fügen Sie diese Zeile dem Ziel Ihrer Anwendung hinzu:

pod 'Google-Mobile-Ads-SDK'

Führen Sie dann den folgenden Befehl aus:

pod install --repo-update

Wenn Sie mit CocoaPods noch nicht vertraut sind, finden Sie unter CocoaPods verwenden Informationen zum Erstellen und Verwenden von Podfiles.

Manueller Download

Die andere Möglichkeit ist, das SDK manuell zu importieren.

SDK herunterladen

Ziehen Sie dann das Framework in Ihr Xcode-Projekt und wählen Sie Copy items if needed aus.

Anschließend können Sie das Framework in jede beliebige Datei einfügen:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Info.plist aktualisieren

App-ID ermitteln und füge es deinem Info.plist hinzu:

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

Bestimmen, ob eine Nachricht angezeigt werden muss

Sie sollten bei jedem App-Start eine Aktualisierung der Einwilligungsinformationen des Nutzers anfordern, bevor Sie ein Formular laden. requestConsentInfoUpdateWithParameters:completionHandler: So können Sie feststellen, ob Ihre Nutzer eine Einwilligung geben müssen, falls sie das noch nicht getan haben oder wenn ihre Einwilligung abgelaufen ist.

Bei Bedarf können Sie das Formular später präsentieren.

Hier ein Beispiel dafür, wie Sie den Status beim App-Start prüfen können:

Swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
   // Create a UMPRequestParameters object.
   let parameters = UMPRequestParameters()
   // Set tag for under age of consent. Here false means users are not under age.
   parameters.tagForUnderAgeOfConsent = false

   // Request an update to the consent information.
   UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
      with: parameters,
      completionHandler: { error in
        if error != nil {
           // Handle the error.
        } else {
           // The consent information state was updated.
           // You are now ready to check if a form is
           // available.
        }
       })
}

Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

// Create a UMPRequestParameters object.
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
// Set tag for under age of consent. Here NO means users are not under age.
parameters.tagForUnderAgeOfConsent = NO;

// Request an update to the consent information.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error) {
                           if (error) {
                             // Handle the error.
                           } else {
                             // The consent information state was updated.
                             // You are now ready to check if a form is
                             // available.
                           }
                         }];
}

Formular laden, falls verfügbar

Bevor ein Formular angezeigt werden kann, müssen Sie zuerst prüfen, ob eines verfügbar ist. Nicht verfügbare Formulare können daran liegen, dass der Nutzer eingeschränktes Anzeigen-Tracking aktiviert hat oder Sie das Formular als minderjährig gekennzeichnet haben.

Die Verfügbarkeit eines Formulars können Sie mit dem zuvor erstelltenthe formStatus property on the UMPConsentInformation instance prüfen.

Fügen Sie dann eine Wrapper-Methode hinzu, um das Formular zu laden:

Swift

// Request an update to the consent information.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
    withParameters: parameters,
    completionHandler: { [self] error in

      // The consent information has updated.
      if error != nil {
        // Handle the error.
      } else {
        // The consent information state was updated.
        // You are now ready to see if a form is available.
        let formStatus = UMPConsentInformation.sharedInstance.formStatus
        if formStatus == UMPFormStatus.available {
          loadForm()
        }
      }
    })
...
func loadForm() {

}

Objective-C

// Request an update to the consent information.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError* _Nullable error) {

                           // The consent information has updated.
                           if (error) {
                             // Handle the error.
                           } else {
                             // The consent information state was updated.
                             // You are now ready to see if a form is available.
                             UMPFormStatus formStatus =
                                 UMPConsentInformation.sharedInstance
                                     .formStatus;
                             if (formStatus == UMPFormStatusAvailable) {
                               [self loadForm];
                             }
                           }
                         }];
...
- (void) loadForm {

}

Verwenden Sie the static loadWithCompletionHandler: method on the UMPConsentForm class, um das Formular zu laden.

Swift

func loadForm() {
  // Loads a consent form. Must be called on the main thread.
  UMPConsentForm.load(
      withCompletionHandler: { form, loadError in
        if loadError != nil {
          // Handle the error
        } else {
          // Present the form
        }
      })
}

Objective-C

- (void)loadForm {
  [UMPConsentForm
      loadWithCompletionHandler:^(UMPConsentForm *form, NSError *loadError) {
        if (loadError) {
          // Handle the error
        } else {
          // Present the form
        }
      }];
}

Präsentieren Sie das Formular bei Bedarf.

Nachdem Sie die Verfügbarkeit des Formulars ermittelt und geladen haben, verwenden Sie die MethodepresentFromViewController:completionHandler: auf der InstanzUMPConsentForm , um das Formular zu präsentieren.

Verwenden Sie dasUMPConsentInformation -Objekt aus einem früheren Schritt, um dieconsent status zu prüfen und die MethodeloadForm zu aktualisieren:

Swift

func loadForm() {
  UMPConsentForm.load(withCompletionHandler: { form, loadError in
    if loadError != nil {
      // Handle the error.
    } else {
      // Present the form. You can also hold on to the reference to present
      // later.
      if UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatus.required {
        form?.present(
            from: self,
            completionHandler: { dismissError in
              if UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatus.obtained {
                // App can start requesting ads.
              }
                // Handle dismissal by reloading form.
                loadForm();
            })
      } else {
        // Keep the form available for changes to user consent.
      }
    }
  })
}

Objective-C

- (void)loadForm {
  [UMPConsentForm loadWithCompletionHandler:^(UMPConsentForm *form,
                                              NSError *loadError) {
    if (loadError) {
      // Handle the error.
    } else {
      // Present the form. You can also hold on to the reference to present
      // later.
      if (UMPConsentInformation.sharedInstance.consentStatus ==
          UMPConsentStatusRequired) {
        [form
            presentFromViewController:self
                    completionHandler:^(NSError *_Nullable dismissError) {
                      if (UMPConsentInformation.sharedInstance.consentStatus ==
                          UMPConsentStatusObtained) {
                        // App can start requesting ads.
                      }
                        // Handle dismissal by reloading form.
                        [self loadForm];
                    }];
      } else {
        // Keep the form available for changes to user consent.
      }
    }
  }];
}

Wenn Sie Aktionen ausführen müssen, nachdem der Nutzer eine Auswahl getroffen oder das Formular geschlossen hat, platzieren Sie diese Logik in dem Vervollständigungs-Handler oder dem Callback für Ihr Formular.

Testen

Geografie erzwingen

Mit dem UMP SDK können Sie das Verhalten Ihrer App testen, als ob sich das Gerät im EWR oder im Vereinigten Königreich befinden würde, und zwar mithilfe von the debugGeography property of type UMPDebugGeography on UMPDebugSettings.

Sie müssen die Hash-ID Ihres Testgeräts in den Debug-Einstellungen Ihrer App angeben, um die Fehlerbehebungsfunktion verwenden zu können. Wenn SierequestConsentInfoUpdateWithParameters:completionHandler: aufrufen, ohne diesen Wert festzulegen, protokolliert die Anwendung bei der Ausführung den erforderlichen ID-Hash.

Swift

let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = UMPDebugGeography.EEA
parameters.debugSettings = debugSettings
UMPConsentInformation.sharedInstance.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;
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error){
                           ...
}];

Mit UMPDebugGeographykönnen Sie die Geografie auf eine der folgenden Optionen erzwingen:

DebugGeografie Beschreibung
UMPDebugGeographyDisabled Debug-Geografie deaktiviert.
UMPDebugGeographyEEA Die Region entspricht bei Fehlerbehebungsgeräten dem EWR.
UMPDebugGeographyNotEEA Geografie wird für Debug-Geräte nicht im EWR angezeigt.

Die Einstellungen zur Fehlerbehebung funktionieren nur auf Testgeräten. Emulatoren müssen der Geräte-ID-Liste nicht hinzugefügt werden, da für sie standardmäßig bereits Tests aktiviert sind.

Wenn Sie Ihre App mit dem UMP SDK testen, kann es hilfreich sein, den SDK-Status zurückzusetzen, damit Sie die erste Installation eines Nutzers simulieren können. Das SDK bietet die Methode reset dafür.

Swift

UMPConsentInformation.sharedInstance.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Sie sollten sich auch an reset wenden, wenn Sie das UMP SDK vollständig aus Ihrem Projekt entfernen möchten.