Le SDK Google User Messaging Platform (UMP) est un outil de confidentialité et de messagerie qui vous aide à gérer les choix de confidentialité. Pour en savoir plus, consultez À propos de Confidentialité et messages. Vous pouvez voir une implémentation IMA fonctionnelle avec le SDK UMP dans les exemples d'applications UMP Objective-C ou Swift.
Créer un type de message
Créez des messages destinés aux utilisateurs avec l'un des types de messages disponibles sous l'onglet Confidentialité et messages de votre compte Ad Manager. Le SDK UMP tente d'afficher un message de confidentialité créé à partir de l'ID d'application Interactive Media Ads défini dans votre projet.
Pour en savoir plus, consultez À propos de Confidentialité et messages.
Importer le SDK
Le SDK UMP n'est pas inclus en tant que dépendance du SDK IMA. Vous devez donc l'ajouter explicitement vous-même.
CocoaPods (méthode recommandée)
Le moyen le plus simple d'importer le SDK dans un projet iOS est d'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-updateSi vous n'avez jamais utilisé CocoaPods, consultez Utiliser CocoaPods pour savoir comment créer et utiliser des fichiers Podfile.
Swift Package Manager
Le SDK UMP est également compatible avec Swift Package Manager. 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.gitSélectionnez la version du package Swift du SDK UMP que vous souhaitez utiliser. Pour les nouveaux projets, nous vous recommandons d'utiliser Up to Next Major Version (Jusqu'à la prochaine version majeure).
Xcode résout ensuite les dépendances de votre package et les télécharge en arrière-plan. Pour en savoir plus sur l'ajout de dépendances de package, consultez l'article d'Apple.
Ajouter l'ID d'application
Votre ID d'application figure dans l'
interface utilisateur d'Ad Manager.
Ajoutez l'ID à votre
Info.plist
avec l'extrait de code suivant :
<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Obtenir les informations de consentement de l'utilisateur
Vous devez demander une mise à jour des informations de consentement de l'utilisateur à chaque lancement de l'application, à l'aide de
requestConsentInfoUpdateWithParameters:completionHandler:. Cette requête vérifie les points suivants :
- Si le consentement est obligatoire. Par exemple, le consentement est obligatoire pour la première fois ou la décision de consentement précédente a expiré.
- Si un point d'entrée pour les options de confidentialité est obligatoire. Certains messages de confidentialité exigent que les applications permettent aux utilisateurs de modifier leurs options de confidentialité à tout moment.
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) {
// ...
}];
Charger et présenter le formulaire de message de confidentialité
Une fois que vous avez reçu l'état de consentement le plus récent, appelez
loadAndPresentIfRequiredFromViewController:completionHandler: pour charger tous les formulaires requis pour
recueillir le consentement de l'utilisateur. Une fois chargés, les formulaires s'affichent immédiatement.
Swift
try await ConsentForm.loadAndPresentIfRequired(from: viewController)
Objective-C
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
Options de confidentialité
Certains formulaires de message de confidentialité sont présentés à partir d'un point d'entrée des options de confidentialité rendu 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 point d'entrée des options de confidentialité, consultez Types de messages disponibles pour les utilisateurs.
Vérifier si un point d'entrée pour les options de confidentialité est obligatoire
Après avoir appelé
requestConsentInfoUpdateWithParameters:completionHandler:, vérifiez
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus pour
déterminer si un point d'entrée pour les options de confidentialité est obligatoire pour votre application. Si un point d'entrée
est obligatoire, ajoutez à votre application un élément d'interface utilisateur visible et interactif qui
présente le formulaire des options de confidentialité. Si un point d'entrée de confidentialité n'est pas obligatoire, configurez votre élément d'interface utilisateur pour qu'il ne soit pas visible et interactif.
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
Pour obtenir la liste complète des états requis pour les options de confidentialité, consultez
UMPPrivacyOptionsRequirementStatus.
Présenter le formulaire des options de confidentialité
Lorsque l'utilisateur interagit avec votre élément, présentez le formulaire des options de confidentialité :
Swift
ConsentForm.presentPrivacyOptionsForm(
from: viewController, completionHandler: completionHandler)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
Demander des annonces avec le consentement de l'utilisateur
Avant de demander des annonces, utilisez
UMPConsentInformation.sharedInstance.canRequestAds pour vérifier si vous avez
obtenu le consentement de l'utilisateur :
Swift
ConsentInformation.shared.canRequestAds
Objective-C
UMPConsentInformation.sharedInstance.canRequestAds;
Voici les endroits où vous pouvez vérifier si vous pouvez demander des annonces tout en recueillant le consentement :
- Une fois que le SDK UMP a recueilli le consentement lors de la session en cours.
- Immédiatement après avoir appelé
requestConsentInfoUpdateWithParameters:completionHandler:. Le SDK UMP peut avoir obtenu le consentement lors de la session d'application précédente.
Si une erreur se produit lors du processus de collecte du consentement, vérifiez si vous pouvez demander des annonces. Le SDK UMP utilise l'état de consentement de la session d'application précédente.
Éviter les demandes d'annonces redondantes
Lorsque vous vérifiez
UMPConsentInformation.sharedInstance.canRequestAds après avoir recueilli le consentement et après avoir appelé
requestConsentInfoUpdateWithParameters:completionHandler:, assurez-vous que votre logique empêche les demandes d'annonces redondantes qui
pourraient entraîner le renvoi de true par les deux vérifications. Par exemple, avec une variable booléenne.
Tests
Si vous souhaitez tester l'intégration dans votre application pendant son développement, suivez ces étapes pour enregistrer votre appareil de test par programmation. Veillez à supprimer le code qui définit ces ID d'appareils de test avant de publier votre application.
- Appelez
requestConsentInfoUpdateWithParameters:completionHandler:. Dans la sortie du journal, recherchez un message semblable à l'exemple suivant, qui indique l'ID de votre appareil et 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().testDeviceIdentifierset transmettez la liste des ID de vos appareils de test.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){ // ... }];
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'Espace économique européen (EEE), le Royaume-Uni et la Suisse, à l'aide de UMPDebugGeography. Notez que les paramètres de débogage ne fonctionnent que sur les appareils de test.
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){
// ...
}];
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 simuler la première expérience d'installation d'un utilisateur.
Le SDK fournit la méthode reset pour ce faire.
Swift
ConsentInformation.shared.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
Exemples sur GitHub
Consultez un exemple complet de l'intégration du SDK UMP abordée sur cette page dans Swift UmpExample et Objective-C UmpExample.