AppConsent CMP
Rechercher…
iOS
Vous pouvez télécharger nos boites à outils AppConsentKit et AppConsentUIKit en suivant les liens ci-dessous:

XCFramework 1.2.15

Dernière révision: 18.11.2021
2 façons d'ajouter le SDK AppConsent à votre projet iOS :

Drag & Drop XCFramework

Suivez les étapes suivantes:
  • Dans l'onglet Général de votre application Target, Glisser / Déposer les XCFrameworks AppConsentKit.xcframework et le AppConsentUIKit.xcframework dans Frameworks, Libraires and Embedded Content. Faites sur les XCFrameworks sont Embed & Sign.
  • Compatibilité xCode 12 et au-dessus. Target de déploiement iOS 11 minimum.

Cocoapods

Vous pouvez maintenant installer le SDK AppConsent avec Cocoapods.
Dans votre fichier pod, ajoutez le pod suivant :
1
pod 'AppConsentKit', '~> 1.2.15'
2
pod 'AppConsentUIKit', '~> 1.2.15'
Copied!
N'oubliez pas d'ajouter ces lignes en haut de votre podfile :
1
source 'https://github.com/CocoaPods/Specs.git'
2
source 'https://gitlab.datalf.chat/dev/appconsentios-private-pod.git'
Copied!
Exécuter pod install dans votre ligne de commande.
Note : Vous devez avoir au moins la version 1.10.0 du pod pour que cela fonctionne correctement.

Vous trouverez un exemple ci-dessous :

Swift Package Manager

Vous pouvez également installer nos SDK via le gestionnaire de dépendance Swift Package Manager.
Note: Pour l'instant, vous devez installer tous les packages manuellement dû à quelques erreurs de compatibilité concernant les binaires XCFrameworks et les dépendances de Swift Package Manager.
1
AppConsentKit 1.2.2
2
https://gitlab.datalf.chat/customers/appconsentkit-spm
3
4
5
AppConsentUIKit
6
1.2.2
7
https://gitlab.datalf.chat/customers/appconsentuikit-spm
8
9
10
SwiftProtobuf
11
1.14.0
12
https://github.com/apple/swift-protobuf
13
Copied!

Comment utiliser AppConsent

  1. 1.
    Obtenez d'abord votre AppKey sur AppConsent.
  2. 2.
    Vous devez importer le SDK dans votre code :import AppConsentUIKit
  3. 3.
    Ensuite, vous pouvez créer et initialiser ACUIKit de cette manière :
1
let appconsent = ACUIKit(withAppKey: "YOUR_APP_KEY", forceApplyGDPR: true, forceATT: true)
Copied!
Important
AppConsent SDK est compatible avec le nouveau App Tracking Transparency framework (> iOS 14+ disponible).Vous devez enregistrer la clé NSUserTrackingUsageDescription dans votre Info.plist de votre application, sinon votre application plantera.

App Tracking Transparency

Apple a publié iOS 14.5 il y a quelques jours (26 avril 2021). L'un des principaux changements est la nouvelle fenêtre contextuelle du système appelée App Tracking Transparency (ATT).
L'App Tracking Transparency exige que les apps obtiennent la permission de l'utilisateur avant de suivre ses données sur des apps ou des sites web appartenant à d'autres entreprises à des fins publicitaires, ou de partager ses données avec des courtiers en données.
Les applications peuvent demander l'autorisation aux utilisateurs et, dans les paramètres, les utilisateurs pourront voir quelles applications ont demandé l'autorisation de suivre leurs données afin de pouvoir modifier leur choix à tout moment. Notre dernier framework (version 1.2.11 +) est entièrement compatible et intégré à notre plateforme de gestion de contenu.
Sur l'App Consent back-office, vous devez activer le switch use iOS Att et activer le switch disable success screen (pour les appareils sous iOS 14).
N'oubliez pas d'enregistrer la clé NSUserTrackingUsageDescription dans votre Info.plist de votre application sinon votre application se plantera. Note : Si vous n'avez pas mis à jour votre application avec le dernier Framework et si votre application fonctionne sur un appareil iOS 14.5, l'IDFA sera 00000-00000-00000-00000.

Floating Purpose - ATT

