Demander le consentement des utilisateurs européens

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Conformément aux Règles de Google relatives au consentement de l'utilisateur dans l'UE, vous devez divulguer certaines informations à vos utilisateurs dans l'Espace économique européen (EEE) et leur demander d'utiliser des cookies ou tout autre type de stockage local, lorsque la législation l'impose, et d'utiliser des données à caractère personnel (comme les AdID) pour diffuser des annonces. Ces règles reflètent les exigences de la directive vie privée et communications électroniques de l'UE, et celles du Règlement général sur la protection des données (RGPD).

Afin d'aider les éditeurs à satisfaire aux obligations qui leur sont imposées par ce règlement, Google propose un SDK Consent. Le SDK Consent est une bibliothèque Open Source qui fournit des fonctions utilitaires pour recueillir le consentement de vos utilisateurs. Le code source complet est disponible sur GitHub.

Les annonces diffusées par Google peuvent être classées comme personnalisées ou non personnalisées, et requièrent toutes deux le consentement des utilisateurs de l'EEE. Par défaut, les demandes d'annonces envoyées à Google diffusent des annonces personnalisées, sélectionnées en fonction des données précédemment collectées par l'utilisateur. Vous pouvez également configurer des demandes d'annonces pour diffuser des annonces non personnalisées. En savoir plus sur les annonces personnalisées et non personnalisées

Ce guide explique comment utiliser le SDK Consent pour obtenir le consentement des utilisateurs. Elle explique également comment transférer le consentement au SDK Google Mobile Ads une fois le consentement obtenu.

Conditions préalables

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 la ligne suivante à la cible de votre application:

pod 'PersonalizedAdConsent'

Ensuite, à partir de la ligne de commande:

pod install --repo-update

Si vous débutez avec CocoaPods, consultez leur documentation officielle pour en savoir plus sur la création et l'utilisation de Podfiles.

Téléchargement manuel

Vous pouvez également télécharger ou cloner la source du SDK directement, puis suivre ces instructions pour l'inclure dans votre projet:

  1. Dans le Finder, faites glisser le fichier PersonalizedAdConsent.xcodeproj dans votre projet.

  2. Accédez à l'onglet Build Phases. Sous Dépendances cibles, cliquez sur le bouton + et ajoutez la cible PersonalizedAdConsent.

  3. Effectuez un clic droit sur votre projet, puis sélectionnez Ajouter des fichiers à "MonProjet". Accédez à PersonalizedAdConsent.bundle. Assurez-vous de cocher Créer des références de dossier.

    Une fois l'opération terminée, PersonalizedAdConsent.bundle doit figurer dans l'onglet Build Phases (Phases de compilation), sous la section Copy Bundle Resources (Copier les ressources du bundle).

Avant d'utiliser toute autre méthode du SDK de consentement, vous devez mettre à jour l'état de consentement pour vous assurer que le SDK de consentement dispose des informations les plus récentes sur les fournisseurs de technologie publicitaire que vous avez sélectionnés dans l'AdMob UI. Si la liste de fournisseurs de technologie publicitaire a changé depuis que l'utilisateur a accordé son dernier consentement, l'état du consentement est redéfini sur un état inconnu.

Si vous n'utilisez pas la médiation

Si vous n'utilisez pas la médiation, vous disposez de deux options pour implémenter le SDK Consent afin de recueillir le consentement.

Vous pouvez utiliser le SDK Consent pour présenter un formulaire de consentement affiché par Google à vos utilisateurs. Le formulaire de consentement affiche la liste des fournisseurs de technologie publicitaire que vous avez sélectionnés dans l'UI AdMob. Le SDK Consent stocke la réponse de l'utilisateur.

L'autre option consiste à utiliser le SDK Consent pour récupérer de manière dynamique la liste complète des fournisseurs de technologie publicitaire disponibles sur AdMob, comme expliqué dans la collecte du consentement géré par l'éditeur. Toutefois, dans ce cas, vous devrez déterminer comment la liste des fournisseurs doit être mise à la disposition de vos utilisateurs et leur présenter votre propre formulaire d'autorisation.

Une fois que l'utilisateur a fait son choix, vous pouvez demander au SDK Consent de stocker ce choix, comme expliqué dans Stocker le consentement géré par l'éditeur.

