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 Objective-C oder Swift UMP-Beispiel-Apps.
Mitteilungstyp erstellen
Erstellen Sie Nutzermitteilungen mit einem der verfügbaren Mitteilungstypen auf dem Tab Datenschutz und Mitteilungen in Ihrem Ad Manager -Konto. 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 daher selbst hinzufügen.
CocoaPods (bevorzugt)
Das SDK lässt sich am einfachsten mit CocoaPods in ein iOS-Projekt importieren. Öffnen Sie die Podfile-Datei Ihres Projekts und fügen Sie die folgende Zeile dem Ziel Ihrer App hinzu:
pod 'GoogleUserMessagingPlatform'
Führen Sie dann den folgenden Befehl aus:
pod install --repo-updateWenn Sie CocoaPods noch nicht kennen, finden Sie unter CocoaPods verwenden weitere Informationen zum Erstellen und Verwenden von Podfile-Dateien.
Swift Package Manager
Das UMP SDK unterstützt auch den Swift Package Manager. Führen Sie die folgenden Schritte aus, um das Swift-Paket zu importieren.
Installieren Sie in Xcode das UMP SDK Swift Package. Gehen Sie dazu zu File > Add Packages... (Datei > Pakete hinzufügen).
Suchen Sie in der Eingabeaufforderung nach dem GitHub-Repository des UMP SDK Swift Package:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.gitWählen Sie die Version des UMP SDK Swift Package aus, die Sie verwenden möchten. Für neue Projekte empfehlen wir die Option Up to Next Major Version (Bis zur nächsten Hauptversion).
Xcode löst dann 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.
Anwendungs-ID hinzufügen
Ihre Anwendungs-ID finden Sie in der
Ad Manager-Benutzeroberfläche.
Fügen Sie die ID zu Ihrer
Info.plist
mit dem folgenden Code-Snippet hinzu:
<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Einwilligungsinformationen des Nutzers abrufen
Sie sollten bei jedem Start der App
eine Aktualisierung der Einwilligungsinformationen des Nutzers anfordern. Verwenden Sie dazu
requestConsentInfoUpdateWithParameters:completionHandler:. Bei dieser Anfrage wird Folgendes geprüft:
- Ist eine Einwilligung erforderlich? Eine Einwilligung ist beispielsweise erforderlich, wenn der Nutzer die App zum ersten Mal verwendet oder die vorherige Einwilligung abgelaufen ist.
- Ist ein Einstiegspunkt für Datenschutzoptionen erforderlich? Bei einigen Datenschutzerklärungen müssen Apps Nutzern die Möglichkeit geben, 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) {
// ...
}];
Formular für Datenschutzerklärung 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 präsentiert.
Swift
try await ConsentForm.loadAndPresentIfRequired(from: viewController)
Objective-C
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
Datenschutzoptionen
Einige Formulare für Datenschutzerklärungen werden über einen vom Publisher gerenderten Einstiegspunkt für Datenschutzoptionen präsentiert. So können Nutzer ihre Datenschutzeinstellungen jederzeit verwalten. Weitere Informationen dazu, welche Mitteilung Ihre Nutzer am Einstiegspunkt für Datenschutzoptionen sehen, finden Sie unter Verfügbare Mitteilungstypen.
Prüfen, ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist
Nachdem Sie
requestConsentInfoUpdateWithParameters:completionHandler: aufgerufen haben, prüfen Sie
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus, um
festzustellen, ob für Ihre App ein Einstiegspunkt für Datenschutzoptionen erforderlich ist. Wenn ein Einstieg
punkt erforderlich ist, fügen Sie Ihrer App ein sichtbares und interaktives UI-Element hinzu, über das das Formular für Datenschutzoptionen präsentiert wird. Wenn kein Einstiegspunkt für Datenschutzoptionen erforderlich ist, konfigurieren Sie Ihr UI-Element so, dass es nicht sichtbar und 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
Die 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 für 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 erhalten 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:
- Nachdem das UMP SDK die Einwilligung in der aktuellen Sitzung eingeholt hat.
- Unmittelbar nachdem Sie
requestConsentInfoUpdateWithParameters:completionHandler:aufgerufen haben. Das UMP SDK hat möglicherweise in der vorherigen App-Sitzung die Einwilligung eingeholt.
Wenn beim Einholen der Einwilligung ein Fehler auftritt, prüfen Sie, ob Sie Anzeigen anfordern können. Das UMP SDK verwendet den Einwilligungsstatus aus der vorherigen App-Sitzung.
Doppelte Anzeigenanfragen vermeiden
Da Sie
UMPConsentInformation.sharedInstance.canRequestAds nach dem Einholen der Einwilligung und nach dem Aufrufen
requestConsentInfoUpdateWithParameters:completionHandler: prüfen, muss Ihre Logik doppelte Anzeigenanfragen verhindern, die
dazu führen könnten, dass beide Prüfungen true zurückgeben. Sie können beispielsweise eine boolesche Variable verwenden.
Test
Wenn Sie die Integration während der Entwicklung in Ihrer App testen möchten, führen Sie die folgenden Schritte aus, 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.
- Rufen Sie
requestConsentInfoUpdateWithParameters:completionHandler:auf. Suchen Sie in der Logausgabe nach einer Mitteilung, die dem folgenden Beispiel ähnelt. Dort sehen Sie Ihre Geräte-ID und wie Sie sie als Testgerät hinzufügen:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]Kopieren Sie die Geräte-ID Ihres Testgeräts in die Zwischenablage.
Ändern Sie Ihren Code so, dass
UMPDebugSettings().testDeviceIdentifiersaufgerufen wird, und übergeben Sie eine Liste Ihrer Testgeräte-IDs.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){ // ... }];
Region erzwingen
Mit dem UMP SDK können Sie testen, wie sich Ihre App verhält, wenn sich das Gerät in verschiedenen Regionen befindet, z. B. im Europäischen Wirtschaftsraum (EWR), im Vereinigten Königreich und in der Schweiz, indem Sie UMPDebugGeography verwenden. Debug-Einstellungen funktionieren nur auf Testgeräten.
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){
// ...
}];
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 erste Installation durch einen Nutzer simulieren können.
Das SDK bietet dafür die Methode reset.
Swift
ConsentInformation.shared.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
Beispiele auf GitHub
Ein vollständiges Beispiel für die UMP SDK-Integration, die auf dieser Seite behandelt wird, finden Sie unter Swift UmpExample und Objective-C UmpExample.