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 523
    J'aime reçus:
    28
    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 523
    J'aime reçus:
    28
    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 523
    J'aime reçus:
    28
    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 523
    J'aime reçus:
    28


    Rebonjour

    Plus généralement :

    Quels consentements pour GTM ?

    Merci.
     
  5. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 523
    J'aime reçus:
    28
    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 523
    J'aime reçus:
    28
    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 523
    J'aime reçus:
    28
    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
Conformité avec les règles de Google relatives au consentement de l'utilisateur dans l'UE AdSense 5 Octobre 2021
Monétiser son site sans cookie ni consentement Monétisation d'un site web 3 Octobre 2021
" Utilisez le mode Consentement" AdWords 21 Juillet 2021
Bookmarklet pour ignorer le consentement (cookie-consent) Développement d'un site Web ou d'une appli mobile 5 Avril 2021
Consentement Adsense et analytics Administration d'un site Web 3 Avril 2021
Questions réponses sur Axeptio (Consent Management Platform) Administration d'un site Web 30 Mars 2021
Questions-réponses sur AppConsent, la CMP de SFBX Administration d'un site Web 30 Mars 2021
Questions-réponses sur la CMP ConsentManager Administration d'un site Web 30 Mars 2021
Récapitulatif Les CMP (Consent Management Platform) : intérêt, fonctionnement... Administration d'un site Web 30 Mars 2021
Récapitulatif Gestion du consentement pour Google Analytics Google Analytics 30 Mars 2021