Lors de la collecte du consentement, si un utilisateur a accepté de ne voir que des annonces non personnalisées, vous devez transférer le consentement au SDK Google Mobile Ads.

Si vous utilisez AdMob la médiation

Vous pouvez utiliser le SDK Consent pour récupérer de manière dynamique la liste complète des fournisseurs de technologie publicitaire disponibles sur AdMob, comme expliqué dans la collecte du consentement géré par l'éditeur. Vous devez déterminer quels autres fournisseurs de technologie publicitaire d'autres réseaux publicitaires doivent être présentés à vos utilisateurs pour obtenir leur consentement.

En tant que développeur d'applications, vous devez recueillir le consentement des utilisateurs pour les fournisseurs de technologie publicitaire renvoyés par le SDK Consent et pour les fournisseurs d'autres réseaux publicitaires. Vous devrez également stocker manuellement les réponses de consentement des utilisateurs et transférer le consentement au SDK Google Mobile Ads si l'utilisateur a accepté de ne recevoir que des annonces non personnalisées.

Pour le moment, Google ne peut pas obtenir ni gérer le consentement des utilisateurs pour les réseaux de médiation. Vous devez donc obtenir le consentement de chaque réseau publicitaire et le gérer séparément. Veuillez consulter le guide d'intégration de chaque partenaire de médiation pour en savoir plus.

Modifier l'état de consentement

Lorsque vous utilisez le SDK de consentement, nous vous recommandons de déterminer l'état du consentement d'un utilisateur à chaque lancement d'application. Pour ce faire, appelez requestConsentInfoUpdateForPublisherIdentifiers:completionHandler: sur une instance de PACConsentInformation.

Swift

import PersonalizedAdConsent
...
class ViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    PACConsentInformation.sharedInstance.
    requestConsentInfoUpdate(
    forPublisherIdentifiers: ["pub-0123456789012345"])
    {(_ error: Error?) -> Void in
      if let error = error {
        // Consent info update failed.
      } else {
        // Consent info update succeeded. The shared PACConsentInformation
        // instance has been updated.
      }
    }
  }

Objective-C

#import <PersonalizedAdConsent/PersonalizedAdConsent.h>
...
@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  [PACConsentInformation.sharedInstance
      requestConsentInfoUpdateForPublisherIdentifiers:@[ @"pub-0123456789012345" ]
          completionHandler:^(NSError *_Nullable error) {
            if (error) {
              // Consent info update failed.
            } else {
              // Consent info update succeeded. The shared PACConsentInformation
              // instance has been updated.
            }
          }];
}

L'appel de requestConsentInfoUpdateForPublisherIdentifiers:completionHandler: nécessite deux arguments:

  • Tableau de références éditeur valides et entièrement activées à partir desquelles votre application demande des annonces. Recherchez votre référence éditeur.

  • Un bloc qui accepte un NSError comme paramètre d'entrée, qui fournit des informations sur une requête de mise à jour du consentement ayant échoué.

Si les informations sur le consentement sont mises à jour, PACConsentInformation.sharedInstance.consentStatus fournit l'état du consentement mis à jour. Il peut prendre les valeurs ci-dessous:

État du consentement Définition
PACConsentStatusPersonalized L'utilisateur a autorisé les annonces personnalisées.
PACConsentStatusNonPersonalized L'utilisateur a autorisé les annonces non personnalisées.
PACConsentStatusUnknown L'utilisateur n'a ni accordé, ni refusé le consentement pour les annonces personnalisées ou non personnalisées.

Une fois les informations sur le consentement mises à jour, vous pouvez également consulter PACConsentInformation.sharedInstance.requestLocationInEEAOrUnknown pour voir si l'utilisateur se trouve dans l'Espace économique européen ou si l'emplacement de la requête est inconnu.

Si la propriété requestLocationInEEAOrUnknown est définie sur NO, l'utilisateur ne se trouve pas dans l'Espace économique européen et le consentement n'est pas requis dans le cadre des Règles relatives au consentement de l'utilisateur dans l'UE. Vous pouvez envoyer des demandes d'annonces au SDK Google Mobile Ads.

