Quels consent.purposes de l'IAB TCF2 pour GTM ?

Discussion dans 'Administration d'un site Web' créé par ortolojf, 14 Octobre 2020.

  1. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Bonjour

    Je vais installer Sirdata sur mon site, et réactiver GTM.

    Je vais faire ceci :

    Code:
    
    // Voir les Google policies pour les permissions donnés par les user.
    // register the addEventListener at the beginning of your page load
    // after the CMP JS as been loaded
    __tcfapi('addEventListener', 2, function(tcData, success) {
            if (success && tcData.gdprApplies) {
                    if (tcData.eventStatus === 'tcloaded') {
                            // we have consent, get the tcData string and do the ad request
                            console.log('Debug: tcloaded');
                            if (tcData.vendor.consents[755] && tcData.purpose.consents[1]) {
                                    console.log("Vendor ID 755 has consent for purpose ID 1");
                            }
                            if (!tcData.vendor.consents[755] || !tcData.purpose.consents[2]) {
                                    console.log("Vendor ID 755 has no consent for purpose ID 2");
                            }
                            if (tcData.vendor.legitimateInterests[755] && tcData.purpose.legitimateInterests[9]) {
                                    console.log("User has been informed of vendor ID 755's legitimate interest for purpose ID 9 and hasn't objected to it");
                            }
                            if (!tcData.vendor.legitimateInterests[755] || !tcData.purpose.legitimateInterests[10]) {
                                    console.log("User has objected to vendor ID 755's legitimate interest for purpose ID 10");
                            }
                    } else if (tcData.eventStatus === 'useractioncomplete') {
                            // user just gave consent, get the tcdata string and do the
                            // ad request
                            console.log('Debug: useractioncomplete');
                            if (tcData.vendor.consents[755] && tcData.purpose.consents[1]) {
                                    console.log("Vendor ID 755 has consent for purpose ID 1");
                            }
                            if (!tcData.vendor.consents[755] || !tcData.purpose.consents[2]) {
                                    console.log("Vendor ID 755 has no consent for purpose ID 2");
                            }
                            if (tcData.vendor.legitimateInterests[755] && tcData.purpose.legitimateInterests[9]) {
                                    console.log("User has been informed of vendor ID 755's legitimate interest for purpose ID 9 and hasn't objected to it");
                            }
                            if (!tcData.vendor.legitimateInterests[755] || !tcData.purpose.legitimateInterests[10]) {
                                    console.log("User has objected to vendor ID 755's legitimate interest for purpose ID 10");
                            }
                    } else {
                            console.log('Debug: tcData.eventStatus: ', tcData.eventStatus);
                    }
            }
    })
    
    


    Pour le global vendor ID, c'est bien 755 ?

    Et puis, quels sont les purpose.consents et les purpose.legitimateInterests ?

    Merci beaucoup.
     
  2. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Ben voilà :

    Copié de Sirdata :

    Code:
    
    Finalité 1 : Stocker et/ou accéder à des informations sur un terminal
    Finalité 2 : Sélectionner des publicités standard
    Finalité 3 : Créer un profil personnalisé de publicités
    Finalité 4 : Sélectionner des publicités personnalisées
    Finalité 5 : Créer un profil pour afficher un contenu personnalisé
    Finalité 6 : Sélectionner du contenu personnalisé
    Finalité 7 : Mesurer la performance des publicités
    Finalité 8 : Mesurer la performance du contenu
    Finalité 9 : Exploiter des études de marché afin de générer des données d’audience
    Finalité 10 : Développer et améliorer les produits
    Fonctionnalité spéciale 2 : Analyser activement les caractéristiques du terminal pour l’identification
    Fonctionnalité spéciale 1 : Utiliser des données de géolocalisation précises
    
    
     
  3. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Bonjour

    J'ai un problème.

    D'après Google, il faut que la finalité spéciale 1 ait été acceptée, pour que Google puisse "travailler avec l'éditeur".

    Or, pour Sirdata, les fonctionnalités spéciales sont par défaut.

    D'un autre côté, j'ai positionné les finalités nécessaires et suffisantes pour lancer GTM, aux 1 et 8.

    C'est-à dire :

    Finalité 1 : Stocker et/ou accéder à des informations sur un terminal
    Finalité 8 : Mesurer la performance du contenu

    Celà est-il correct ?

    Merci beaucoup.
     
  4. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12


    Rebonjour

    Plus généralement :

    Quels consentements pour GTM ?

    Merci.
     
  5. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Bonjour

    Voir les policies de Google par rapport à IAB TCF v2 :

    https://support.google.com/admanager/answer/9461778?hl=fr

    Théoriquement, pour activer Google Tag Manager, Google veut le consentement du visiteur au finalités 1, 8 et 9.

    Google permet que le consentement ne soit pas présent pour la finalité spéciale 1, à la condition que l'éditeur ait bien explicité l'utilisation qu'il fait des données personnelles.

    Egalement, Google considère que le consentement à la finalité spéciale 2 n'est pas nécessaire, ( est inclus dans d'autres consentements ).

    J'ai donc activé sur Sirdata, les finalités 1, 8 et 9.

    J'ai constaté, que le libellé incluait les finalités 3 et 4, ce qui n'est pas normal, puisque j'ai désactivé les 2 à 7 et 10.

    Après j'ai essayé de n'activer que les finalités 1 et 8 mais rien à faire : les 3 et 4 figurent dans le libellé.

    D'où vient le bug ?

    Merci beaucoup.

    Amicalement.
     
  6. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Pardon

    Ce que j'ai fait avec Sirdata :

    Code:
    
    <script>
    /**
    Finalité 1 : Stocker et/ou accéder a des informations sur un terminal.
    Finalité 2 : Sélectionner des publicités standard.
    Finalité 3 : Créer un profil personnalisé de publicités.
    Finalité 4 : Sélectionner des publicités personnalisées.
    Finalité 5 : Créer un profil pour afficher un contenu personnalisé.
    Finalité 6 : Sélectionner du contenu personnalisé.
    Finalité 7 : Mesurer la performance des publicités.
    Finalité 8 : Mesurer la performance du contenu.
    Finalité 9 : Exploiter des études de marché afin de générer des données d’audience.
    Finalité 10 : Développer et améliorer les produits.
    Fonctionnalité spéciale 1 : Utiliser des données de géolocalisation précises.
    Fonctionnalité spéciale 2 : Analyser activement les caractéristiques du terminal pour l’identification.
     **/
    /************************************/
    /*   GOOGLE TAG MANAGER VENDOR ID   */
    /************************************/
    const GOOGLE_VENDOR_ID            = 755;
    /************************************/
    const FINALITY_STOCK_TERM            = 1;
    const FINALITY_SELECT_STAND_PUB            = 2;
    const FINALITY_CREATE_PERSO_PUB            = 3;
    const FINALITY_SELECT_PERSO_PUB            = 4;
    const FINALITY_CREATE_PERSO_CONTENT        = 5;
    const FINALITY_SELECT_PERSO_CONTENT        = 6;
    const FINALITY_MEASURE_PUB_PERF            = 7;
    const FINALITY_MEASURE_CONTENT_PERF        = 8;
    const FINALITY_MARKET_VISITS_DATA        = 9;
    const FINALITY_IMPROVE_PRODUCTS            = 10;
    const FINALITY_PRECISE_GEO_DATA            = "SP1";  // doit etre accepté.
    const FINALITY_ACTIVE_CHECK_TERM_CARACT        = "SP2";
    /********************************/
    /* Active la compatibilité TCF. */
    /********************************/
    window['gtag_enable_tcf_support'] = true;
    /********************************/
    /*    Google Tag Manager    */
    /********************************/
    function launch_GTM_header(yes_no) {
        if(yes_no) {
            (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-ABCDEF');
        }
    }
    /********************************/
    /*    End Google Tag Manager    */
    /********************************/
    /************************************/
    /*  Google Tag Manager (noscript)   */
    /************************************/
    function launch_GTM_body(yes_no) {
        if(yes_no) {
            var noscript = document.createElement('noscript');
            var iframe = document.createElement('iframe');
            iframe.src="https://www.googletagmanager.com/ns.html?id=GTM-ABCDEF";
            iframe.height="0";
            iframe.width="0";
            iframe.style="display:none;visibility:hidden";
            noscript.appendChild(iframe);
            document.body.appendChild(noscript);
        }
    }
    /**************************************/
    /*  End Google Tag Manager (noscript) */
    /**************************************/
    // Voir les Google policies pour les permissions données par les user.
    // register the addEventListener at the beginning of your page load
    // after the CMP JS as been loaded
    __tcfapi('addEventListener', 2, function(tcData, success) {
        if (success && tcData.gdprApplies) {
            if (tcData.eventStatus === 'tcloaded') {
                // we have consent, get the tcData string and do the ad request
                console.log('Debug: tcloaded');
                if (tcData.vendor.consents[GOOGLE_VENDOR_ID] 
                        && tcData.purpose.consents[FINALITY_STOCK_TERM]
                        && tcData.purpose.consents[FINALITY_MEASURE_CONTENT_PERF]) {
    //                    && tcData.purpose.consents[FINALITY_MARKET_VISITS_DATA]) {
                    console.log("Vendor Google Advertising Products has consent for purpose GTM.");
                    launch_GTM_header(true);
                    launch_GTM_body(true);
                }
                if (!tcData.vendor.consents[GOOGLE_VENDOR_ID]
                        || !tcData.purpose.consents[FINALITY_STOCK_TERM]
                        || !tcData.purpose.consents[FINALITY_MEASURE_CONTENT_PERF]) {
    //                    || !tcData.purpose.consents[FINALITY_MARKET_VISITS_DATA]) {
                    console.log("Vendor Google Advertising Products has no consent for purpose GTM.");
                    launch_GTM_header(false);
                    launch_GTM_body(false);
                }
            } else if (tcData.eventStatus === 'useractioncomplete') {
                // user just gave consent, get the tcdata string and do the
                // ad request
                console.log('Debug: useractioncomplete');
                if (tcData.vendor.consents[GOOGLE_VENDOR_ID] 
                        && tcData.purpose.consents[FINALITY_STOCK_TERM]
                        && tcData.purpose.consents[FINALITY_MEASURE_CONTENT_PERF]) {
    //                    && tcData.purpose.consents[FINALITY_MARKET_VISITS_DATA]) {
                    console.log("Vendor Google Advertising Products has consent for purpose GTM.");
                    launch_GTM_header(true);
                    launch_GTM_body(true);
                }
                if (!tcData.vendor.consents[GOOGLE_VENDOR_ID]
                        || !tcData.purpose.consents[FINALITY_STOCK_TERM]
                        || !tcData.purpose.consents[FINALITY_MEASURE_CONTENT_PERF]) {
    //                    || !tcData.purpose.consents[FINALITY_MARKET_VISITS_DATA]) {
                    console.log("Vendor Google Advertising Products has no consent for purpose GTM.");
                    launch_GTM_header(false);
                    launch_GTM_body(false);
                }
            } else {
                console.log('Debug: tcData.eventStatus: ', tcData.eventStatus);
            }
        }
    })
    </script>
    
    

    Ma question : Est-ce correct ?

    Le noscript en Javascript est contradictoire, mais comment activer le noscript manière html soumis à condition ?

    Respectueusement.
     
  7. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Bonjour

    Le lien précité :

    https://support.google.com/admanager/answer/9461778?hl=fr

    indique la nécessité d'obtenir le consentement du visiteur pour les finalités 3 et 4, mais ne semble pas mentionner le cas de GTM, qui n'est pas un système d'annonces, et pour lequel la gestion des permissions est laissé à l'éditeur.

    D'un autre côté, ces finalités 3 et 4 apparaissent dans mon libellé de fixation des consentements.

    Je n'ai pas d'annonces, seulement GTM.

    Dois-je tenir compte des finalités 3 et 4 pour les consentements nécessaires à GTM ?

    Merci.
     
Chargement...
Similar Threads - consent purposes IAB Forum Date
Preuve consentement et tarteaucitron. Développement d'un site Web ou d'une appli mobile 8 Juillet 2020
Consentement de l'utilisateur dans l'UE; comment? AdSense 6 Mars 2020
css pour cookieconsent et apparence graphique. Développement d'un site Web ou d'une appli mobile 28 Avril 2019
Consentement avec google analytics Google Analytics 22 Mai 2018
RGPD : preuve de consentement Droit du web (juridique, fiscalité...) 8 Mai 2018
AdSense me vire à cause des cookies (consentement de l'utilisateur) AdSense 26 Septembre 2017
Compte Adsense désactivé cause non respect consentement utilisateur union europeenne AdSense 21 Juillet 2017
Quel script de consentement <=> tarteaucitron en pur php ? Développement d'un site Web ou d'une appli mobile 19 Août 2016
Adsense : nouvelle règles européennes sur le consentement des utilisateurs AdSense 27 Juillet 2015
L'europe impose le consentement explicite de l'internaute avant d'utililer les cookies Droit du web (juridique, fiscalité...) 16 Mars 2011