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. Eine funktionierende IMA-Implementierung mit dem UMP SDK finden Sie in den UMP-Beispiel-Apps Objective-C oder Swift.
Nachrichtentyp erstellen
Erstellen Sie Nutzermitteilungen mit einem der verfügbaren Mitteilungstypen auf dem Tab Datenschutz und Mitteilungen Ihres Ad Manager-Kontos. Das UMP SDK versucht, eine Datenschutzmitteilung anzuzeigen, die anhand der in Ihrem Projekt festgelegten Anwendungs-ID für Interactive Media Ads erstellt wurde.
Weitere Informationen finden Sie unter Datenschutz und Mitteilungen.
SDK importieren
Das UMP SDK ist nicht als Abhängigkeit des IMA SDKs enthalten. Sie müssen es also explizit hinzufügen.
CocoaPods (bevorzugt)
Am einfachsten importierst du das SDK mit CocoaPods in ein iOS-Projekt. Öffnen Sie die Podfile Ihres Projekts und fügen Sie dem Ziel Ihrer App diese 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.
Swift Package Manager
Das UMP SDK unterstützt auch den 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…).
Suche in der angezeigten Eingabeaufforderung nach dem GitHub-Repository des UMP SDK-Swift-Pakets:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
Wählen Sie die Version des UMP SDK Swift-Pakets 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.
App-ID hinzufügen
Sie finden Ihre Anwendungs-ID in der Ad Manager-Benutzeroberfläche.
Fügen Sie die ID mit dem folgenden Code-Snippet zu Ihrer Info.plist
-Datei hinzu:
<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Einwilligungsinformationen des Nutzers abrufen
Sie sollten bei jedem Start der App mithilfe von
requestConsentInfoUpdateWithParameters:completionHandler:
ein Update der Einwilligungsinformationen des Nutzers anfordern. Bei dieser Anfrage wird Folgendes geprüft:
- Ob eine Einwilligung erforderlich ist Beispielsweise ist die Einwilligung zum ersten Mal erforderlich oder die vorherige Einwilligungsentscheidung ist abgelaufen.
- Ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist Einige Datenschutzmitteilungen erfordern, dass Nutzer ihre Datenschutzoptionen jederzeit ändern können.
Swift
// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.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) {
// ...
}];
Formular für Datenschutzmitteilungen laden und anzeigen
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 UMPConsentForm.loadAndPresentIfRequired(from: viewController)
Objective-C
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
Datenschutzoptionen
Einige Formulare für Datenschutzmitteilungen werden über einen vom Publisher gerenderten Einstiegspunkt für Datenschutzoptionen angezeigt. So können Nutzer ihre Datenschutzoptionen jederzeit verwalten. Weitere Informationen dazu, welche Mitteilung Ihre Nutzer am 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
requestConsentInfoUpdateWithParameters:completionHandler:
aufgerufen haben, prüfen Sie mit
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, das das Formular für die Datenschutzoptionen enthält. Wenn kein Einstiegspunkt für den Datenschutz erforderlich ist, konfigurieren Sie das UI-Element so, dass es nicht sichtbar und nicht interaktiv ist.
Swift
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)areGDPRConsentMessagesRequired {
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 der Anforderungen an die Datenschutzoptionen finden Sie unter
UMPPrivacyOptionsRequirementStatus
.
Formular für Datenschutzoptionen präsentieren
Wenn der Nutzer mit Ihrem Element interagiert, wird das Formular mit den Datenschutzoptionen angezeigt:
Swift
UMPConsentForm.presentPrivacyOptionsForm(
from: viewController, completionHandler: completionHandler)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
Anzeigen mit Nutzereinwilligung anfordern
Bevor Sie Anzeigen anfordern, prüfen Sie mit
UMPConsentInformation.sharedInstance.canRequestAds
, ob Sie die Einwilligung des Nutzers eingeholt haben:
Swift
UMPConsentInformation.sharedInstance.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:
- Nachdem das UMP-SDK in der aktuellen Sitzung die Einwilligung eingeholt hat.
- Unmittelbar nach dem Anruf bei
requestConsentInfoUpdateWithParameters:completionHandler:
. Das UMP SDK hat möglicherweise in der vorherigen App-Sitzung die Einwilligung eingeholt.
Wenn bei 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 Arbeit bei Anzeigenanfragen vermeiden
Achten Sie beim Prüfen von
UMPConsentInformation.sharedInstance.canRequestAds
nach dem Einholen der Einwilligung und dem Aufrufen von
requestConsentInfoUpdateWithParameters:completionHandler:
darauf, dass Ihre Logik redundante Anzeigenanfragen verhindert, die dazu führen könnten, dass bei beiden Prüfungen true
zurückgegeben wird. Beispiel: mit einer booleschen Variablen.
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. Entfernen Sie den Code, mit dem diese Testgeräte-IDs festgelegt werden, bevor Sie Ihre App veröffentlichen.
- Rufen Sie einfach
requestConsentInfoUpdateWithParameters: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 Ihren 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 UMPDebugGeography das Verhalten Ihrer App testen, als befände sich das Gerät in verschiedenen Regionen, 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 auf dieser Seite beschriebene UMP SDK-Integration finden Sie unter UmpExample in Swift und UmpExample in Objective-C.