Si la propriété requestLocationInEEAOrUnknown est définie sur YES:

  • Si PACConsentStatus est PACConsentStatusPersonalized ou PACConsentStatusNonPersonalized, l'utilisateur a déjà donné son consentement. Vous pouvez maintenant transférer le consentement au SDK Google Mobile Ads.

  • Si l'utilisateur dispose d'un consentement PACConsentStatusUnknown, consultez la section Collecte du consentement ci-dessous, qui décrit l'utilisation de méthodes utilitaires pour recueillir le consentement.

SDK de consentement. propose deux façons d'obtenir le consentement d'un utilisateur:

N'oubliez pas de donner aux utilisateurs la possibilité de modifier ou révoquer leur consentement.

Le formulaire de consentement affiché par Google est configurable en plein écran sur le contenu de votre application. Vous pouvez configurer le formulaire pour présenter à l'utilisateur les combinaisons des options suivantes:

  • Autorisation de voir des annonces personnalisées
  • Autorisation de voir des annonces non personnalisées
  • Utiliser une version payante de l'application plutôt que de regarder des annonces

Vous devez lire attentivement le texte de consentement: ce qui s'affiche par défaut est un message qui peut être approprié si vous utilisez Google pour monétiser votre application. Toutefois, nous ne pouvons pas vous fournir de conseils juridiques concernant le texte de consentement qui vous convient. Pour mettre à jour le texte de consentement du formulaire de consentement affiché par Google, modifiez le fichier consentform.html inclus dans le SDK Consent si nécessaire.

Le formulaire de consentement affiché par Google est configuré et affiché à l'aide de la classe PACConsentForm. Le code suivant montre comment créer un PACConsentForm avec les trois options de formulaire:

Swift

// TODO: Replace with your app's privacy policy url.
guard let privacyUrl = URL(string: "https://www.your.com/privacyurl"),
  let form = PACConsentForm(applicationPrivacyPolicyURL: privacyUrl) else {
    print("incorrect privacy URL.")
    return
}
form.shouldOfferPersonalizedAds = true
form.shouldOfferNonPersonalizedAds = true
form.shouldOfferAdFree = true

Objective-C

// TODO: Replace with your app's privacy policy url.
NSURL *privacyURL = [NSURL URLWithString:@"https://www.your.com/privacyurl"];
PACConsentForm *form = [[PACConsentForm alloc] initWithApplicationPrivacyPolicyURL:privacyURL];
form.shouldOfferPersonalizedAds = YES;
form.shouldOfferNonPersonalizedAds = YES;
form.shouldOfferAdFree = YES;

Les propriétés de PACConsentForm sont décrites plus en détail ci-dessous:

shouldOfferPersonalizedAds
Indique si une option d'annonce personnalisée doit être affichée dans le formulaire de consentement. La valeur par défaut est YES.
shouldOfferNonPersonalizedAds
Indique si une option d'annonce non personnalisée doit être diffusée dans le formulaire de consentement. La valeur par défaut est YES.
shouldOfferAdFree
Indique si le formulaire de consentement doit afficher une option d'application sans publicité. La valeur par défaut est NO.

Une fois que vous avez créé et configuré un objet PACConsentForm, chargez le formulaire d'autorisation en appelant la méthode loadWithCompletionHandler: de PACConsentForm, comme indiqué ci-dessous:

Swift

form.load {(_ error: Error?) -> Void in
  print("Load complete.")
  if let error = error {
    // Handle error.
    print("Error loading form: \(error.localizedDescription)")
  } else {
    // Load successful.
  }
}

Objective-C

[form loadWithCompletionHandler:^(NSError *_Nullable error) {
  NSLog(@"Load complete. Error: %@", error);
  if (error) {
    // Handle error.
  } else {
    // Load successful.
  }
}];

Pour présenter à l'utilisateur le formulaire de consentement affiché par Google, appelez presentFromViewController:dismissCompletion: sur un PACConsentForm chargé, comme indiqué ci-dessous:

Swift

form.present(from: self) { (error, userPrefersAdFree) in
      if let error = error {
        // Handle error.
      } else if userPrefersAdFree {
        // User prefers to use a paid version of the app.
      } else {
        // Check the user's consent choice.
        let status =
             PACConsentInformation.sharedInstance.consentStatus
      }
    }

