Le SDK Google User Messaging Platform (UMP) est un outil de confidentialité et de messagerie qui vous aide à gérer les paramètres de confidentialité. Pour en savoir plus, consultez la section À propos de "Confidentialité et messages".
Créer un type de message
Créez des messages destinés aux utilisateurs avec l'un des types de messages disponibles dans l'onglet Confidentialité et messages de votre compte AdMob. Le SDK UMP tente d'afficher un message de confidentialité créé à partir de l'ID d'application AdMob défini dans votre projet.
Pour en savoir plus, consultez À propos de la confidentialité et des messages.
Importer le SDK
CocoaPods (recommandé)
Le moyen le plus simple d'importer le SDK dans un projet iOS consiste à utiliser CocoaPods. Ouvrez le fichier Podfile de votre projet et ajoutez cette ligne à la cible de votre application :
pod 'GoogleUserMessagingPlatform'
Exécutez ensuite la commande suivante :
pod install --repo-update
Si vous ne connaissez pas CocoaPods, consultez Utiliser CocoaPods pour savoir comment créer et utiliser des Podfiles.
Swift Package Manager
Le SDK UMP est également compatible avec le gestionnaire de packages Swift. Suivez ces étapes pour importer le package Swift.
Dans Xcode, installez le package Swift du SDK UMP en accédant à File > Add Packages... (Fichier > Ajouter des packages...).
Dans l'invite qui s'affiche, recherchez le dépôt GitHub du package Swift du SDK UMP:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
Sélectionnez la version du package Swift du SDK UMP que vous souhaitez utiliser. Pour les nouveaux projets, nous vous recommandons d'utiliser l'option Jusqu'à la prochaine version majeure.
Xcode résout ensuite vos dépendances de package et les télécharge en arrière-plan. Pour en savoir plus sur l'ajout de dépendances de packages, consultez l'article d'Apple.
Téléchargement manuel
L'autre façon d'importer le SDK consiste à le faire manuellement.
Ensuite, faites glisser le framework dans votre projet Xcode en veillant à sélectionner Copy items if needed (Copier les éléments si nécessaire).
Vous pouvez ensuite inclure le framework dans n'importe quel fichier dont vous avez besoin à l'aide de :
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
Ajouter l'ID application
L'ID de votre application est indiqué dans l'interface utilisateur d'AdMob.
Ajoutez l'ID à votre Info.plist
avec l'extrait de code suivant:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Obtenir le consentement
Pour recueillir le consentement des utilisateurs, procédez comme suit:
- Demande des informations sur le consentement de l'utilisateur les plus récentes.
- Chargez et présentez un formulaire de consentement, si nécessaire.
Demande d'informations sur le consentement
Vous devez demander la mise à jour des informations sur le consentement de l'utilisateur à chaque lancement de l'application, à l'aide de
requestConsentInfoUpdate(with:completionHandler:)
. Cette requête vérifie les éléments suivants:
- Le consentement est-il requis ? Par exemple, le consentement est requis pour la première fois, ou la décision précédente concernant le consentement a expiré.
- Indique si un point d'entrée pour les options de confidentialité est obligatoire. Certains messages sur la confidentialité exigent que les applications autorisent les utilisateurs à modifier leurs options de confidentialité à tout moment.
Charger et présenter un formulaire de message sur la confidentialité si nécessaire
Une fois que vous avez reçu l'état de consentement le plus récent, appelez
loadAndPresentIfRequired(from:)
pour charger les formulaires requis pour recueillir le consentement de l'utilisateur. Une fois le chargement terminé, les formulaires s'affichent immédiatement.
Le code suivant montre comment demander les dernières informations sur le consentement de l'utilisateur. Si nécessaire, le code charge et présente un formulaire de message de confidentialité:
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);
}];
}
}];
Options de confidentialité
Certains formulaires de message de confidentialité sont présentés à partir d'un point d'entrée des options de confidentialité généré par l'éditeur, ce qui permet aux utilisateurs de gérer leurs options de confidentialité à tout moment. Pour en savoir plus sur le message que vos utilisateurs voient au niveau du point d'entrée des options de confidentialité, consultez la section Types de messages utilisateur disponibles.
Vérifier si un point d'entrée pour les options de confidentialité est requis
Après avoir appelé
requestConsentInfoUpdate(with:completionHandler:)
, vérifiez
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
pour déterminer si un point d'entrée des options de confidentialité est requis pour votre application :
Swift
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)isPrivacyOptionsRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
Ajouter un élément visible à votre application
Si un point d'entrée pour la confidentialité est requis, ajoutez à votre application un élément d'interface utilisateur visible et interactif qui présente le formulaire d'options de confidentialité. Si aucun point d'entrée pour la confidentialité n'est requis, configurez votre élément d'interface utilisateur pour qu'il ne soit pas visible et interactif.
Swift
self.privacySettingsButton.isEnabled =
GoogleMobileAdsConsentManager.shared.isPrivacyOptionsRequired
Objective-C
strongSelf.privacySettingsButton.enabled =
GoogleMobileAdsConsentManager.sharedInstance
.isPrivacyOptionsRequired;
Présenter le formulaire d'options de confidentialité
Lorsque l'utilisateur interagit avec votre élément, présentez le formulaire d'options de confidentialité :
Swift
try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
Demander des annonces
Avant de demander des annonces dans votre application, vérifiez si vous avez obtenu le consentement de l'utilisateur à l'aide d'
UMPConsentInformation.sharedInstance.canRequestAds
. Vous pouvez le vérifier à deux endroits lorsque vous recueillez le consentement des utilisateurs:
- Une fois que le consentement a été obtenu lors de la session en cours.
- Immédiatement après avoir appelé
requestConsentInfoUpdate(with:completionHandler:)
. Il est possible que le consentement ait été obtenu lors de la session précédente. En règle générale, nous vous recommandons de ne pas attendre la fin du rappel afin de pouvoir commencer à charger les annonces dès que possible après le lancement de votre application.
Si une erreur se produit lors du processus de collecte du consentement, vous devez tout de même vérifier si vous pouvez demander des annonces. Le SDK UMP utilise l'état du consentement de la session précédente.
Le code suivant vérifie si vous pouvez demander des annonces pendant le processus de collecte du consentement :
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];
}
Le code suivant configure le SDK Google Mobile Ads une fois le consentement de l'utilisateur recueilli:
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];
});
}
Tests
Si vous souhaitez tester l'intégration dans votre application pendant le développement, suivez ces étapes pour enregistrer votre appareil de test par programmation. Veillez à supprimer le code qui définit ces ID d'appareil de test avant de publier votre application.
- Appelez
requestConsentInfoUpdate(with:completionHandler:)
. Dans la sortie du journal, recherchez un message semblable à l'exemple suivant, qui montre l'ID de votre appareil et explique comment l'ajouter en tant qu'appareil de test:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
Copiez l'ID de votre appareil de test dans le presse-papiers.
Modifiez votre code pour appeler
UMPDebugSettings().testDeviceIdentifiers
et transmettre une liste d'ID d'appareils de test.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){ // ... }];
Forcer une zone géographique
Le SDK UMP permet de tester le comportement de votre application comme si l'appareil était situé dans différentes régions, telles que l'EEE ou le Royaume-Uni, à l'aide de geography
. Notez que les paramètres de débogage ne fonctionnent que sur les appareils de test.
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){
// ...
}];
Réinitialiser l'état du consentement
Lorsque vous testez votre application avec le SDK UMP, il peut être utile de réinitialiser l'état du SDK afin de pouvoir simuler la première expérience d'installation d'un utilisateur.
Pour ce faire, le SDK fournit la méthode reset
.
Swift
UMPConsentInformation.sharedInstance.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
Exemples sur GitHub
Consultez un exemple complet d'intégration du SDK UMP abordé sur cette page dans Swift BannerExample et Objective-C BannerExample.