Das UMP SDK (User Messaging Platform) von Google ist ein Tool für Datenschutz und Mitteilungen, mit dem Sie Ihre Datenschutzeinstellungen verwalten können. Weitere Informationen finden Sie unter Datenschutz und Mitteilungen.
Nachrichtentyp erstellen
Erstellen Sie Nutzermitteilungen mit einem der verfügbaren Mitteilungstypen auf dem Tab Datenschutz und Mitteilungen Ihres AdMob-Kontos. Das UMP SDK versucht, eine Datenschutzmitteilung anzuzeigen, die anhand der in Ihrem Projekt festgelegten AdMob-Anwendungs-ID erstellt wurde.
Weitere Informationen finden Sie unter Informationen zu Datenschutz und Mitteilungen.
SDK importieren
CocoaPods (bevorzugt)
Am einfachsten importierst du das SDK mit CocoaPods in ein iOS-Projekt. Öffnen Sie die Podfile-Datei Ihres Projekts und fügen Sie diese Zeile in das Ziel Ihrer App ein:
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.
Swift-Paketmanager
Das UMP SDK unterstützt auch Swift Package Manager. So importieren Sie das Swift-Paket:
Installieren Sie das UMP SDK-Swift-Paket in Xcode. Gehen Sie dazu zu File > Add Packages… (Datei > Pakete hinzufügen…).
Suchen Sie in der angezeigten Eingabeaufforderung nach dem GitHub-Repository des UMP SDK Swift Package:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
Wählen Sie die Version des UMP SDK Swift Package aus, die Sie verwenden möchten. Für neue Projekte empfehlen wir die Option Bis zur nächsten Hauptversion.
Xcode löst dann Ihre Paketabhängigkeiten auf und lädt sie im Hintergrund herunter. Weitere Informationen zum Hinzufügen von Paketabhängigkeiten finden Sie im Artikel von Apple.
Manueller Download
Alternativ können Sie das SDK auch manuell importieren.
Ziehen Sie dann das Framework in Ihr Xcode-Projekt und wählen Sie Copy items if needed (Elemente bei Bedarf kopieren) aus.
Anschließend können Sie das Framework in jede von Ihnen benötigte Datei einfügen:
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
Anwendungs-ID hinzufügen
Sie finden Ihre App-ID auf der AdMob-Benutzeroberfläche.
Fügen Sie die ID mit dem folgenden Code-Snippet zu Ihrer Info.plist
-Datei hinzu:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Einwilligung einholen
So holen Sie die Einwilligung ein:
- Informationen zur aktuellen Nutzereinwilligung anfordern
- Laden Sie bei Bedarf ein Einwilligungsformular hoch und legen Sie es vor.
Anfrage zur Einwilligungserklärung
Sie sollten bei jedem Start der App mithilfe von
requestConsentInfoUpdate(with:completionHandler:)
ein Update der Einwilligungsinformationen des Nutzers anfordern. Dabei wird Folgendes geprüft:
- Ob eine Einwilligung erforderlich ist Beispiel: Die Einwilligung ist zum ersten Mal erforderlich oder die vorherige Einwilligungsentscheidung ist abgelaufen.
- Ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist Bei einigen Datenschutzmitteilungen müssen Apps den Nutzern die Möglichkeit geben, ihre Datenschutzeinstellungen jederzeit zu ändern.
Formular für Datenschutzmitteilungen laden und präsentieren (falls erforderlich)
Nachdem Sie den aktuellen Einwilligungsstatus erhalten haben, rufen Sie
loadAndPresentIfRequired(from:)
auf, um alle Formulare zu laden, die zum Einholen der Nutzereinwilligung erforderlich sind. Nach dem Laden sind die Formulare sofort zu sehen.
Der folgende Code zeigt, wie Sie die neuesten Einwilligungsinformationen des Nutzers anfordern. Falls erforderlich, wird der Code geladen und ein Formular mit einer Datenschutzmitteilung angezeigt:
Swift
// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
guard requestConsentError == nil else {
return consentGatheringComplete(requestConsentError)
}
Task { @MainActor in
do {
try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)
// Consent has been gathered.
consentGatheringComplete(nil)
} catch {
consentGatheringComplete(error)
}
}
}
Objective-C
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
if (requestConsentError) {
consentGatheringComplete(requestConsentError);
} else {
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(
NSError
*_Nullable loadAndPresentError) {
// Consent has been gathered.
consentGatheringComplete(
loadAndPresentError);
}];
}
}];
Datenschutzoptionen
Einige Formulare für Datenschutzmitteilungen werden über einen vom Publisher gerenderten Einstiegspunkt für Datenschutzoptionen angezeigt, über den Nutzer ihre Datenschutzoptionen jederzeit verwalten können. Weitere Informationen dazu, welche Mitteilung Ihre Nutzer beim Einstiegspunkt für die Datenschutzoptionen sehen, finden Sie unter Verfügbare Arten von Nutzermitteilungen.
Prüfen, ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist
Nachdem Sie
requestConsentInfoUpdate(with:completionHandler:)
aufgerufen haben, prüfen Sie anhand von
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
, ob für Ihre App ein Einstiegspunkt für Datenschutzoptionen erforderlich ist:
Swift
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)isPrivacyOptionsRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
Sichtbares Element zur App hinzufügen
Wenn ein Einstiegspunkt für den Datenschutz erforderlich ist, fügen Sie Ihrer App ein sichtbares und interaktives UI-Element hinzu, über das das Formular für die Datenschutzoptionen angezeigt wird. Wenn kein Datenschutz-Einstiegspunkt erforderlich ist, konfigurieren Sie Ihr UI-Element so, dass es nicht sichtbar und nicht interaktiv ist.
Swift
self.privacySettingsButton.isEnabled =
GoogleMobileAdsConsentManager.shared.isPrivacyOptionsRequired
Objective-C
strongSelf.privacySettingsButton.enabled =
GoogleMobileAdsConsentManager.sharedInstance
.isPrivacyOptionsRequired;
Formular für Datenschutzoptionen präsentieren
Wenn der Nutzer mit Ihrem Element interagiert, wird das Formular mit den Datenschutzoptionen angezeigt:
Swift
try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
Anzeigenanfrage senden
Bevor Sie Anzeigen in Ihrer App anfordern, prüfen Sie, ob Sie die Einwilligung des Nutzers mithilfe von
UMPConsentInformation.sharedInstance.canRequestAds
eingeholt haben. Es gibt zwei Stellen, an denen Sie das Einholen der Einwilligung prüfen sollten:
- Nachdem in der aktuellen Sitzung die Einwilligung eingeholt wurde.
- Unmittelbar nach dem Anruf bei
requestConsentInfoUpdate(with:completionHandler:)
Möglicherweise wurde die Einwilligung bereits in der vorherigen Sitzung erteilt. Wir empfehlen, nicht auf den Abschluss des Rückrufs zu warten, damit Sie nach der Einführung Ihrer App so schnell wie möglich mit dem Laden von Anzeigen beginnen können.
Wenn beim Einholen der Einwilligung ein Fehler auftritt, sollten Sie trotzdem prüfen, ob Sie Anzeigen anfordern können. Das UMP SDK verwendet den Einwilligungsstatus aus der vorherigen Sitzung.
Im folgenden Code wird geprüft, ob Sie während des Einholens der Einwilligung Anzeigen anfordern können:
Swift
GoogleMobileAdsConsentManager.shared.gatherConsent(from: self) { [weak self] consentError in
guard let self else { return }
if let consentError {
// Consent gathering failed.
print("Error: \(consentError.localizedDescription)")
}
if GoogleMobileAdsConsentManager.shared.canRequestAds {
self.startGoogleMobileAdsSDK()
}
// ...
}
// This sample attempts to load ads using consent obtained in the previous session.
if GoogleMobileAdsConsentManager.shared.canRequestAds {
startGoogleMobileAdsSDK()
}
Objective-C
[GoogleMobileAdsConsentManager.sharedInstance
gatherConsentFromConsentPresentationViewController:self
consentGatheringComplete:^(NSError *_Nullable consentError) {
if (consentError) {
// Consent gathering failed.
NSLog(@"Error: %@", consentError.localizedDescription);
}
__strong __typeof__(self) strongSelf = weakSelf;
if (!strongSelf) {
return;
}
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
[strongSelf startGoogleMobileAdsSDK];
}
// ...
}];
// This sample attempts to load ads using consent obtained in the previous session.
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
[self startGoogleMobileAdsSDK];
}
Im folgenden Code wird das Google Mobile Ads SDK eingerichtet, nachdem die Einwilligung des Nutzers eingeholt wurde:
Swift
private func startGoogleMobileAdsSDK() {
DispatchQueue.main.async {
guard !self.isMobileAdsStartCalled else { return }
self.isMobileAdsStartCalled = true
// Initialize the Google Mobile Ads SDK.
GADMobileAds.sharedInstance().start()
if self.isViewDidAppearCalled {
self.loadBannerAd()
}
}
}
Objective-C
- (void)startGoogleMobileAdsSDK {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
[self loadBannerAd];
});
}
Test
Wenn Sie die Integration in Ihrer App während der Entwicklung testen möchten, können Sie Ihr Testgerät wie unten beschrieben programmatisch registrieren. Entferne den Code, mit dem diese Testgeräte-IDs festgelegt werden, bevor du deine App veröffentlichst.
- Rufen Sie einfach
requestConsentInfoUpdate(with:completionHandler:)
an. Suchen Sie in der Protokollausgabe nach einer Meldung, die Ihrer Geräte-ID und der Anleitung zum Hinzufügen als Testgerät ähnelt:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
Kopieren Sie die ID des Testgeräts in die Zwischenablage.
Ändern Sie den Code so, dass
UMPDebugSettings().testDeviceIdentifiers
aufgerufen und eine Liste Ihrer Testgeräte-IDs übergeben wird.Swift
let parameters = UMPRequestParameters() let debugSettings = UMPDebugSettings() debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"] parameters.debugSettings = debugSettings // Include the UMPRequestParameters in your consent request. 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" ]; 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 mithilfe von geography
das Verhalten Ihrer App testen, als würde sich das Gerät in verschiedenen Regionen befinden, z. B. im EWR oder im Vereinigten Königreich. Die Debug-Einstellungen funktionieren nur auf Testgeräten.
Swift
let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings
// Include the UMPRequestParameters in your consent request.
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;
// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable error){
// ...
}];
Einwilligungsstatus zurücksetzen
Wenn Sie Ihre App mit dem UMP SDK testen, kann es hilfreich sein, den Status des SDK zurückzusetzen, damit Sie die Erstinstallation eines Nutzers simulieren können.
Dazu bietet das SDK die Methode reset
.
Swift
UMPConsentInformation.sharedInstance.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
Beispiele auf GitHub
Ein vollständiges Beispiel für die UMP SDK-Integration, das auf dieser Seite behandelt wird, finden Sie unter Swift BannerExample und Objective-C BannerExample.