Objective-C

 [form presentFromViewController:self
     dismissCompletion:^(NSError *_Nullable error, BOOL userPrefersAdFree) {
       if (error) {
         // Handle error.
       } else if (userPrefersAdFree) {
         // The user prefers to use a paid version of the app.
       } else {
         // Check the user's consent choice.
         PACConsentStatus status =
             PACConsentInformation.sharedInstance.consentStatus;
       }
     }];

L'appel de presentFromViewController:dismissCompletion: nécessite deux arguments:

  • UIViewController à partir duquel présenter.

  • Un bloc qui accepte un NSError et un BOOL comme paramètres d'entrée. NSError fournit des informations en cas d'erreur lors de l'affichage du formulaire d'autorisation. Le userPrefersAdFree BOOL a la valeur YES lorsque l'utilisateur a choisi d'utiliser une version payante de l'application au lieu de voir les annonces.

Une fois que l'utilisateur a sélectionné une option et fermé le formulaire, le SDK Consent enregistre le choix de l'utilisateur et appelle le bloc dismissCompletion:. Vous pouvez lire le choix de l'utilisateur et transférer le consentement au SDK Google Mobile Ads.

Collecte du consentement géré par l'éditeur

Si vous choisissez d'obtenir vous-même le consentement, vous pouvez utiliser la propriété adProviders de la classe PACConsentInformation pour récupérer les fournisseurs de technologie publicitaire associés aux ID d'éditeur utilisés dans votre application. Notez que le consentement est requis pour obtenir la liste complète des fournisseurs de technologie publicitaire configurés pour vos ID d'éditeur.

Avant d'accéder à la propriété adProviders de PACConsentInformation, vous devez attendre la mise à jour réussie de l'état de consentement de l'utilisateur, comme décrit dans la section Mettre à jour l'état de consentement.

Swift

let adProviders = PACConsentInformation.sharedInstance.adProviders

Objective-C

NSArray *adProviders = PACConsentInformation.sharedInstance.adProviders;

Vous pouvez ensuite utiliser la liste de fournisseurs d'annonces pour obtenir vous-même le consentement.

Après avoir obtenu l'autorisation, enregistrez le PACConsentStatus correspondant à la réponse de l'utilisateur à l'aide de la propriété status de la classe PACConsentInformation.

Swift

PACConsentInformation.sharedInstance.consentStatus = .personalized

Objective-C

PACConsentInformation.sharedInstance.consentStatus = PACConsentStatusPersonalized;

Après avoir signalé le consentement au SDK de consentement, vous pouvez transférer le consentement au SDK Google Mobile Ads.

Pour permettre aux utilisateurs de mettre à jour leur consentement, il vous suffit de répéter les étapes décrites dans la section Collecte du consentement lorsque l'utilisateur choisit de mettre à jour son état de consentement.

Si un éditeur sait que l'utilisateur n'a pas atteint l'âge minimal requis, toutes les demandes d'annonces doivent définir un tag TFUA (Tag For Users in the Age of Consent in Europe). Pour inclure ce tag dans toutes les demandes d'annonces effectuées depuis votre application, Définissez la propriété tagForUnderAgeOfConsent sur YES. Ce paramètre s'applique à toutes les futures demandes d'annonces.

Swift

PACConsentInformation.sharedInstance.isTaggedForUnderAgeOfConsent = true

Objective-C

PACConsentInformation.sharedInstance.tagForUnderAgeOfConsent = YES;

Une fois le paramètre TFUA activé, le formulaire de consentement affiché par Google ne se chargera pas. Toutes les demandes d'annonces qui comprennent TFUA ne seront plus éligibles à la publicité et au remarketing personnalisés. TFUA désactive les demandes adressées à des fournisseurs de technologie publicitaire tiers, tels que les pixels de mesure des performances des annonces et les ad servers tiers.

Pour supprimer TFUA des demandes d'annonces,a défini la propriété tagForUnderAgeOfConsent sur NO.

Tests

Le SDK Consent adopte différents comportements en fonction de la valeur de PACConsentInformation.sharedInstance.requestLocationInEEAOrUnknown. Par exemple, le formulaire de consentement ne se charge pas si l'utilisateur ne se trouve pas dans l'EEE.

