Info
Contenu

[iOS] 1. consentmanager Intégration SDK

Sur ce document, vous trouverez des informations générales sur la façon d'intégrer notre SDK à votre projet. Pour plus de détails, veuillez vous référer à notre Référence de l'API Documentation. Tous les extraits de code ci-dessous ont été extraits de notre Application de démonstration

1. Installation

consentmanager Le SDK est une solution complète de gestion du consentement des utilisateurs dans les applications mobiles. Conçu pour gérer la conformité au RGPD, les préférences de confidentialité des utilisateurs et la transparence du suivi des publicités, ce SDK offre une intégration transparente pour les plateformes iOS et Android. De plus, il propose des plugins/ponts wrapper pour React Native, Flutter et Unity, ce qui le rend polyvalent dans divers environnements de développement.

Étapes – Description de haut niveau

  1. Intégration et configuration:

    • Intégrez le SDK dans votre application.
    • Configurez les paramètres du SDK en fonction de vos besoins.
  2. Créer une instance et afficher la couche de consentement:

    • Au démarrage de l'application, créez une instance du CMPManager classe. Cette instance gérera le processus de consentement.
    • Le SDK affichera automatiquement l'écran de consentement si nécessaire.
  3. Traitement des données de consentement de l'utilisateur:

    • Une fois les consentements recueillis, les informations sont stockées et peuvent être interrogées via différentes propriétés et méthodes exposées par notre SDK. Vous disposerez d'informations sur les consentements rejetés ou acceptés, les fournisseurs et les finalités.

1.1 Intégration et configuration

Option 1 : CocoaPods

Ajoutez la ligne suivante à votre Podfile :

pod 'cm-sdk-ios-v3', '3.2.0'

Ensuite, lancez:

pod install --repo-update
Option 2 : Gestionnaire de paquets Swift
  1. Téléchargez la dernière version de XCFramework depuis notre Page des versions de GitHub.
  2. Sur XCode, allez dans le menu File >  Add Package Dependency.
  3. Ajoutez l'URL du référentiel SDK ci-dessus
  4. SPM va maintenant récupérer le référentiel et vous demander de sélectionner une version.
    Vous pouvez choisir d'ajouter le package en sélectionnant une règle de version :
    Up to Next Major: Cela mettra à jour le paquet jusqu'à la prochaine version majeure. C'est l'option recommandée car elle ajoute des mises à jour qui n'ont pas de modifications avec rupture.
    Up to Next Minor: Cela mettra à jour le paquet jusqu'à la prochaine version mineure.
    Exact: Cela verrouillera le paquet sur une version spécifique. Aucune mise à jour ne sera installée.
  5. Importez le SDK en insérant en haut des classes implémentant les méthodes du SDK la ligne ci-dessous :
import cm_sdk_ios_v3
  1. Dans les paramètres de votre cible, accédez à « Général » > « Cadres, bibliothèques et contenu intégré » et assurez-vous que le cadre est défini sur « Intégrer et signer ».

1.2 Création d'une instance et affichage de la couche de consentement

Dans le démarrage de l'application (votre viewDidLoad fonction), vous devez créer une instance de classe CMPManager. Vous devrez configurer deux objets qui seront transmis à la méthode getInstance :  UrlConfig, qui gère votre configuration CMP, comme le code-ID et la langue par défaut, et ConsentLayerUIConfig. qui configurera l'apparence du WKWebView qui affichera la couche de consentement. Après cela, vous passerez le courant ViewController en utilisant la méthode setPresentingViewController, et attribuez le délégué, comme indiqué ci-dessous. Dans l'exemple ci-dessous, vous pouvez trouver les deux objets passés. checkWithServerAndOpenIfNecessary() La fonction récupérera automatiquement les données nécessaires sur notre serveur et déterminera si l'écran de consentement doit être affiché ou non. Si tel est le cas, le SDK affichera automatiquement l'écran de consentement à ce stade, via un WKWebView créé par notre SDK, qui affichera la couche de consentement avec le texte et les boutons en fonction de vos configurations CMP (choisies via le Code-ID de votre CMP), collectera les données et conservera les informations de consentement dans la zone NSUserDefaults de l'appareil, afin que l'application puisse afficher les publicités ciblées en conséquence. 

Veuillez noter qu'il est essentiel de déclarer et d'initialiser le CMPManager SDK dans le viewDidLoad méthode, sinon la vue risque de ne pas être prête à être utilisée et le SDK risque d'échouer. Assurez-vous également que vous utilisez les données de configuration correctes. Les données de configuration se trouvent dans votre consentmanager compte à Menu > CMP > Obtenir le code pour les applications > Code-ID

