[{"data":1,"prerenderedAt":1371},["ShallowReactive",2],{"article-alternates":3,"article-\u002Ffr\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss":12},{"i18nKey":4,"paths":5},"marketing-006-2026-07",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11},"\u002Fde\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss-yonetimi","\u002Fen\u002Fmarketing\u002Fconsent-mode-v2-ve-tcf-modeling-loss-minimize","\u002Fes\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss","\u002Ffr\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss","\u002Fit\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss","\u002Fru\u002Fmarketing\u002Fkonsent-mode-v2-ve-tcf-22-modeling-loss-yonetimi",{"_path":9,"_dir":13,"_draft":14,"_partial":14,"_locale":15,"title":16,"description":17,"publishedAt":18,"modifiedAt":18,"category":13,"i18nKey":4,"tags":19,"readingTime":25,"author":26,"body":27,"_type":1365,"_id":1366,"_source":1367,"_file":1368,"_stem":1369,"_extension":1370},"marketing",false,"","Consent Mode v2 et TCF 2.2 : Comment gérer la perte de modélisation","Guide pratique pour minimiser la perte de données de conversion en conformité GDPR. Implémentation Consent Mode de Google, intégration TCF 2.2 et architecture sGTM pour une récupération de modélisation jusqu'à 70-80%.","2026-07-16",[20,21,22,23,24],"consent-mode","tcf","gdpr","conversion-modeling","gtm",8,"Roibase",{"type":28,"children":29,"toc":1350},"root",[30,38,45,67,72,85,92,97,143,148,154,167,188,517,522,580,586,591,717,730,736,741,772,785,790,937,950,956,1014,1026,1032,1037,1070,1083,1106,1126,1132,1137,1180,1192,1198,1203,1332,1344],{"type":31,"tag":32,"props":33,"children":34},"element","p",{},[35],{"type":36,"value":37},"text","Google Consent Mode v2 et IAB TCF 2.2 sont désormais obligatoires. Depuis mars 2024, le trafic EEA + Royaume-Uni ne peut plus accéder au remarketing et au ciblage d'audiences Google Ads sans Consent Mode. Mais en garantissant la conformité juridique, vous rencontrez un nouveau défi : 40 à 70 % des utilisateurs refusent les cookies d'analyse, et la perte de conversions atteint 15 à 35 %. L'infrastructure de modélisation de consentement de Google tente de combler cette lacune — mais seulement si elle est correctement configurée. Dans cet article, nous expliquons les couches d'implémentation, l'intégration TCF et la liste de contrôle de qualité des données en utilisant des scénarios réels.",{"type":31,"tag":39,"props":40,"children":42},"h2",{"id":41},"quest-ce-que-consent-mode-v2-et-pourquoi-la-modélisation-est-elle-inévitable",[43],{"type":36,"value":44},"Qu'est-ce que Consent Mode v2 et pourquoi la modélisation est-elle inévitable",{"type":31,"tag":32,"props":46,"children":47},{},[48,50,57,59,65],{"type":36,"value":49},"Consent Mode est un protocole qui envoie l'état de consentement de l'utilisateur (granted\u002Fdenied) en tant que signal aux API de plateforme. Dans v2, deux nouveaux paramètres ont été ajoutés : ",{"type":31,"tag":51,"props":52,"children":54},"code",{"className":53},[],[55],{"type":36,"value":56},"ad_user_data",{"type":36,"value":58}," (les données peuvent-elles être collectées pour la personnalisation) et ",{"type":31,"tag":51,"props":60,"children":62},{"className":61},[],[63],{"type":36,"value":64},"ad_personalization",{"type":36,"value":66}," (l'utilisateur peut-il être ajouté à une audience de remarketing). Sans ces deux paramètres, le trafic EEA ne peut pas accéder au ciblage par persona dans Google Ads.",{"type":31,"tag":32,"props":68,"children":69},{},[70],{"type":36,"value":71},"Le problème classique de Consent Mode est le suivant : si l'utilisateur refuse les cookies d'analyse, Google Analytics ne peut pas enregistrer l'événement de conversion. Dans cette situation, votre campagne Google Ads ne dispose pas des données de conversion — l'algorithme d'enchères fonctionne à l'aveugle. C'est là qu'intervient la modélisation de consentement : Google tente d'estimer le nombre de conversions manquantes en prédisant le comportement des utilisateurs qui ont refusé le consentement à partir de cohortes similaires qui ont consenti.",{"type":31,"tag":32,"props":73,"children":74},{},[75,77,83],{"type":36,"value":76},"Pour que la modélisation fonctionne, elle a besoin de deux entrées critiques : (1) suffisamment de données de consentement accordé (minimum 100 conversions par jour, idéalement 1000+), (2) l'état de consentement est correctement envoyé (",{"type":31,"tag":51,"props":78,"children":80},{"className":79},[],[81],{"type":36,"value":82},"gtag('consent', 'update', {...})",{"type":36,"value":84},"). Si ces deux éléments manquent, la modélisation bascule en mode « insufficient data » et la perte ne se comble pas.",{"type":31,"tag":86,"props":87,"children":89},"h3",{"id":88},"facteurs-affectant-la-perte-de-modélisation",[90],{"type":36,"value":91},"Facteurs affectant la perte de modélisation",{"type":31,"tag":32,"props":93,"children":94},{},[95],{"type":36,"value":96},"Selon la documentation Q4 2024 de Google, la modélisation de consentement offre une récupération moyenne de 70 % pour les comptes où le taux de refus de consentement est d'environ 50 %. Autrement dit, si vous avez une perte de consentement de 50 %, la modélisation peut la réduire à 15 %. Mais ce taux dépend de ces variables :",{"type":31,"tag":98,"props":99,"children":100},"ul",{},[101,113,123,133],{"type":31,"tag":102,"props":103,"children":104},"li",{},[105,111],{"type":31,"tag":106,"props":107,"children":108},"strong",{},[109],{"type":36,"value":110},"Volume de trafic avec consentement accordé :",{"type":36,"value":112}," En dessous de 100 par jour, le modèle est faible.",{"type":31,"tag":102,"props":114,"children":115},{},[116,121],{"type":31,"tag":106,"props":117,"children":118},{},[119],{"type":36,"value":120},"Implémentation du CMP :",{"type":36,"value":122}," Un CMP conforme à IAB TCF v2.2 (OneTrust, Cookiebot, Usercentrics) avec un mappage correct des purposes + vendors améliore la qualité du signal.",{"type":31,"tag":102,"props":124,"children":125},{},[126,131],{"type":31,"tag":106,"props":127,"children":128},{},[129],{"type":36,"value":130},"Utilisation de GTM côté serveur :",{"type":36,"value":132}," Avec sGTM, l'état de consentement peut aussi être contrôlé sur le backend, ce qui ajoute du contexte first-party et renforce l'entrée de modélisation.",{"type":31,"tag":102,"props":134,"children":135},{},[136,141],{"type":31,"tag":106,"props":137,"children":138},{},[139],{"type":36,"value":140},"Diversité des types de conversions :",{"type":36,"value":142}," Si vous suivez en même temps le paiement du panier, l'ajout au panier et les pages vues, le modèle apprend à partir d'un tunnel plus large.",{"type":31,"tag":32,"props":144,"children":145},{},[146],{"type":36,"value":147},"Quand la modélisation est faible, la stratégie d'enchères Google Ads (Target ROAS, Max Conversions) est moins performante car le signal de conversion réelle est incomplet. Pour compenser, vous devez importer les conversions hors ligne ou utiliser CAPI (Conversions API) pour intégrer le backend à Google.",{"type":31,"tag":39,"props":149,"children":151},{"id":150},"intégration-tcf-22-mappage-des-purposes-et-liste-des-vendors",[152],{"type":36,"value":153},"Intégration TCF 2.2 : mappage des purposes et liste des vendors",{"type":31,"tag":32,"props":155,"children":156},{},[157,159,165],{"type":36,"value":158},"IAB Transparency and Consent Framework (TCF) 2.2 divise le consentement des utilisateurs en 10 catégories de purposes. Google Ads a besoin au minimum du Purpose 1 (stocker\u002Faccéder aux informations) et du Purpose 2 (personnalisation). La chaîne de consentement TCF est générée par le CMP et lue via le callback ",{"type":31,"tag":51,"props":160,"children":162},{"className":161},[],[163],{"type":36,"value":164},"__tcfapi",{"type":36,"value":166}," avant d'être convertie en Consent Mode dans GTM.",{"type":31,"tag":32,"props":168,"children":169},{},[170,172,178,180,186],{"type":36,"value":171},"En pratique, cela fonctionne ainsi : quand l'utilisateur clique sur « Accepter » dans la bannière du CMP, celui-ci définit ",{"type":31,"tag":51,"props":173,"children":175},{"className":174},[],[176],{"type":36,"value":177},"tcData.purpose.consents",{"type":36,"value":179}," avec ",{"type":31,"tag":51,"props":181,"children":183},{"className":182},[],[184],{"type":36,"value":185},"{1: true, 2: true, ...}",{"type":36,"value":187},". Cet objet est lu dans une variable Custom JavaScript de GTM et mappé de la manière suivante :",{"type":31,"tag":189,"props":190,"children":194},"pre",{"className":191,"code":192,"language":193,"meta":15,"style":15},"language-javascript shiki shiki-themes github-dark","var tcData = window.__tcfapi || {};\nvar purposes = tcData.purpose.consents;\n\nif (purposes[1] && purposes[2]) {\n  gtag('consent', 'update', {\n    ad_storage: 'granted',\n    ad_user_data: 'granted',\n    ad_personalization: 'granted'\n  });\n} else {\n  gtag('consent', 'update', {\n    ad_storage: 'denied',\n    ad_user_data: 'denied',\n    ad_personalization: 'denied'\n  });\n}\n","javascript",[195],{"type":31,"tag":51,"props":196,"children":197},{"__ignoreMap":15},[198,236,258,268,313,349,368,385,398,407,426,454,471,487,500,508],{"type":31,"tag":199,"props":200,"children":203},"span",{"class":201,"line":202},"line",1,[204,210,216,221,226,231],{"type":31,"tag":199,"props":205,"children":207},{"style":206},"--shiki-default:#F97583",[208],{"type":36,"value":209},"var",{"type":31,"tag":199,"props":211,"children":213},{"style":212},"--shiki-default:#E1E4E8",[214],{"type":36,"value":215}," tcData ",{"type":31,"tag":199,"props":217,"children":218},{"style":206},[219],{"type":36,"value":220},"=",{"type":31,"tag":199,"props":222,"children":223},{"style":212},[224],{"type":36,"value":225}," window.__tcfapi ",{"type":31,"tag":199,"props":227,"children":228},{"style":206},[229],{"type":36,"value":230},"||",{"type":31,"tag":199,"props":232,"children":233},{"style":212},[234],{"type":36,"value":235}," {};\n",{"type":31,"tag":199,"props":237,"children":239},{"class":201,"line":238},2,[240,244,249,253],{"type":31,"tag":199,"props":241,"children":242},{"style":206},[243],{"type":36,"value":209},{"type":31,"tag":199,"props":245,"children":246},{"style":212},[247],{"type":36,"value":248}," purposes ",{"type":31,"tag":199,"props":250,"children":251},{"style":206},[252],{"type":36,"value":220},{"type":31,"tag":199,"props":254,"children":255},{"style":212},[256],{"type":36,"value":257}," tcData.purpose.consents;\n",{"type":31,"tag":199,"props":259,"children":261},{"class":201,"line":260},3,[262],{"type":31,"tag":199,"props":263,"children":265},{"emptyLinePlaceholder":264},true,[266],{"type":36,"value":267},"\n",{"type":31,"tag":199,"props":269,"children":271},{"class":201,"line":270},4,[272,277,282,288,293,298,303,308],{"type":31,"tag":199,"props":273,"children":274},{"style":206},[275],{"type":36,"value":276},"if",{"type":31,"tag":199,"props":278,"children":279},{"style":212},[280],{"type":36,"value":281}," (purposes[",{"type":31,"tag":199,"props":283,"children":285},{"style":284},"--shiki-default:#79B8FF",[286],{"type":36,"value":287},"1",{"type":31,"tag":199,"props":289,"children":290},{"style":212},[291],{"type":36,"value":292},"] ",{"type":31,"tag":199,"props":294,"children":295},{"style":206},[296],{"type":36,"value":297},"&&",{"type":31,"tag":199,"props":299,"children":300},{"style":212},[301],{"type":36,"value":302}," purposes[",{"type":31,"tag":199,"props":304,"children":305},{"style":284},[306],{"type":36,"value":307},"2",{"type":31,"tag":199,"props":309,"children":310},{"style":212},[311],{"type":36,"value":312},"]) {\n",{"type":31,"tag":199,"props":314,"children":316},{"class":201,"line":315},5,[317,323,328,334,339,344],{"type":31,"tag":199,"props":318,"children":320},{"style":319},"--shiki-default:#B392F0",[321],{"type":36,"value":322},"  gtag",{"type":31,"tag":199,"props":324,"children":325},{"style":212},[326],{"type":36,"value":327},"(",{"type":31,"tag":199,"props":329,"children":331},{"style":330},"--shiki-default:#9ECBFF",[332],{"type":36,"value":333},"'consent'",{"type":31,"tag":199,"props":335,"children":336},{"style":212},[337],{"type":36,"value":338},", ",{"type":31,"tag":199,"props":340,"children":341},{"style":330},[342],{"type":36,"value":343},"'update'",{"type":31,"tag":199,"props":345,"children":346},{"style":212},[347],{"type":36,"value":348},", {\n",{"type":31,"tag":199,"props":350,"children":352},{"class":201,"line":351},6,[353,358,363],{"type":31,"tag":199,"props":354,"children":355},{"style":212},[356],{"type":36,"value":357},"    ad_storage: ",{"type":31,"tag":199,"props":359,"children":360},{"style":330},[361],{"type":36,"value":362},"'granted'",{"type":31,"tag":199,"props":364,"children":365},{"style":212},[366],{"type":36,"value":367},",\n",{"type":31,"tag":199,"props":369,"children":371},{"class":201,"line":370},7,[372,377,381],{"type":31,"tag":199,"props":373,"children":374},{"style":212},[375],{"type":36,"value":376},"    ad_user_data: ",{"type":31,"tag":199,"props":378,"children":379},{"style":330},[380],{"type":36,"value":362},{"type":31,"tag":199,"props":382,"children":383},{"style":212},[384],{"type":36,"value":367},{"type":31,"tag":199,"props":386,"children":387},{"class":201,"line":25},[388,393],{"type":31,"tag":199,"props":389,"children":390},{"style":212},[391],{"type":36,"value":392},"    ad_personalization: ",{"type":31,"tag":199,"props":394,"children":395},{"style":330},[396],{"type":36,"value":397},"'granted'\n",{"type":31,"tag":199,"props":399,"children":401},{"class":201,"line":400},9,[402],{"type":31,"tag":199,"props":403,"children":404},{"style":212},[405],{"type":36,"value":406},"  });\n",{"type":31,"tag":199,"props":408,"children":410},{"class":201,"line":409},10,[411,416,421],{"type":31,"tag":199,"props":412,"children":413},{"style":212},[414],{"type":36,"value":415},"} ",{"type":31,"tag":199,"props":417,"children":418},{"style":206},[419],{"type":36,"value":420},"else",{"type":31,"tag":199,"props":422,"children":423},{"style":212},[424],{"type":36,"value":425}," {\n",{"type":31,"tag":199,"props":427,"children":429},{"class":201,"line":428},11,[430,434,438,442,446,450],{"type":31,"tag":199,"props":431,"children":432},{"style":319},[433],{"type":36,"value":322},{"type":31,"tag":199,"props":435,"children":436},{"style":212},[437],{"type":36,"value":327},{"type":31,"tag":199,"props":439,"children":440},{"style":330},[441],{"type":36,"value":333},{"type":31,"tag":199,"props":443,"children":444},{"style":212},[445],{"type":36,"value":338},{"type":31,"tag":199,"props":447,"children":448},{"style":330},[449],{"type":36,"value":343},{"type":31,"tag":199,"props":451,"children":452},{"style":212},[453],{"type":36,"value":348},{"type":31,"tag":199,"props":455,"children":457},{"class":201,"line":456},12,[458,462,467],{"type":31,"tag":199,"props":459,"children":460},{"style":212},[461],{"type":36,"value":357},{"type":31,"tag":199,"props":463,"children":464},{"style":330},[465],{"type":36,"value":466},"'denied'",{"type":31,"tag":199,"props":468,"children":469},{"style":212},[470],{"type":36,"value":367},{"type":31,"tag":199,"props":472,"children":474},{"class":201,"line":473},13,[475,479,483],{"type":31,"tag":199,"props":476,"children":477},{"style":212},[478],{"type":36,"value":376},{"type":31,"tag":199,"props":480,"children":481},{"style":330},[482],{"type":36,"value":466},{"type":31,"tag":199,"props":484,"children":485},{"style":212},[486],{"type":36,"value":367},{"type":31,"tag":199,"props":488,"children":490},{"class":201,"line":489},14,[491,495],{"type":31,"tag":199,"props":492,"children":493},{"style":212},[494],{"type":36,"value":392},{"type":31,"tag":199,"props":496,"children":497},{"style":330},[498],{"type":36,"value":499},"'denied'\n",{"type":31,"tag":199,"props":501,"children":503},{"class":201,"line":502},15,[504],{"type":31,"tag":199,"props":505,"children":506},{"style":212},[507],{"type":36,"value":406},{"type":31,"tag":199,"props":509,"children":511},{"class":201,"line":510},16,[512],{"type":31,"tag":199,"props":513,"children":514},{"style":212},[515],{"type":36,"value":516},"}\n",{"type":31,"tag":32,"props":518,"children":519},{},[520],{"type":36,"value":521},"En effectuant ce mappage, trois points doivent être vérifiés :",{"type":31,"tag":523,"props":524,"children":525},"ol",{},[526,544,562],{"type":31,"tag":102,"props":527,"children":528},{},[529,534,536,542],{"type":31,"tag":106,"props":530,"children":531},{},[532],{"type":36,"value":533},"Vérification de la liste des vendors :",{"type":36,"value":535}," Si Google (vendor ID 755) figure dans la liste TCF des vendors et que l'utilisateur l'a approuvé, le signal peut être envoyé. Sinon, ",{"type":31,"tag":51,"props":537,"children":539},{"className":538},[],[540],{"type":36,"value":541},"ad_storage: 'denied'",{"type":36,"value":543}," doit rester.",{"type":31,"tag":102,"props":545,"children":546},{},[547,552,554,560],{"type":31,"tag":106,"props":548,"children":549},{},[550],{"type":36,"value":551},"Modèle d'intérêt légitime :",{"type":36,"value":553}," Les purposes 2-7-9-10 peuvent également fonctionner via l'",{"type":31,"tag":555,"props":556,"children":557},"em",{},[558],{"type":36,"value":559},"intérêt légitime",{"type":36,"value":561},". En France, ce modèle est plus courant qu'en Turquie.",{"type":31,"tag":102,"props":563,"children":564},{},[565,570,572,578],{"type":31,"tag":106,"props":566,"children":567},{},[568],{"type":36,"value":569},"Période de renouvellement du consentement :",{"type":36,"value":571}," Dans TCF 2.2, le consentement doit être renouvelé tous les 13 mois. Si votre CMP n'a pas de mécanisme de rafraîchissement automatique, le consentement doit basculer à ",{"type":31,"tag":51,"props":573,"children":575},{"className":574},[],[576],{"type":36,"value":577},"denied",{"type":36,"value":579}," après expiration.",{"type":31,"tag":86,"props":581,"children":583},{"id":582},"sélection-du-cmp-et-liste-de-contrôle-qa",[584],{"type":36,"value":585},"Sélection du CMP et liste de contrôle QA",{"type":31,"tag":32,"props":587,"children":588},{},[589],{"type":36,"value":590},"Lors du choix d'un CMP, le certificat de conformité TCF 2.2 est indispensable. OneTrust et Cookiebot sont certifiés, mais vous pouvez ajouter des purposes personnalisés dans la configuration et casser la norme IAB. Liste de contrôle QA :",{"type":31,"tag":592,"props":593,"children":594},"table",{},[595,614],{"type":31,"tag":596,"props":597,"children":598},"thead",{},[599],{"type":31,"tag":600,"props":601,"children":602},"tr",{},[603,609],{"type":31,"tag":604,"props":605,"children":606},"th",{},[607],{"type":36,"value":608},"Étape",{"type":31,"tag":604,"props":610,"children":611},{},[612],{"type":36,"value":613},"Point de contrôle",{"type":31,"tag":615,"props":616,"children":617},"tbody",{},[618,631,649,662,675,696],{"type":31,"tag":600,"props":619,"children":620},{},[621,626],{"type":31,"tag":622,"props":623,"children":624},"td",{},[625],{"type":36,"value":287},{"type":31,"tag":622,"props":627,"children":628},{},[629],{"type":36,"value":630},"Ordre de chargement du CMP : avant le conteneur GTM ? (pas de race condition ?)",{"type":31,"tag":600,"props":632,"children":633},{},[634,638],{"type":31,"tag":622,"props":635,"children":636},{},[637],{"type":36,"value":307},{"type":31,"tag":622,"props":639,"children":640},{},[641,647],{"type":31,"tag":51,"props":642,"children":644},{"className":643},[],[645],{"type":36,"value":646},"__tcfapi('getTCData', 2, callback)",{"type":36,"value":648}," répond-il ?",{"type":31,"tag":600,"props":650,"children":651},{},[652,657],{"type":31,"tag":622,"props":653,"children":654},{},[655],{"type":36,"value":656},"3",{"type":31,"tag":622,"props":658,"children":659},{},[660],{"type":36,"value":661},"Le mappage des purposes 1, 2, 7, 9, 10 est-il correct ?",{"type":31,"tag":600,"props":663,"children":664},{},[665,670],{"type":31,"tag":622,"props":666,"children":667},{},[668],{"type":36,"value":669},"4",{"type":31,"tag":622,"props":671,"children":672},{},[673],{"type":36,"value":674},"Le vendor 755 (Google) est-il approuvé ?",{"type":31,"tag":600,"props":676,"children":677},{},[678,683],{"type":31,"tag":622,"props":679,"children":680},{},[681],{"type":36,"value":682},"5",{"type":31,"tag":622,"props":684,"children":685},{},[686,688,694],{"type":36,"value":687},"Après l'update du consentement, l'événement ",{"type":31,"tag":51,"props":689,"children":691},{"className":690},[],[692],{"type":36,"value":693},"consent_update",{"type":36,"value":695}," arrive-t-il à la couche de données GTM ?",{"type":31,"tag":600,"props":697,"children":698},{},[699,704],{"type":31,"tag":622,"props":700,"children":701},{},[702],{"type":36,"value":703},"6",{"type":31,"tag":622,"props":705,"children":706},{},[707,709,715],{"type":36,"value":708},"Les événements GA4 envoient-ils un ping même quand ",{"type":31,"tag":51,"props":710,"children":712},{"className":711},[],[713],{"type":36,"value":714},"ad_storage: denied",{"type":36,"value":716}," ? (le ping de consentement refusé est obligatoire)",{"type":31,"tag":32,"props":718,"children":719},{},[720,722,728],{"type":36,"value":721},"L'étape 6 est critique : même quand le consentement est refusé, un ping ",{"type":31,"tag":51,"props":723,"children":725},{"className":724},[],[726],{"type":36,"value":727},"gtag('event', ...)",{"type":36,"value":729}," doit être envoyé — seul le cookie ne sera pas défini. Ces pings alimentent la modélisation de Google.",{"type":31,"tag":39,"props":731,"children":733},{"id":732},"architecture-hybride-avec-gtm-côté-serveur",[734],{"type":36,"value":735},"Architecture hybride avec GTM côté serveur",{"type":31,"tag":32,"props":737,"children":738},{},[739],{"type":36,"value":740},"Le moyen le plus efficace d'améliorer la qualité du signal dans Consent Mode v2 est de configurer une architecture « consentement hybride » sur GTM côté serveur (sGTM). Dans ce modèle :",{"type":31,"tag":523,"props":742,"children":743},{},[744,762],{"type":31,"tag":102,"props":745,"children":746},{},[747,752,754,760],{"type":31,"tag":106,"props":748,"children":749},{},[750],{"type":36,"value":751},"Côté client :",{"type":36,"value":753}," L'état de consentement de l'utilisateur est lu depuis le CMP et envoyé à Google via ",{"type":31,"tag":51,"props":755,"children":757},{"className":756},[],[758],{"type":36,"value":759},"gtag('consent', 'update', ...)",{"type":36,"value":761},".",{"type":31,"tag":102,"props":763,"children":764},{},[765,770],{"type":31,"tag":106,"props":766,"children":767},{},[768],{"type":36,"value":769},"Côté serveur :",{"type":36,"value":771}," Le conteneur sGTM vérifie l'en-tête de consentement dans les requêtes HTTP entrantes. Si le consentement est accordé, l'événement côté serveur (par ex. achèvement du paiement) reçu du backend est directement envoyé au point de terminaison Google Ads Conversion.",{"type":31,"tag":32,"props":773,"children":774},{},[775,777,783],{"type":36,"value":776},"L'avantage de cette approche est que même pour les utilisateurs qui rejettent ATT sur iOS ou utilisent un bloqueur de publicités, un signal de conversion côté serveur peut être envoyé. En effet, l'événement côté serveur est indépendant des cookies du navigateur de l'utilisateur — il est lié à l'ID de commande du backend. Google le fait correspondre via le ",{"type":31,"tag":51,"props":778,"children":780},{"className":779},[],[781],{"type":36,"value":782},"gclid",{"type":36,"value":784}," (Google Click ID).",{"type":31,"tag":32,"props":786,"children":787},{},[788],{"type":36,"value":789},"Scénario exemple : l'utilisateur utilise un bloqueur de publicités, GTM côté client n'a jamais été chargé. Mais au paiement, votre backend envoie une requête HTTP à sGTM :",{"type":31,"tag":189,"props":791,"children":795},{"className":792,"code":793,"language":794,"meta":15,"style":15},"language-json shiki shiki-themes github-dark","{\n  \"event_name\": \"purchase\",\n  \"client_id\": \"hashed_user_id\",\n  \"gclid\": \"abc123\",\n  \"value\": 250.00,\n  \"currency\": \"EUR\",\n  \"consent_ad_storage\": \"denied\"\n}\n","json",[796],{"type":31,"tag":51,"props":797,"children":798},{"__ignoreMap":15},[799,807,829,850,871,892,913,930],{"type":31,"tag":199,"props":800,"children":801},{"class":201,"line":202},[802],{"type":31,"tag":199,"props":803,"children":804},{"style":212},[805],{"type":36,"value":806},"{\n",{"type":31,"tag":199,"props":808,"children":809},{"class":201,"line":238},[810,815,820,825],{"type":31,"tag":199,"props":811,"children":812},{"style":284},[813],{"type":36,"value":814},"  \"event_name\"",{"type":31,"tag":199,"props":816,"children":817},{"style":212},[818],{"type":36,"value":819},": ",{"type":31,"tag":199,"props":821,"children":822},{"style":330},[823],{"type":36,"value":824},"\"purchase\"",{"type":31,"tag":199,"props":826,"children":827},{"style":212},[828],{"type":36,"value":367},{"type":31,"tag":199,"props":830,"children":831},{"class":201,"line":260},[832,837,841,846],{"type":31,"tag":199,"props":833,"children":834},{"style":284},[835],{"type":36,"value":836},"  \"client_id\"",{"type":31,"tag":199,"props":838,"children":839},{"style":212},[840],{"type":36,"value":819},{"type":31,"tag":199,"props":842,"children":843},{"style":330},[844],{"type":36,"value":845},"\"hashed_user_id\"",{"type":31,"tag":199,"props":847,"children":848},{"style":212},[849],{"type":36,"value":367},{"type":31,"tag":199,"props":851,"children":852},{"class":201,"line":270},[853,858,862,867],{"type":31,"tag":199,"props":854,"children":855},{"style":284},[856],{"type":36,"value":857},"  \"gclid\"",{"type":31,"tag":199,"props":859,"children":860},{"style":212},[861],{"type":36,"value":819},{"type":31,"tag":199,"props":863,"children":864},{"style":330},[865],{"type":36,"value":866},"\"abc123\"",{"type":31,"tag":199,"props":868,"children":869},{"style":212},[870],{"type":36,"value":367},{"type":31,"tag":199,"props":872,"children":873},{"class":201,"line":315},[874,879,883,888],{"type":31,"tag":199,"props":875,"children":876},{"style":284},[877],{"type":36,"value":878},"  \"value\"",{"type":31,"tag":199,"props":880,"children":881},{"style":212},[882],{"type":36,"value":819},{"type":31,"tag":199,"props":884,"children":885},{"style":284},[886],{"type":36,"value":887},"250.00",{"type":31,"tag":199,"props":889,"children":890},{"style":212},[891],{"type":36,"value":367},{"type":31,"tag":199,"props":893,"children":894},{"class":201,"line":351},[895,900,904,909],{"type":31,"tag":199,"props":896,"children":897},{"style":284},[898],{"type":36,"value":899},"  \"currency\"",{"type":31,"tag":199,"props":901,"children":902},{"style":212},[903],{"type":36,"value":819},{"type":31,"tag":199,"props":905,"children":906},{"style":330},[907],{"type":36,"value":908},"\"EUR\"",{"type":31,"tag":199,"props":910,"children":911},{"style":212},[912],{"type":36,"value":367},{"type":31,"tag":199,"props":914,"children":915},{"class":201,"line":370},[916,921,925],{"type":31,"tag":199,"props":917,"children":918},{"style":284},[919],{"type":36,"value":920},"  \"consent_ad_storage\"",{"type":31,"tag":199,"props":922,"children":923},{"style":212},[924],{"type":36,"value":819},{"type":31,"tag":199,"props":926,"children":927},{"style":330},[928],{"type":36,"value":929},"\"denied\"\n",{"type":31,"tag":199,"props":931,"children":932},{"class":201,"line":25},[933],{"type":31,"tag":199,"props":934,"children":935},{"style":212},[936],{"type":36,"value":516},{"type":31,"tag":32,"props":938,"children":939},{},[940,942,948],{"type":36,"value":941},"Quand sGTM transmet cet événement à Google Ads, puisque ",{"type":31,"tag":51,"props":943,"children":945},{"className":944},[],[946],{"type":36,"value":947},"consent_ad_storage: denied",{"type":36,"value":949},", il ne définit pas de cookie mais fournit une entrée pour la modélisation des conversions. Pour ce faire, vous avez besoin du tag Google Ads Conversion Linker sGTM + mappage Client ID côté serveur.",{"type":31,"tag":86,"props":951,"children":953},{"id":952},"étapes-dimplémentation-sgtm",[954],{"type":36,"value":955},"Étapes d'implémentation sGTM",{"type":31,"tag":523,"props":957,"children":958},{},[959,969,979,996],{"type":31,"tag":102,"props":960,"children":961},{},[962,967],{"type":31,"tag":106,"props":963,"children":964},{},[965],{"type":36,"value":966},"Configurez le conteneur sGTM :",{"type":36,"value":968}," Déployez-le sur Google Cloud Run ou Cloudflare Workers.",{"type":31,"tag":102,"props":970,"children":971},{},[972,977],{"type":31,"tag":106,"props":973,"children":974},{},[975],{"type":36,"value":976},"Envoyez les événements depuis le backend :",{"type":36,"value":978}," Envoyez l'événement d'achèvement du paiement avec Order ID + gclid + flag de consentement.",{"type":31,"tag":102,"props":980,"children":981},{},[982,987,989,995],{"type":31,"tag":106,"props":983,"children":984},{},[985],{"type":36,"value":986},"Configurez le tag Google Ads dans sGTM :",{"type":36,"value":988}," Saisissez l'ID de conversion + label de conversion. Dans l'onglet « User-Provided Data », effectuez le mappage ",{"type":31,"tag":51,"props":990,"children":992},{"className":991},[],[993],{"type":36,"value":994},"client_id",{"type":36,"value":761},{"type":31,"tag":102,"props":997,"children":998},{},[999,1004,1006,1012],{"type":31,"tag":106,"props":1000,"children":1001},{},[1002],{"type":36,"value":1003},"Ajoutez l'application du consentement :",{"type":36,"value":1005}," Avec un Template personnalisé sGTM, vérifiez le consentement — si ",{"type":31,"tag":51,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":36,"value":1011},"ad_user_data: denied",{"type":36,"value":1013},", le masquage IP + hachage user_id sont obligatoires.",{"type":31,"tag":32,"props":1015,"children":1016},{},[1017,1019,1024],{"type":36,"value":1018},"Le point critique dans cette architecture est que le ",{"type":31,"tag":51,"props":1020,"children":1022},{"className":1021},[],[1023],{"type":36,"value":994},{"type":36,"value":1025}," envoyé depuis le backend doit être un hash SHA-256 pour la conformité GDPR. Envoyer une adresse e-mail ou un ID utilisateur brut est considéré comme une violation de transfert de données.",{"type":31,"tag":39,"props":1027,"children":1029},{"id":1028},"signaler-et-optimiser-la-perte-de-modélisation",[1030],{"type":36,"value":1031},"Signaler et optimiser la perte de modélisation",{"type":31,"tag":32,"props":1033,"children":1034},{},[1035],{"type":36,"value":1036},"Dans l'interface Google Ads, allez à « Conversions > Measurement ». Une colonne « Modeled conversions » montre le nombre de conversions estimées pour les utilisateurs qui ont refusé le consentement. Voici comment la lire :",{"type":31,"tag":98,"props":1038,"children":1039},{},[1040,1050,1060],{"type":31,"tag":102,"props":1041,"children":1042},{},[1043,1048],{"type":31,"tag":106,"props":1044,"children":1045},{},[1046],{"type":36,"value":1047},"Observed conversions :",{"type":36,"value":1049}," Conversions réelles des utilisateurs avec consentement accordé.",{"type":31,"tag":102,"props":1051,"children":1052},{},[1053,1058],{"type":31,"tag":106,"props":1054,"children":1055},{},[1056],{"type":36,"value":1057},"Modeled conversions :",{"type":36,"value":1059}," Conversions estimées pour les utilisateurs avec consentement refusé.",{"type":31,"tag":102,"props":1061,"children":1062},{},[1063,1068],{"type":31,"tag":106,"props":1064,"children":1065},{},[1066],{"type":36,"value":1067},"Total conversions :",{"type":36,"value":1069}," Somme de Observed + Modeled.",{"type":31,"tag":32,"props":1071,"children":1072},{},[1073,1075,1081],{"type":36,"value":1074},"Pour calculer la perte de modélisation, utilisez cette formule simple : ",{"type":31,"tag":51,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":36,"value":1080},"(1 - (Modeled \u002F (Trafic Total × Taux Refus Consentement))) × 100",{"type":36,"value":1082},". Par exemple :",{"type":31,"tag":98,"props":1084,"children":1085},{},[1086,1091,1096,1101],{"type":31,"tag":102,"props":1087,"children":1088},{},[1089],{"type":36,"value":1090},"Trafic total : 10 000 clics",{"type":31,"tag":102,"props":1092,"children":1093},{},[1094],{"type":36,"value":1095},"Taux de refus de consentement : 50 % (5 000 personnes ont refusé)",{"type":31,"tag":102,"props":1097,"children":1098},{},[1099],{"type":36,"value":1100},"Conversions observées : 150",{"type":31,"tag":102,"props":1102,"children":1103},{},[1104],{"type":36,"value":1105},"Conversions modélisées : 60",{"type":31,"tag":32,"props":1107,"children":1108},{},[1109,1111,1117,1119,1125],{"type":36,"value":1110},"Conversions attendues (si le consentement était général) : ",{"type":31,"tag":51,"props":1112,"children":1114},{"className":1113},[],[1115],{"type":36,"value":1116},"150 × 2 = 300",{"type":36,"value":1118}," (puisque 50 % a refusé). En réalité, vous en avez 210 au total (150 + 60). Perte : ",{"type":31,"tag":51,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":36,"value":1124},"(1 - (210 \u002F 300)) × 100 = 30 %",{"type":36,"value":761},{"type":31,"tag":86,"props":1127,"children":1129},{"id":1128},"tactiques-pour-améliorer-la-modélisation",[1130],{"type":36,"value":1131},"Tactiques pour améliorer la modélisation",{"type":31,"tag":32,"props":1133,"children":1134},{},[1135],{"type":36,"value":1136},"Optimisez ces points pour améliorer les performances de modélisation :",{"type":31,"tag":523,"props":1138,"children":1139},{},[1140,1150,1160,1170],{"type":31,"tag":102,"props":1141,"children":1142},{},[1143,1148],{"type":31,"tag":106,"props":1144,"children":1145},{},[1146],{"type":36,"value":1147},"Augmentez le volume de trafic avec consentement accordé :",{"type":36,"value":1149}," Rendez le bouton « Accepter » plus visible dans la bannière du CMP. Mais ne recourez pas à du dark pattern — limitez-vous à l'amélioration du layout et ne trompez pas l'utilisateur.",{"type":31,"tag":102,"props":1151,"children":1152},{},[1153,1158],{"type":31,"tag":106,"props":1154,"children":1155},{},[1156],{"type":36,"value":1157},"Ajoutez des événements d'entonnoir :",{"type":36,"value":1159}," Ne suivez pas que purchase, mais aussi add-to-cart, begin_checkout et autres événements d'intention. Le modèle capture un signal d'intention plus large.",{"type":31,"tag":102,"props":1161,"children":1162},{},[1163,1168],{"type":31,"tag":106,"props":1164,"children":1165},{},[1166],{"type":36,"value":1167},"Importer des conversions hors ligne :",{"type":36,"value":1169}," Importez les vraies données de commandes depuis votre backend vers Google Ads. Cela contourne la modélisation mais il y a une limite d'API (2 000 conversions\u002Fjour\u002Fcompte).",{"type":31,"tag":102,"props":1171,"children":1172},{},[1173,1178],{"type":31,"tag":106,"props":1174,"children":1175},{},[1176],{"type":36,"value":1177},"Conversions améliorées :",{"type":36,"value":1179}," Envoyez les hashes d'email\u002Ftéléphone avec l'événement de conversion. Cela crée une correspondance first-party et améliore la précision de la modélisation.",{"type":31,"tag":32,"props":1181,"children":1182},{},[1183,1185,1191],{"type":36,"value":1184},"Note : les conversions améliorées se situent dans une zone grise en termes de GDPR. L'envoi d'un hash d'e-mail est légal si l'utilisateur a consenti, mais envoyer cette donnée (même hachée) si le consentement est refusé est une violation. C'est pourquoi vous devez déclencher les conversions améliorées uniquement quand ",{"type":31,"tag":51,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":36,"value":1190},"ad_user_data: granted",{"type":36,"value":761},{"type":31,"tag":39,"props":1193,"children":1195},{"id":1194},"les-compromis-du-monde-réel-conformité-vs-performance",[1196],{"type":36,"value":1197},"Les compromis du monde réel : conformité vs. performance",{"type":31,"tag":32,"props":1199,"children":1200},{},[1201],{"type":36,"value":1202},"Enfin, voyez les compromis de trois approches différentes en matière de stratégie de consentement :",{"type":31,"tag":592,"props":1204,"children":1205},{},[1206,1237],{"type":31,"tag":596,"props":1207,"children":1208},{},[1209],{"type":31,"tag":600,"props":1210,"children":1211},{},[1212,1217,1222,1227,1232],{"type":31,"tag":604,"props":1213,"children":1214},{},[1215],{"type":36,"value":1216},"Approche",{"type":31,"tag":604,"props":1218,"children":1219},{},[1220],{"type":36,"value":1221},"Taux refus consentement",{"type":31,"tag":604,"props":1223,"children":1224},{},[1225],{"type":36,"value":1226},"Récupération modélisation",{"type":31,"tag":604,"props":1228,"children":1229},{},[1230],{"type":36,"value":1231},"Impact ROAS",{"type":31,"tag":604,"props":1233,"children":1234},{},[1235],{"type":36,"value":1236},"Risque GDPR",{"type":31,"tag":615,"props":1238,"children":1239},{},[1240,1270,1301],{"type":31,"tag":600,"props":1241,"children":1242},{},[1243,1251,1256,1260,1265],{"type":31,"tag":622,"props":1244,"children":1245},{},[1246],{"type":31,"tag":106,"props":1247,"children":1248},{},[1249],{"type":36,"value":1250},"Stricte (pas de pré-coché)",{"type":31,"tag":622,"props":1252,"children":1253},{},[1254],{"type":36,"value":1255},"60-70 %",{"type":31,"tag":622,"props":1257,"children":1258},{},[1259],{"type":36,"value":1255},{"type":31,"tag":622,"props":1261,"children":1262},{},[1263],{"type":36,"value":1264},"-25 % ROAS",{"type":31,"tag":622,"props":1266,"children":1267},{},[1268],{"type":36,"value":1269},"Faible",{"type":31,"tag":600,"props":1271,"children":1272},{},[1273,1281,1286,1291,1296],{"type":31,"tag":622,"props":1274,"children":1275},{},[1276],{"type":31,"tag":106,"props":1277,"children":1278},{},[1279],{"type":36,"value":1280},"Équilibrée (intérêt légitime)",{"type":31,"tag":622,"props":1282,"children":1283},{},[1284],{"type":36,"value":1285},"40-50 %",{"type":31,"tag":622,"props":1287,"children":1288},{},[1289],{"type":36,"value":1290},"70-80 %",{"type":31,"tag":622,"props":1292,"children":1293},{},[1294],{"type":36,"value":1295},"-15 % ROAS",{"type":31,"tag":622,"props":1297,"children":1298},{},[1299],{"type":36,"value":1300},"Moyen (ambigu en France)",{"type":31,"tag":600,"props":1302,"children":1303},{},[1304,1312,1317,1322,1327],{"type":31,"tag":622,"props":1305,"children":1306},{},[1307],{"type":31,"tag":106,"props":1308,"children":1309},{},[1310],{"type":36,"value":1311},"Agressive (pré-coché)",{"type":31,"tag":622,"props":1313,"children":1314},{},[1315],{"type":36,"value":1316},"20-30 %",{"type":31,"tag":622,"props":1318,"children":1319},{},[1320],{"type":36,"value":1321},"80-90 %",{"type":31,"tag":622,"props":1323,"children":1324},{},[1325],{"type":36,"value":1326},"-5 % ROAS",{"type":31,"tag":622,"props":1328,"children":1329},{},[1330],{"type":36,"value":1331},"Élevé (violation GDPR)",{"type":31,"tag":32,"props":1333,"children":1334},{},[1335,1337,1342],{"type":36,"value":1336},"La recommandation de Roibase : ",{"type":31,"tag":106,"props":1338,"children":1339},{},[1340],{"type":36,"value":1341},"Approche équilibrée + sGTM.",{"type":36,"value":1343}," Utilisez l'intérêt légitime dans votre CMP et maintenez les",{"type":31,"tag":1345,"props":1346,"children":1347},"style",{},[1348],{"type":36,"value":1349},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":15,"searchDepth":260,"depth":260,"links":1351},[1352,1355,1358,1361,1364],{"id":41,"depth":238,"text":44,"children":1353},[1354],{"id":88,"depth":260,"text":91},{"id":150,"depth":238,"text":153,"children":1356},[1357],{"id":582,"depth":260,"text":585},{"id":732,"depth":238,"text":735,"children":1359},[1360],{"id":952,"depth":260,"text":955},{"id":1028,"depth":238,"text":1031,"children":1362},[1363],{"id":1128,"depth":260,"text":1131},{"id":1194,"depth":238,"text":1197},"markdown","content:fr:marketing:consent-mode-v2-tcf-2-2-modeling-loss.md","content","fr\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss.md","fr\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss","md",1785967498975]