Pour faciliter le test de votre application dans l'EEE et en dehors, le SDK de consentement est compatible avec les options de débogage que vous pouvez définir avant d'appeler toute autre méthode dans le SDK.

  1. Récupérez l'identifiant publicitaire de votre appareil. Vous pouvez utiliser le code suivant pour enregistrer votre ID publicitaire:

    #import <AdSupport/AdSupport.h>
    // ...
    
    NSLog(@"Advertising ID: %@",
          ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString);

    Consultez ensuite la console pour l'obtenir:

    Advertising ID: 41E538F6-9C98-4EF2-B3EE-D7BD8CAF8339
  2. Désignez votre appareil comme appareil de test à l'aide de l'identifiant publicitaire de la console:

    PACConsentInformation.sharedInstance.debugIdentifiers =
        @[ @"41E538F6-9C98-4EF2-B3EE-D7BD8CAF8339" ];
  3. Enfin, définissez debugGeography sur la zone géographique de votre choix à des fins de test.

    // Geography appears as in EEA for debug devices.
    PACConsentInformation.sharedInstance.debugGeography = PACDebugGeographyEEA;
    // Geography appears as not in EEA for debug devices.
    PACConsentInformation.sharedInstance.debugGeography = PACDebugGeographyNotEEA;

Une fois ces étapes terminées, les appels de mise à jour de l'état de consentement prennent en compte votre zone de débogage.

Le code de cette section peut être utilisé avec n'importe quelle version du SDK Google Mobile Ads. Vous pouvez également l'utiliser, que vous ayez utilisé le SDK Consent pour recueillir le consentement.

Par défaut, le SDK Google Mobile Ads diffuse des annonces personnalisées. Si un utilisateur a accepté de ne recevoir que des annonces non personnalisées, vous pouvez configurer un objet GADRequest pour spécifier que seules les annonces non personnalisées doivent être demandées. Le code suivant entraîne la demande d'annonces non personnalisées, que l'utilisateur se trouve ou non dans l'EEE:

Swift

let request = GADRequest()
let extras = GADExtras()
extras.additionalParameters = ["npa": "1"]
request.register(extras)

Objective-C

GADRequest *request = [GADRequest request];
GADExtras *extras = [[GADExtras alloc] init];
extras.additionalParameters = @{@"npa": @"1"};
[request registerAdNetworkExtras:extras];

Si des annonces non personnalisées sont demandées, l'URL de demande d'annonce inclut actuellement &npa=1. Notez toutefois que les détails de la mise en œuvre interne du SDK Google Mobile Ads sont susceptibles de changer.

Retarder la mesure dans l'application (facultatif)

Par défaut, le SDK Google Mobile Ads initialise la mesure des applications et commence à envoyer des données d'événements au niveau de l'utilisateur à Google au démarrage de l'application. Ce comportement d'initialisation vous permet d'activer les métriques utilisateur AdMob sans modifier le code.

Toutefois, si votre application nécessite le consentement de l'utilisateur avant l'envoi de ces événements, vous pouvez retarder la mesure jusqu'à ce que vous initialisiez le SDK Mobile Ads ou chargeiez une annonce.

Pour retarder la mesure de l'application, ajoutez la clé GADDelayAppMeasurementInit avec la valeur booléenne YES au fichier Info.plist de votre application. Vous pouvez effectuer cette modification de manière programmatique:

<key>GADDelayAppMeasurementInit</key>
<true/>

Vous pouvez également la modifier dans l'éditeur de liste de propriétés:

Questions fréquentes

Combien de fournisseurs de technologie publicitaire le SDK de consentement est-il compatible ?
Le SDK de consentement n'impose pas de limite au nombre de fournisseurs de technologie publicitaire qu'un éditeur choisit d'activer.
La liste des fournisseurs de technologie publicitaire renvoyée par le SDK est-elle automatiquement mise à jour si je modifie ma sélection dans l' AdMob UI ?
Oui. Si vous modifiez la liste des fournisseurs de technologie publicitaire dans l'AdMob interface utilisateur, les modifications seront appliquées aux ad servers de Google dans un délai d'environ une heure.