Veuillez également noter que les fonctionnalités liées à la détermination de la nécessité ou non du consentement, ainsi que l'affichage de la couche de consentement, dépendent d'une connexion réseau fiable. S'il n'y a pas de connexion disponible ou si le mécanisme de nouvelle tentative ne parvient pas à atteindre notre serveur, l'événement didReceiveError renverra une erreur de dépassement de délai, et le SDK sera donc totalement incapable de déterminer la nécessité d'un consentement, car il sera totalement incapable d'afficher la couche de consentement. Veuillez vous assurer que votre logique en tient compte.

Mise en situation :

import cm_sdk_ios_v3

class YourViewController: UIViewController, CMPManagerDelegate {
	override func viewDidLoad() {
	super.viewDidLoad()

	let cmpManager = CMPManager.shared

    cmpManager.setUrlConfig(UrlConfig(
    id: "your_id_here",                   	// example: a000aaaaa1a 
    domain: "your_domain_here",				// usually, delivery.consentmanager.net 
    language: "your_language_here",			// example: DE
    appName: "Your App Name"))				// example: testApp

    cmpManager.setWebViewConfig(ConsentLayerUIConfig(
    position: .fullScreen,
    backgroundStyle: .dimmed(.black, 0.5),
    cornerRadius: 5,
    respectsSafeArea: true,
    allowsOrientationChanges: true))

    cmpManager.setPresentingViewController(self)
    cmpManager.delegate = self

    cmpManager.checkAndOpen { error in
        if let error = error {
            print("Error initializing consent: \(error)")
        } else {
            print("ConsentManager initialized and consent received and stored on the device's NSUserDefaults.")
        }
    }
}

1.3 Traitement des données de consentement des utilisateurs

Vérification des consentements des utilisateurs

Notre SDK offre une méthode unifiée pour vérifier et récupérer les informations de consentement, getUserStatus():

let status = CMPManager.shared.getUserStatus()
var message = "Status: \(status.status)\n\n"

message += "Vendors:\n"
for (vendorId, state) in status.vendors {
    message += "- \(vendorId): \(state)\n"
}

message += "\nPurposes:\n"
for (purposeId, state) in status.purposes {
    message += "- \(purposeId): \(state)\n"
}

message += "\nTCF: \(status.tcf)\n"
message += "Additional Consent: \(status.addtlConsent)\n"
message += "Regulation: \(status.regulation)"

print(message)

Pour plus d'informations sur les autres méthodes, veuillez vous référer à notre API Documentation

Réouverture de la couche de consentement pour vérifier les choix des utilisateurs

Afin de permettre à l'utilisateur de vérifier ou de modifier ses choix, vous pouvez simplement appeler openConsentLayer()

cmpManager.forceOpen()

Cette méthode affichera la couche de consentement via la même instance WKWebView créée dans les étapes précédentes. 

Dans certains cas, une application native peut contenir des vues Web afin d'afficher des informations, comme de la publicité ou du contenu. Afin de transmettre les informations de consentement du SDK à la vue Web, vous pouvez récupérer la chaîne de consentement à l'aide de :

consentData = cmpManager.exportCMPInfo()

Cela exportera les informations de consentement et toutes les autres données nécessaires à la CMP. Vous pouvez ensuite transmettre ces informations à la CMP qui se trouve dans votre vue Web en les ajoutant à l'URL appelée dans la vue Web.

Si, par ailleurs, vous devez importer la chaîne de consentement à l’aide du SDK, vous pouvez utiliser l’exemple ci-dessous :

let consentStringToImport = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(consentStringToImport)

Intégration avec Apple Tracking Transparency (ATT)

Si vous utilisez le suivi ou l'analyse dans votre application, nous vous recommandons de lire le guide sur Mise en œuvre du TCA ici.

Création d'une mise en page personnalisée

Pour créer une vue personnalisée de WKWebView, comme modifier son positionnement ou son arrière-plan, par exemple, vous pouvez modifier la configuration transmise à l'objet ConsentLayerUIConfig comme ci-dessous :

ConsentLayerUIConfig(
    position: .halfScreenTop,
    backgroundStyle: .dimmed(.grey, 0.75),
    cornerRadius: 20,
    respectsSafeArea: false,
    allowsOrientationChanges: true)

Journal

Lorsque vous utilisez notre SDK iOS, vous pouvez avoir besoin de déboguer ou d'analyser les informations des journaux à diverses fins. Les journaux générés par notre SDK sont étiquetés sous « CMP », ce qui vous permet de filtrer et d'afficher facilement uniquement les journaux pertinents. Pour plus d'informations, veuillez consulter cette section de notre documentation.

 

Retour en haut de la page