Information
du Paquet

Intégration de l'API CMP pour les applications

Dans certains cas, les SDK existants ne peuvent pas être utilisés et des intergations personnalisées sont nécessaires. Dans ce cas, les développeurs d'applications peuvent utiliser l'API CMP pour les applications afin d'intégrer manuellement le CMP dans leur application.

Flux de travail

L'API CMP pour les applications est utilisée dans l'ordre suivant:

  1. L'application interrogera le consentmanager serveur une fois par jour (premier démarrage de l'application ce jour-là). Il enverra les informations de consentement existantes et demandera au consentmanager serveur si oui ou non l'utilisateur doit être invité à donner son consentement (à nouveau).
  2. En fonction de la réponse du consentmanager serveur, l'application affichera la couche de consentement dans une vue Web. L'utilisateur peut s'informer et faire ses choix.
  3. Lorsque l'utilisateur a terminé, la vue Web le communiquera à l'application. L'application fermera la vue Web et traitera les informations de consentement.
  4. L'application peut ensuite utiliser les informations de consentement pour son propre traitement des données.

1. Interrogation du consentmanager serveur

Dans un premier temps, l'application enverra une requête HTTP à:

https://[consentmanager-server]/delivery/appjson.php?id=[CMP-ID]&l=[Language]&idfa=[IDFA]&appname=[Appname]&consent=[Consent-Info]

Où les macros suivantes doivent être remplacées par l'application avant l'envoi:

  • [consentmanager-server] - Domaine du serveur (voir Menu> Obtenir le code> Paramètres du SDK d'application)
  • [CMP-ID] - ID du CMP (voir Menu> Obtenir le code> Paramètres du SDK d'application)
  • [Langue] - Code de langue pour l'affichage du message (par exemple EN, FR, DE, ...)
  • [IDFA] - facultatif. IDFA de l'application
  • [Appname] - facultatif. Nom de l'application à des fins de rapport
  • [Consent-Info] - Consent-Information comme reçu de la webview (version encodée en base64 des données de consentement)

Exemple d'URL:

https://consentmanager.mgr.consensu.org/delivery/appjson.php?id=123456&l=FR&appname=my%20App&consent=Qxc2j2J8aN....

La réponse à cette demande est un texte JSON comme le suivant:

{
 "status":1, 
 "regulation":1, 
 "message":"", 
 "url":"https://consentmanager.mgr.consensu.org/delivery/appcmp.php?id=123456&consent=&appname=my%20App&l=FR"
 }

Les champs de la réponse sont les suivants:

Champ Détails
status

0 = Aucun consentement requis, la vue Web ne doit pas être affichée

1 = Consentement nécessaire, URL du champ url doit être affiché dans la vue Web

2 = Une erreur s'est produite, voir message

regulation 0 = aucun réglage de régulation, 1 = GDPR s'applique, 2 = CCPA s'applique, 3 = LGPD s'applique, ...
message Message d'erreur à afficher au développeur.
url URL à afficher dans une vue Web

2. Affichage de la vue Web

Si l'appel à /delivery/appjson.php (voir l'étape 1) aboutit à status = 1, l'application doit utiliser la valeur du champ url et ouvrez-le dans une vue Web (fenêtre du navigateur intégrée à l'application). L'URL affichera une page HTML minimale contenant la version Web du code CMP. La page comprend également un lien "Skipp" afin d'éviter les problèmes de compatibilité JavaScript.

Afin d'afficher le CMP avec toutes les fonctions, la vue Web doit fournir les fonctionnalités minimales suivantes:

  • Prise en charge de HTML 5
  • Prise en charge de CSS 3
  • Prise en charge de JavaScript 1.2
  • Prise en charge DOM 3
  • Résolution minimale de 300x300 pixels (de préférence pleine largeur et hauteur minimale de 80% en mode portrait)
  • Ouvrez / accédez aux URL via https: protocole (par exemple, politiques de confidentialité) en ouvrant une nouvelle fenêtre de navigateur
  • Capturer lorsque la vue Web tente d'accéder à un URN commençant par le protocole "consent: //"

L'application ne doit pas permettre à l'utilisateur d'ignorer la vue Web d'une autre manière (par exemple en désactivant le bouton «retour» ou des fonctionnalités similaires).

3. Traitement des données de consentement

Une fois que l'utilisateur a fait ses choix, le CMP appellera un URN avec le préfixe de protocole consentement: // suivi des informations de consentement sous forme codée en base64-websafe. Exemple:

consent://Q083NU1KN084QXBEOEFmWlhDREVBOUNzQVBfQUFIX0FBQWlnR2t0Zl9YX2ZiMnZqLV81OTlfdDBlWTFmOV82M3Ytd3pqaGVOcy04TnlkX1hfTDRYdjJNeXZCMzZwcTRLdVI0a3UzYkJBUWR0SE9uY1RRbVJ3SWxWcVRMc2IwMk1yN05LSjdMRW1sc2JlMmRZR0g5dm45WFRfWktaNzBfX19fXzdfM19fX19fXzc3Xy1iXzRHa3RmX1hfZmIydmotXzU5OV90MGVZMWY5XzYzdi13empoZU5zLThOeWRfWF9MNFh2Mk15dkIzNnBxNEt1UjRrdTNiQkFRZHRIT25jVFFtUndJbFZxVExzYjAyTXI3TktKN0xFbWxzYmUyZFlHSDl2bjlYVF9aS1o3MF9fX19fN18zX19fX19fNzdfLWJfNENnS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRURBQWdMYUNRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFnb0FFQmJRYUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUhBQWdMYUVRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFoSUFFQmJRcUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUxBQWdMYUdRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFob0FFQmJRNkFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVBBQWdMYUlRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpSUFFQmJSS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVRBQWdMYUtRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpb0FFQmJRI18xXzE5XyNfczIxOF9jNTk3NV9zMjNfYzUxNDdfczdfYzUxNjNfczFfczI2X3MxMzVfczExMDRfczE0MDlfczkwNV9zMTRfYzQ0OTlfYzUxMzZfYzY5MjVfYzUzMzVfYzUzMzRfYzUxNThfYzUyMjNfYzUxMzVfczM0X3MzMF9VXyMxLS0tIzF-My4yOTUzLjI4NTguMTk4Ni4xMS4yMzYuMTUuMjg2Ni4xMjMyLjI3MTAuMjIuMjg5Mi4xNDk2LjI0NDEuMjE3Ni4zNS4xOTYwLjI0NjcuMTMzNi44MjcuMTUxNC4xNjQyLjI3MDIuMzU5LjI2MzIuMjgwMy44NS4yMjE0LjIyNzYuOTMyLjEyNDguNTcuMjE0MS4yMjcxLjE1MTcuMjY2Mi4xNDA5LjE0NTEuNTg3Ljk5MS4xODM0LjE1NDcuMTg1OC4xNzQxLjExNjcuMTk4Ny4xNzc2LjEwNjMuMjY5OS4yOTU3LjI2NjMuMjk3MS4yMDYyLjI3ODYuMjQ1My45ODcuMjkzNi4yMTYuNTk1LjI5MTAuNjIuMjYyMi4xNTMuMTU0LjIzMjAuMTY1LjE3OC4xMjI1LjI4NDcuMzE3Ljc3Ni4xODguNzk3LjUzNy4xMzI5LjMxNi4xOTUuNDkyLjg5LjIwOS4xMTAwLjI3MjcuMjAxNi45NTUuMjIxLjE3MDUuMTI5OC4yMjkuMjI5LjI1ODYuMjc3OS4yNTA2LjEyNzUuMTczNS4yNzA1LjEyNi4yNjM5LjExNzIuMjU1LjIyNTEuMjU5Ny40OC4yMjk1LjI3MS4xNzYwLjYyMS4yNzQuMjgwOC4xNjc0LjI2NjYuMTg4My4xNTk4LjE1NDIuMTczOS4yNjg5LjYwOS4xNDIzLjEyLjE1MDMuMjk3Mi4xNzMzLjI5NC4xOTA1LjI0MTMuNzIzLjExOTkuMzEzLjcyNS4xMDUyLjU5MC4xNzgwLjMxMC4zMDMuMTM0NC4zMzYuMjQ2NC4yMTIxLjEwNDcuMjI0Ny40MzIuMzQ4LjE4ODIuMTIxMi4yNzA0LjIyOTAuMjQzNy4zNjMuMjI5OS4yNzc4LjEwNjIuMjA3OS4zNzAuMTg5Mi4yODQzLjExNzEuMzg0LjEzNC4yODY4LjI3ODAuMTAyOC4yODMyLjM5OC43ODIuMzQwLjE3OTEuMjQxMC4yMDU5LjE2MS4yMTcwLjE1MjAuMjgxMC4yNjQ5Ljk3Ni4yMzExLjE0MTkuNDM4LjMxNC4yNzA5LjE2NTIuNDQzLjIzODIuMTA3Mi4yODcyLjIwMTIuMjkyOC4yNzA2LjQ1OS4yMjc4LjE4MDEuNjI0LjEzMTMuMjgwMi4yMzQ2Ljg2LjIxOTIuMTk4NS4xODc1LjE2ODQuMTkxMS4yMDc4LjE3OTQuMTI1LjE3MTYuMTIzNi44MTQuMTAyOS40NzkuMTI0MS4xOTU4LjkzMy4xOTQ1LjE2MjYuNTAzLjUxMC4xODMxLjI0ODEuMjc3Ny4yNTkuMjkwNS4yNTEyLjUyOC4xNTA5LjI2MjQuMTg3Mi4xNzIwLjgwLjI3NTguMjQyMi4yODI5

