Premiers pas

Le SDK Google UMP (User Messaging Platform) 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 à l'aide de l'un des types de messages utilisateur 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 la confidentialité et des 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 (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 Swift Package Manager. Suivez ces étapes pour importer le package Swift.

  1. Dans Xcode, installez le package Swift du SDK UMP en accédant à File > Add Packages… (Fichier > Ajouter des packages…).

  2. 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
    
  3. Sé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 savoir comment ajouter des dépendances de package, consultez l'article d'Apple.

Ajouter l'ID application

Vous trouverez l'ID de votre application dans l'interface utilisateur Ad Manager. Ajoutez l'ID à votre Info.plist avec l'extrait de code suivant :

<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

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 éléments suivants :

  • Indique si le consentement est requis. Par exemple, le consentement est requis pour la première fois ou la décision de consentement précédente a expiré.
  • Indique si un point d'entrée des options de confidentialité est requis. 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 concernant la confidentialité

Une fois que vous avez reçu l'état du consentement le plus récent, appelez loadAndPresentIfRequiredFromViewController:completionHandler: pour charger 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 messages sur la confidentialité sont présentés à partir d'un point d'entrée des options de confidentialité affiché 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 utilisateur disponibles.

Vérifier si un point d'entrée pour les options de confidentialité est requis

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 requis pour votre application. Si un point d'entrée est requis, ajoutez à votre application un élément d'UI visible et interactif qui présente le formulaire d'options de confidentialité. Si un point d'entrée de confidentialité n'est pas requis, configurez votre élément d'UI pour qu'il ne soit pas visible ni 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.

Afficher le formulaire des options de confidentialité

Lorsque l'utilisateur interagit avec votre élément, présentez le formulaire d'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 :

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 du consentement de la session précédente de l'application.

Éviter les tâches redondantes de demande d'annonces

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 pour les deux vérifications. Par exemple, avec une variable booléenne.

Tests

Si vous souhaitez tester l'intégration dans votre application au fur et à mesure de son développement, suivez ces étapes pour enregistrer votre appareil de test de manière programmatique. Veillez à supprimer le code qui définit ces ID d'appareils de test avant de publier votre application.

  1. Appelez requestConsentInfoUpdateWithParameters:completionHandler:.
  2. Consultez la sortie du journal pour trouver 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]
    
  3. Copiez l'ID de votre appareil de test dans le presse-papiers.

  4. Modifiez votre code pour appeler UMPDebugSettings().testDeviceIdentifiers et transmettre une 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'EEE ou le Royaume-Uni, à 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){
                           // ...
}];

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

Pour obtenir un exemple complet de l'intégration du SDK UMP abordée sur cette page, consultez Swift UmpExample et Objective-C UmpExample.