[Android] 2. Documentation de l'API
Votre CMPManager
La classe fournit des méthodes pour gérer le consentement de l'utilisateur pour le traitement et le suivi des données. Cette documentation couvre les principales méthodes disponibles pour l'intégration d'applications mobiles.
Initialisation
Objet UrlConfig(:UrlConfig)
Définit la configuration de l'URL pour le Consent Manager. Doit être initialisé avec la valeur ci-dessous et transmis au getInstance
méthode.
Paramètres:
-
id
: String - L'ID CMP -
domain
: String - Le domaine de gestion du consentement -
language
:Chaîne - Le code de langue (par exemple, « EN ») -
appName
: String - Le nom de votre application
Mise en situation :
val urlConfig = UrlConfig(
id = "YOUR_CODE_ID_HERE",
domain = "delivery.consentmanager.net",
language = "EN",
appName = "CMDemoAppKotlin"
)
setActivity(activité : Activité)
Définit l'activité qui présentera la couche de consentement. Il doit s'agir d'une ComponentActivity
.
Paramètres:
-
viewController
: ComponentActivity - L'activité où la couche de consentement sera présentée.
Retours: Aucune
Mise en situation :
CMPManager.shared.setPresentingViewController(self)
Gestion de la couche de consentement
checkIfConsentIsRequired(complétion : (booléen) -> Unité)
Vérifie si le consentement de l'utilisateur est requis. Cela effectuera un appel réseau vers nos serveurs via la WebView créée dans notre SDK, qui enverra un message à notre backend via JavaScript. Notre backend détectera si l'appareil a un consentement valide ou non, et le message sera renvoyé à la WebView, déterminant s'il doit être affiché ou non, consommer une page vue dans le processus. En fonction du message renvoyé, le SDK l'interprétera et renverra ses résultats via le gestionnaire d'achèvement.
Paramètres:
-
completion
: (Booléen) -> Unité - Une fermeture appelée avec le résultat, soittrue
orfalse
.
Retours: Aucune
Mise en situation :
cmpManager.checkIfConsentIsRequired { needsConsent ->
toastMessage = "Needs Consent: $needsConsent"
}
checkWithServerAndOpenIfNecessary(achèvement : (résultat ) -> Unité)
Vérifie auprès du serveur si le consentement est requis et ouvre la couche de consentement si nécessaire. Cela effectuera un appel réseau vers nos serveurs via la WebView créée dans notre SDK, consommer une page vue dans le processus. Cet appel réseau enverra un message à notre backend via JavaScript, qui détectera si l'appareil a un consentement valide ou non, ce qui déterminera à son tour si la couche de consentement doit être affichée ou non.
Paramètres:
-
completion
:Une fermeture appelée lorsque l'opération est terminée, avec le résultat, soittrue
orfalse
.
Retours: Aucune
Mise en situation :
cmpManager.checkWithServerAndOpenIfNecessary { result ->
result.onSuccess {
toastMessage = "Check and Open Consent Layer operation done successfully."
}.onFailure { error ->
toastMessage = "Check and Open Consent Layer operation failed with error: $error"
}
openConsentLayer(achèvement : (Résultat ) -> Unité)
Ouvre la couche de consentement. Il effectue un appel réseau vers notre backend, consommer une page vue dans le processus. Il affichera la couche de consentement permettant à l'utilisateur d'accepter ou de rejeter tous les choix, ou, selon la conception du CMP, de lui permettre de contrôler les consentements de manière plus granulaire.
Paramètres:
-
completion
:Une fermeture appelée lorsque l'opération est terminée, renvoyant soit un succès, soit une erreur.
Retours: Aucune
Mise en situation :
cmpManager.openConsentLayer { result ->
result.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
Statut du consentement
exportCMPInfo()
Exporte les informations de consentement actuelles stockées sur l'appareil sous forme de chaîne. Cette méthode récupère la chaîne de consentement de la zone SharedPreferences de l'appareil et la renvoie. Généralement, ces informations sont transmises à importCMPInfo
méthode.
Retours: Chaîne - Les informations de consentement exportées
Mise en situation :
val cmpInfo = CMPManager.shared.exportCMPInfo()
Log.d("Exported CMP info: \(cmpInfo)")
hasPurposeConsent(id : chaîne)
Vérifie si le consentement a été donné pour une finalité spécifique et si ce consentement est stocké sur l'appareil. Il vérifie la zone SharedPreferences pour les consentements acceptés ou rejetés, et filtre l'ID passé en paramètre, renvoyant true si le consentement a été accepté ou false dans le cas contraire.
Paramètres:
-
id
: String - L'ID de l'objectif à vérifier
Retours: Boolean
- True
si le consentement est donné, false
autrement
Mise en situation :
val hasPurposeConsent = cmpManager.hasPurposeConsent(id: "c53")
Log.d("Has consent for purpose c53: \(hasPurposeConsent)")
aUserChoice()
Vérifie si l'utilisateur a fait un choix concernant les consentements et si ce consentement est stocké sur l'appareil. Cela signifie que l'utilisateur a accepté tous les consentements, les a tous rejetés ou a fait un choix mixte de consentements rejetés et acceptés, en fonction de la conception de la CMP, ce qui peut permettre aux utilisateurs d'autoriser certains consentements et d'en rejeter d'autres. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans la zone SharedPreferences, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Retours: Boolean
- true
si l'utilisateur a fait un choix, false
autrement
Mise en situation :
val hasChoice = cmpManager.hasUserChoice()
print("User has made a choice: \(hasChoice)")
hasVendorConsent(id : chaîne)
Vérifie si le consentement a été donné pour un fournisseur spécifique et ce consentement est stocké sur l'appareil, selon les configurations CMP. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans la zone SharedPreferences, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Paramètres:
-
id
: String - L'ID du fournisseur à vérifier
Retours: Boolean
- True
si le consentement est donné, false
autrement
Mise en situation :
val hasVendorConsent = cmpManager.hasVendorConsent(id: "s2789")
Log.d("Has consent for vendor s2789: \(hasVendorConsent)")
Objectif et gestion des fournisseurs
getAllPurposesIDs()
Récupère tous les identifiants d'objectif stockés sur l'appareil, selon les configurations CMP. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans la zone SharedPreferences, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Retours: Liste - Une liste d'identifiants à usage général
Mise en situation :
val allPurposes = cmpManager.getAllPurposesIDs()
Log.d("All purposes: \(allPurposes)")
getAllVendorsIDs()
Récupère tous les identifiants de fournisseurs stockés sur l'appareil, selon les configurations CMP. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans les SharedPreferences la surface, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Retours: Liste - Une liste de tous les identifiants de fournisseurs
Mise en situation :
val allVendors = cmpManager.getAllVendorsIDs()
Log.d("All vendors: \(allVendors)")
getDisabledPurposesIDs()
Récupère les identifiants de toutes les finalités désactivées stockées sur l'appareil, en fonction des configurations CMP et des choix de l'utilisateur. Si l'utilisateur accepte tous les consentements, ce champ sera vide. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans la zone SharedPreferences, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Retours: Liste - Une liste d'identifiants d'objectifs désactivés
Mise en situation :
val disabledPurposes = cmpManager.getDisabledPurposesIDs()
Log.d("Disabled purposes: \(disabledPurposes)")
getDisabledVendorsIDs()
Récupère les identifiants de tous les fournisseurs désactivés stockés sur l'appareil, selon les configurations CMP. Si l'utilisateur accepte tous les consentements, ce champ sera vide. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans la zone SharedPreferences, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Retours: Liste - Une liste d'identifiants de fournisseurs désactivés
Mise en situation :
val disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
Log.d("Disabled vendors: \(disabledVendors)")
getEnabledPurposesIDs()
Récupère les identifiants de tous les objectifs activés stockés sur l'appareil, selon les configurations CMP. Si l'utilisateur rejette tous les consentements, ce champ sera vide. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans la zone SharedPreferences, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Retours: Liste - Une liste d'identifiants d'objectifs activés
Mise en situation :
val enabledPurposes = cmpManager.getEnabledPurposesIDs()
Log.d("Enabled purposes: \(enabledPurposes)")
getEnabledVendorsIDs()
Récupère les identifiants de tous les fournisseurs activés stockés sur l'appareil. Si l'utilisateur rejette tous les consentements, ce champ sera vide. Ces informations ne seront mises à jour qu'une fois le consentement correctement conservé dans la zone SharedPreferences, donc si vous vérifiez juste après avoir utilisé des méthodes qui déclenchent des modifications dans le consentement comme openConsentLayer
, acceptAll
or rejectAll
, par exemple, alors attendez que le rappel de ces méthodes soit déclenché avant d'accéder à la méthode hasUserChoice
, pour s'assurer que les informations sont à jour.
Retours: Liste - Une liste des identifiants de fournisseurs activés
Mise en situation :
val enabledVendors = cmpManager.getEnabledVendorsIDs()
Log.d("Enabled vendors: \(enabledVendors)")
Modification du consentement
acceptAll(achèvement : (résultat ) -> Unité)
Accepte le consentement à toutes fins et fournisseurs, consommer une page vue dans le processus. Il effectue un appel réseau vers notre backend via un message injecté sur la WebView, ce qui déclenchera l'acceptation de tous les consentements, selon la configuration CMP. Ces informations ne seront disponibles pour les autres méthodes qu'après que le rappel ait renvoyé un succès ou un échec, ce qui signifie qu'il a été traité avec succès par notre backend et conservé sur l'appareil.
Paramètres:
-
completion
:Une fermeture appelée lorsque l'opération est terminée, renvoyant un échec ou un succès.
Retours: Aucune
Mise en situation :
cmpManager.acceptAll { result ->
result.onSuccess {
toastMessage = "All consents accepted"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
acceptPurposes(finalités : Liste , updatePurpose : booléen, achèvement : (Résultat ) -> Unité)
Accepte le consentement à des fins déterminées, consommer une page vue dans le processus. Il effectue un appel réseau vers notre backend via un message injecté sur la WebView, qui déclenchera l'acceptation des finalités déterminées passées en paramètre, selon la configuration CMP. Ces informations ne seront disponibles pour les autres méthodes qu'après que le callback aura renvoyé un succès ou un échec, ce qui signifie qu'il a été traité avec succès par notre backend et conservé sur l'appareil.
Paramètres:
-
purposes
: Liste - Une liste d'identifiants d'objectifs à accepter -
updatePurpose
: Booléen - S'il faut mettre à jour les objectifs associés -
completion
:Une fermeture appelée lorsque l'opération est terminée, renvoyant soit un échec, soit un succès
Retours: Aucune
Mise en situation :
cmpManager.acceptPurposes(listOf("c52", "c53"), true) { result ->
result.onSuccess {
toastMessage = "Purposes enabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
acceptVendors(fournisseurs : liste , achèvement : (Résultat ) -> Unité)
Accepte le consentement des fournisseurs spécifiés, consommer une page vue dans le processus. Il effectue un appel réseau vers notre backend via un message injecté sur la WebView, ce qui déclenchera l'acceptation des fournisseurs déterminés passés en paramètre, selon la configuration CMP. Ces informations ne seront disponibles pour les autres méthodes qu'après que le rappel ait renvoyé un succès ou un échec, ce qui signifie qu'il a été traité avec succès par notre backend et conservé sur l'appareil.
Paramètres:
-
vendors
: Liste - Une liste d'identifiants de fournisseurs à accepter -
completion
:Une fermeture appelée lorsque l'opération est terminée
Retours: Aucune
Mise en situation :
cmpManager.acceptVendors(listOf("s2790", "s2791")) { result ->
result.onSuccess {
toastMessage = "Vendors Enabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
importCMPInfo(cmpString: chaîne)
Importe les informations de consentement à partir d'une chaîne CMP. Cela recevra une chaîne simple contenant les données de consentement, généralement obtenues via exportCMPInfo
méthode. Ces informations sont conservées dans la zone SharedPreferences de l'appareil et sont en même temps envoyées à notre backend via un message injecté dans la WebView, consommant une page vue dans le processus.
Paramètres:
-
cmpString
: String - La chaîne CMP à importer -
completion
:Une fermeture appelée lorsque l'opération est terminée, renvoyant soit un échec, soit un succès
Retours: Aucune
Mise en situation :
val cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(cmpString) { result ->
result.onSuccess {
toastMessage = "Vendors Enabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
rejectAll(achèvement : (résultat ) -> Unité)
Rejette le consentement à toutes fins et fournisseurs, consommer une page vue dans le processus. Il effectue un appel réseau vers notre backend via un message injecté sur la WebView, ce qui déclenchera le rejet de tous les consentements, selon la configuration CMP. Ces informations ne seront disponibles pour les autres méthodes qu'après que le rappel ait renvoyé un succès ou un échec, ce qui signifie qu'il a été traité avec succès par notre backend et conservé sur l'appareil.
Paramètres:
-
completion
:Une fermeture appelée lorsque l'opération est terminée
Retours: Aucune
Mise en situation :
cmpManager.rejectAll { result ->
result.onSuccess {
toastMessage = "All consents rejected"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
rejectPurposes(finalités : Liste , updateVendor : booléen, completion : (Résultat ) -> Unité)
Rejette le consentement à des fins spécifiques, consommer une page vue dans le processus. Il effectue un appel réseau vers notre backend via un message injecté sur la WebView, ce qui déclenchera le rejet des finalités déterminées passées en paramètre, selon la configuration CMP. Ces informations ne seront disponibles pour les autres méthodes qu'après que le callback aura renvoyé un succès ou un échec, ce qui signifie qu'il a été traité avec succès par notre backend et conservé sur l'appareil.
Paramètres:
-
purposes
:List<String>
- Une liste d'identifiants d'objectifs à rejeter -
updateVendor
:Boolean
- S'il faut mettre à jour les fournisseurs associés -
completion
:Une fermeture appelée lorsque l'opération est terminée
Retours: Aucune
Mise en situation :
cmpManager.rejectPurposes(listOf("c52", "c53"), true) { result ->
result.onSuccess {
toastMessage = "Purposes disabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
rejectVendors(fournisseurs : liste , achèvement : (Résultat ) -> Unité)
Rejette le consentement pour les fournisseurs spécifiés, consommer une page vue dans le processus. Il effectue un appel réseau vers notre backend via un message injecté sur la WebView, ce qui déclenchera le rejet des fournisseurs déterminés passés en paramètre, selon la configuration CMP. Ces informations ne seront disponibles pour les autres méthodes qu'après que le rappel ait renvoyé un succès ou un échec, ce qui signifie qu'il a été traité avec succès par notre backend et conservé sur l'appareil.
Paramètres:
-
vendors
: Liste - Une liste d'identifiants de fournisseurs à rejeter -
completion
:Une fermeture appelée lorsque l'opération est terminée, renvoyant soit un échec, soit un succès
Retours: Aucune
Mise en situation :
cmpManager.rejectVendors(listOf("s2790", "s2791")) { result ->
result.onSuccess {
toastMessage = "Vendors Disabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
réinitialiserConsentManagementData()
Réinitialise toutes les données de gestion du consentement. Cela efface complètement toutes les entrées de la zone SharedPreferences liées aux consentements acceptés ou rejetés par l'utilisateur. Cela revient à supprimer complètement l'application de l'appareil.
Paramètres:
Aucune
Retours: Aucune
Mise en situation :
cmpManager.resetConsentManagementData()
Événements CMPManagerDelegate
didReceiveConsent(consentement : String, jsonObject : [String : Any])
Cela se déclenche lorsque la couche de consentement a été fermée après que l'utilisateur a mis à jour ses consentements OU lors de l'appel de méthodes qui provoquent des modifications dans les consentements, comme acceptAll, rejectAll, acceptVendors, rejectVendors, etc. Cela signifie que l'utilisateur a accepté ou rejeté certains des consentements, et que ceux-ci ont été correctement enregistrés dans l'appareil.
didShowConsentLayer
Cela se déclenche lorsque la couche de consentement a été effectivement affichée. Cela signifie qu'aucun consentement n'était valide sur l'appareil, il faut donc en collecter un nouveau.
a fermé la couche de consentement
Cela se produit lorsque le SDK a vérifié la nécessité d'un consentement, mais que celui-ci n'était pas nécessaire et que la couche n'était pas affichée. Cela signifie qu'il existe déjà une couche valide dans l'appareil, donc une nouvelle couche n'est pas nécessaire et la couche de consentement ne s'affichera pas.
Erreur de réception
Cela se déclenche lorsque le SDK rencontre une erreur et renvoie son code.