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
- Arbeiten Sie den Startleitfaden durch.
- Konfigurieren Sie Ihre Mitteilungen auf dem Tab Datenschutz und Mitteilungen IhresAdMob -Kontos. Weitere Informationen finden Sie unterDatenschutz und Mitteilungen und
- Wenn Sie an DSGVO-bezogene Anforderungen arbeiten, lesen Sie Auswirkungen der IAB-Anforderungen auf Mitteilungen zur EU-Nutzereinwilligung.
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.
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 deinemInfo.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.
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 UMPDebugGeography
kö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.
Einwilligungsstatus zurücksetzen
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.