Sur le back-office de l'App Consent, vous devez créer un Extra-Purpose pour la fonctionnalité ATT.
Marche à suivre : Allez dans le menu des finalités supplémentaires à gauche, et cliquez sur Ajouter un Extra-purpose Entrez un nom, une description et sélectionnez Floating pour le type. Sauvegardez. Sur votre Notice, cliquez sur Modifier et dans la section Configuration, ajoutez votre nouvel Floating Extra Purpose for ATT. Sauvegardez.

Fonctionnalités de l'AppConsentUIKit

Vérifier si l'utilisateur a donné son consentement

1
appconsent.consentGiven()
Copied!
Retourne true si le consentement est donné, false dans le cas contraire.

Présentez une notice

1
appconsent.presentNotice(force: true, viewController: self)
Copied!
Pour afficher la CMP en mode modal depuis votre ViewController.

Méthode permettant d'avoir un retour une fois le consentement donnée

1
appconsent.consentGiven(success: {
2
print("Success - Consent Given")
3
}, failure: { error in
4
print("Error: \(error)")
5
})
Copied!

Présentez une notice de géolocalisation

1
appconsent.presentGeolocation(self)
Copied!
Pour afficher la CMP de demande de géolocalisation

Vérifier si l'utilisateur a donné son consentement à la géolocalisation

1
appconsent.geolocationConsentGiven()
Copied!
Retourne true si le consentement est donné, false dans le cas contraire.

Méthode permettant d'avoir un retour une fois le consentement de géolocalisation donné

1
appconsent.geolocationConsentGiven(success: {
2
print("Success - Consent Given")
3
}, failure: { error in
4
print("Error: \(error)")
5
})
Copied!

Consentement autorisé - objectId

1
appconsent.consentableAllowed(objectId: "1")
Copied!
Retourne true si le consentement avec objectId = 1 est autorisé, false dans le cas contraire.

Consentement autorisé- iabId

1
appconsent.consentableAllowed(iabId: "1")
Copied!
Retourne true si le consentement avec iabId = 1 est autorisé, false dans le cas contraire.

Consentement autorisé- extraId

1
appconsent.consentableAllowed(extraId: "1")
Copied!
Retourne true si le consentement avec extraId = 1 est autorisé, false dans le cas contraire.

Stack autorisé

1
appconsent.stackAllowed(iabId: "1")
Copied!
Retourne true si le stack aveciabId = 1est autorisé, false dans le cas contraire.

Vendor autorisé - iabId

1
appconsent.vendorAllowed(iabId: "1")
Copied!
Retourne true si le vendor avec iabId = 1 est autorisé, false dans le cas contraire.

Vendor autorisé - extraId

1
appconsent.vendorAllowed(extraId: "1")
Copied!
Retourne true si l'extra vendor avec extraId = 1 est autorisé, false dans le cas contraire.

Tous les consentements autorisés

1
appconsent.allConsentablesAllowed()
Copied!
Retourne true si tous les consentements sont autorisés, sinon false.

Toutes les stacks autorisées

1
appconsent.allStacksAllowed()
Copied!
Retourne true si toutes les stacks sont autorisées, sinon false.

Tous vendors autorisés

1
appconsent.allVendorsAllowed()
Copied!
Retourne true si tous les vendors sont autorisés, sinon false.

L'utilisateur à tout accepté

1
appconsent.userAcceptAll()
Copied!
C'est une combinaison de allConsentablesAllowed , allStacksAllowed, allVendorsAllowed
Retourne true si tout est à true, sinon false.
1
appconsent.setConsentableConsents(values: ["1": .allowed], success: {
2
print("Success")
3
}, failure: { error in
4
print("Error: \(error)")
5
})
Copied!
Définir le statut des consentements avec un iabId.
Attention Key doit être un iabId, et non un objectId.
Notez que cette méthode n'envoie pas de requête au serveur.
1
appconsent.setExtraConsentableConsents(values: ["aaa": .allowed], success: {
2
print("Success")
3
}, failure: { error in
4
print("Error: \(error)")
5
})
Copied!
Définir le statut des consentables avec extraId.
Attention Key doit être un extraId, et non un objectId.
Notez que cette méthode n'envoie pas de requête au serveur.

Vérifier les mises à jour