L'application capturera l'événement de navigation, fermera la vue Web et traitera les données comme suit:

  1. Faites un décodage Websafe base64:
    1. remplacer tout + avec espace
    2. remplacer tout _ avec /
    3. remplacer tout - avec +
    4. ajouter = à la fin de la chaîne afin que la longueur de la chaîne puisse être divisée par 4
    5. faire un décodage base64
    L'exemple de chaîne ci-dessus donnera la chaîne décodée suivante:
    CO75MJ7O8ApD8AfZXCDEA9CsAP_AAH_AAAigGktf_X_fb2vj-_599_t0eY1f9_63v-wzjheNs-8Nyd_X_L4Xv2MyvB36pq4KuR4ku3bBAQdtHOncTQmRwIlVqTLsb02Mr7NKJ7LEmlsbe2dYGH9vn9XT_ZKZ70_____7_3______77_-b_4Gktf_X_fb2vj-_599_t0eY1f9_63v-wzjheNs-8Nyd_X_L4Xv2MyvB36pq4KuR4ku3bBAQdtHOncTQmRwIlVqTLsb02Mr7NKJ7LEmlsbe2dYGH9vn9XT_ZKZ70_____7_3______77_-b_4CgKAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEDAAgLaCQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQgoAEBbQaAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEHAAgLaEQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQhIAEBbQqAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaELAAgLaGQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQhoAEBbQ6AYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEPAAgLaIQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQiIAEBbRKAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaETAAgLaKQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQioAEBbQ#_1_19_#_s218_c5975_s23_c5147_s7_c5163_s1_s26_s135_s1104_s1409_s905_s14_c4499_c5136_c6925_c5335_c5334_c5158_c5223_c5135_s34_s30_U_#1---#1~3.2953.2858.1986.11.236.15.2866.1232.2710.22.2892.1496.2441.2176.35.1960.2467.1336.827.1514.1642.2702.359.2632.2803.85.2214.2276.932.1248.57.2141.2271.1517.2662.1409.1451.587.991.1834.1547.1858.1741.1167.1987.1776.1063.2699.2957.2663.2971.2062.2786.2453.987.2936.216.595.2910.62.2622.153.154.2320.165.178.1225.2847.317.776.188.797.537.1329.316.195.492.89.209.1100.2727.2016.955.221.1705.1298.229.229.2586.2779.2506.1275.1735.2705.126.2639.1172.255.2251.2597.48.2295.271.1760.621.274.2808.1674.2666.1883.1598.1542.1739.2689.609.1423.12.1503.2972.1733.294.1905.2413.723.1199.313.725.1052.590.1780.310.303.1344.336.2464.2121.1047.2247.432.348.1882.1212.2704.2290.2437.363.2299.2778.1062.2079.370.1892.2843.1171.384.134.2868.2780.1028.2832.398.782.340.1791.2410.2059.161.2170.1520.2810.2649.976.2311.1419.438.314.2709.1652.443.2382.1072.2872.2012.2928.2706.459.2278.1801.624.1313.2802.2346.86.2192.1985.1875.1684.1911.2078.1794.125.1716.1236.814.1029.479.1241.1958.933.1945.1626.503.510.1831.2481.2777.259.2905.2512.528.1509.2624.1872.1720.80.2758.2422.2829
  2. Divisez les données par #, vous recevrez 4 parties ou plus:
    1. Partie: IAB TCF ConsentString (voir https://iabeurope.eu/transparency-consent-framework/)
    2. Partie: ID d'objet (consentement; liste d'ID d'objet séparés par _)
    3. Partie: identifiants des fournisseurs (consentement; liste des identifiants des fournisseurs séparés par _)
    4. Partie: chaîne de consentement supplémentaire Google (voir https://support.google.com/admanager/answer/9681920)
    5. Partie: Chaîne de confidentialité IAB USP (voir https://iabtechlab.com/standards/ccpa/)
    6. Partie: ID d'objet (intérêt légitime; liste d'ID d'objet séparés par _)
    7. Partie: identifiants des fournisseurs (intérêt légitime; liste des identifiants d'objet séparés par _)
    8. Pièce: Format des ID personnalisés compressés (voir Format des ID personnalisés compressés)

  3. Décodez chaque pièce en fonction du format de données de chaque pièce.

Remarque: les informations de consentement, certaines ou toutes les parties peuvent être vides (par exemple si les utilisateurs appuient sur le lien skipp ou en fonction des paramètres CMP).

N'oubliez pas de stocker les informations de consentement (version encodée en base64 Websafe qui a été envoyée de la vue Web à l'application). Il est nécessaire à l'étape 1 lors de l'interrogation du consentmanager serveur.

Retour en haut de la page