1
appconsent.checkForUpdate({ value in
2
print("Success: \(value)")
3
}, failure: { error in
4
print("Error: \(error)")
5
})
Copied!
Vérifier si le consentement doit être mis à jour (nouvelle version GVL, nouveaux consentements...)

Supprimer les consentements dans le cache

1
appconsent.clearConsent()
Copied!
Clear consents sur NSUserDefaults, mais pas sur le serveur.

Définir les données externes

1
appconsent.setExternalData(shipData: ACShipData, success:, failure:)
Copied!
Définissez les données externes avec le modèle ACShipData et envoyez-les au serveur.

Définir les externalIds

1
appconsent.setExternalIds(externalIds: [String: String])
Copied!
Vous pouvez setExternalIds. En arrière-plan, les, externalIds sont stockées dans le cache de notre Framework. Si vous le souhaitez, vous pouvez les enregistrer sur notre serveur comme ceci :
1
appconsent
2
.setExternalIds(externalIds: [String: String])
3
.saveExternalIds { state, configuration in
4
print(state ?? "state nil")
5
print(configuration ?? "configuration nil")
6
} failure: { error in
7
print(error.localizedDescription)
8
}
Copied!

Obtenir externalIds

1
appconsent.getExternalIds() ->[String, String]
Copied!
Récupérez les externalIds définis précédemment.

Ouvrir les paramètres de l'application

1
appconsent.openAppSettings()
Copied!
Ouvrez App Consent settings dans l'onglet général.

App Tracking est disponible

1
appconsent.appTrackingIsAvailable() ->Bool
Copied!
Vérifiez si votre appareil prend en charge App Tracking Transparency.

App Tracking Authorization

1
appconsent.appTrackingAuthorizationGiven() ->ACATTAuthorizationGiven
Copied!
Vérifiez si App Tracking Transparency a été donnée.

Demande de App Tracking

1
appconsent.appTrackingRequestAuthorization(_ completion: ((ACATTAuthorizationStatus)->Void)?)
Copied!
Demande l'autorisation de l'utilisateur. Le popup ATT s'affiche.
Note : le processus d'affichage du popup ATT est automatiquement intégré dans AppConsentUIKit lorsque l'utilisateur enregistre son consentement.

Sauvegardez ATT floating purpose

1
appconsent.saveATTFloatingPurpose(with value: Bool, _ completion: ACResultVoidHandler?)
Copied!
Enregistrez le choix ATT de l'utilisateur et envoyez-le à notre serveur.

Floating purpose autorisé

1
appconsent.floatingPurposeAllowed(extraId: String) ->Bool
Copied!
Vérifiez si floating purpose est autorisé.
Note : Vous devez appeler la méthode checkForUpdate avant d'appeler cette méthode ci-dessus pour rester à jour.

Afficher ATT si nécessaire

1
appconsent.displayATTIfNeeded(_ completion: ((ACATTAuthorizationStatus)->Void)?)
Copied!
Pour la migration des utilisateurs existants, vous devez appeler cette méthode pour afficher le popup ATT sans réafficher la CMP.
Remarque : le popup ATT ne s'affiche que si l'appareil de l'utilisateur supporte ATT, si l'utilisateur a donné son consentement, si purpose 1 est vraie et si ATT ne s'affiche pas encore.
ATTENTION Ensuite, vous devez appeler la nouvelle méthodesaveATTFloatingPurpose(with value: Bool, _completion: ACResultVoidHandler?) pour envoyer le choix de l'utilisateur sur notre serveur.

Delegate basic implementation

La présentation d'une notice peut également prendre en parametre un Delegate. Il s'agit d'un object (une classe) qui doit se conformer au protocole AppConsentDelegate . Voici les principales méthodes que vous devrez implémenter.
1
appconsent.delegate = self
2
3
// called when the consent has been given
4
func appConsentDidFinish() {
5
print("consent did finish")
6
}
7
8
// called in case of error
9
func appConsentDidFail(_ error: Error) {
10
print("consent did fail: \(error.localizedDescription)")
11
}
12
13
func appConsentWillAppear() { ... }
14
func appConsentDidAppear() { ... }
15
func appConsentWillDisappear() { ... }
16
func appConsentDidDisappear() { ... }
Copied!
Dernière mise à jour 3d ago