Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
Ajoutez une seule balise script avec votre clé de licence sur chaque page, le plus haut possible dans le <head>. La balise définit l'état par défaut de Google Consent Mode, définit immédiatement unicReady et unicUpdate, puis charge la CMP complète en arrière-plan.
<script src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
Vous trouverez votre clé de licence dans la section Installation et Configuration.
cmp.js décrits ci-dessous. Ne les ajoutez pas à nouveau.wait_for_update de 3 secondes. Si vous définissez vos propres valeurs par défaut de Consent Mode, placez-les après la balise, sinon elles seront écrasées.unicReady et unicUpdate pour exécuter votre code une fois le consentement définitif. Consultez l'API Consent Ready.Vous avez déjà installé UniConsent avec la balise classique en deux parties ? Elle continue de fonctionner. Consultez la section Installation classique de la balise en bas de cette page.
Vous pouvez désactiver Show Privacy Settings Button et ajouter le lien suivant sur votre page.
<a href="#" onclick='__unicapi("openunic");return false;'
>Paramètres de Consentement</a
>
Vous pouvez cibler une DIV sur vos pages web avec un sélecteur CSS, UniConsent insère automatiquement le lien des paramètres de consentement dans la DIV en fonction de la localisation géographique et de vos fonctionnalités activées.
<div id="uniconsent-config"></div>
Vous pouvez placer la DIV de l'espace réservé suivante au bas de vos pages web, UniConsent insère automatiquement le lien des paramètres de consentement dans l'espace réservé en fonction de la localisation géographique et de vos fonctionnalités activées.
<div id="uniconsent-config"></div>
Vous pouvez trouver la clé de licence dans la section Installation et Configuration.
Évitez le chargement différé (lazyload) des balises de la CMP :
Vous devez ajouter data-nowprocket à tous les scripts :
<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
Vous devez également exclure le JavaScript en ligne de la combinaison :
cmp.uniconsent.com.Si vous avez besoin de la WP Consent API, ajoutez la balise suivante sur vos pages :
<script data-nowprocket data-cfasync="false" async src="http://cmp.uniconsent.com/v2/wp-consent-api.min.js"></script>
En savoir plus sur comment activer la WP Consent API.
Vous devez ajouter data-cfasync="false" aux scripts :
<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
Les instructions pour installer UniConsent via Google Tag Manager sont disponibles sur https://www.uniconsent.com/docs/tutorials/gtm-integration.
Ajoutez les balises suivantes en haut de vos pages, dans le <head> avant la balise UniConsent. Elles permettent au navigateur de résoudre le DNS et d'ouvrir la connexion vers cmp.uniconsent.com à l'avance, afin que le script de la CMP commence à se télécharger plus tôt et que la bannière de consentement s'affiche plus rapidement.
<link rel='dns-prefetch' href='//cmp.uniconsent.com' />
<link rel="preconnect" href="https://cmp.uniconsent.com" crossorigin>
Si vous servez la CMP depuis un domaine CMP de première partie, utilisez votre domaine personnalisé à la place de cmp.uniconsent.com.
La balise unique est volontairement chargée sans async. Elle s'exécute avant tout le reste de la page, de sorte que l'état par défaut de Google Consent Mode, les ébauches IAB TCF, USP et GPP, ainsi que les fonctions unicReady et unicUpdate sont en place avant l'exécution de vos balises Google, de vos balises publicitaires ou de votre propre code. La balise elle-même est légère et mise en cache, et la CMP complète est chargée en arrière-plan : l'impact sur le chargement de la page est donc minime. Combinée aux balises de préconnexion ci-dessus, elle offre l'affichage le plus rapide de la bannière, sans risque que des balises se déclenchent avant la définition des valeurs de consentement par défaut.
Vous pouvez ajouter async à la balise. Gardez les points suivants à l'esprit :
unicReady et unicUpdate peuvent ne pas encore exister. Ajoutez la garde de file d'attente en deux lignes ci-dessous pour que les appels anticipés soient rejoués une fois la balise chargée.unicReady.async, __tcfapi peut ne pas encore exister lorsque vos balises publicitaires ou Prebid l'appellent. Ajoutez la balise d'ébauche avant vos balises publicitaires, ou chargez-les depuis un callback unicReady.<script async src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
<script>
window.unicReady = window.unicReady || function (cb) { (window.unicReady.q = window.unicReady.q || []).push(cb); };
window.unicUpdate = window.unicUpdate || function (cb) { (window.unicUpdate.q = window.unicUpdate.q || []).push(cb); };
unicReady(function (status) {
// le consentement est définitif : chargez vos balises ici
});
unicUpdate(function (status) {
// chaque changement de consentement
});
</script>
Vous pouvez aussi écouter les événements DOM unic:ready et unic:update sur window, enregistrés avant la balise. Consultez l'API Consent Ready pour l'objet status et tous les détails.
Si vous souhaitez intégrer vos balises JavaScript, veuillez consulter la section Intégration des Balises JavaScript Tierces.
Vous pouvez surveiller la console développeur pour repérer les avertissements, ou utiliser le UniConsent Consent Validator pour vérifier que les données Consent Mode, IAB TCF et IAB GPP sont disponibles et correctement transmises sur vos pages.
Vérifiez régulièrement le statut d'audit de l'implémentation dans votre tableau de bord.
Cette section concerne les sites web ayant installé UniConsent avant la disponibilité de la balise unique. La balise classique en deux parties continue de fonctionner et aucune migration n'est nécessaire. Pour changer, supprimez toutes les balises ci-dessous et ajoutez la balise unique indiquée en haut de cette page.
Chacun de vos sites web dispose d'une balise JavaScript unique à installer sur chaque page.
Vous pouvez trouver la balise UniConsent dans la section Installation et Configuration.
Il y a deux parties aux balises. La première partie est une ébauche qui doit être intégrée en haut de votre page. La deuxième partie peut être chargée de manière async. Il y a un impact minimal sur les performances de votre site.
Vous pouvez également choisir de charger le code d'ébauche avec la balise JavaScript suivante :
<script src="https://cmp.uniconsent.com/v2/stub.min.js"></script>
Vous pouvez également remplacer le code suivant par la balise d'ébauche ci-dessus :
<script type="text/javascript">
!function(){var e,t,a;e="__tcfapiLocator",t=[],(a=window.frames[e])||(function t(){var n=window.document,i=!!a;if(!i)if(n.body){var o=n.createElement("iframe");o.style.cssText="display:none",o.name=e,n.body.appendChild(o)}else setTimeout(t,50);return!i}(),window.__tcfapi=function(){for(var e,a=[],n=0;n<arguments.length;n++)a[n]=arguments[n];if(!a.length)return t;if("setGdprApplies"===a[0])a.length>3&&2===parseInt(a[1],10)&&"boolean"==typeof a[3]&&(e=a[3],"function"==typeof a[2]&&a[2]("set",!0));else if("ping"===a[0]){var i={gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"};"function"==typeof a[2]&&a[2](i,!0)}else t.push(a)},window.addEventListener("message",(function(e){var t="string"==typeof e.data,a={};try{a=t?JSON.parse(e.data):e.data}catch(e){}var n=a.__tcfapiCall;if(n)try{window.__tcfapi(n.command,n.version,(function(a,i){var o={__tcfapiReturn:{returnValue:a,success:i,callId:n.callId}};t&&(o=JSON.stringify(o)),e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(o,"*")}),n.parameter)}catch(e){}}),!1))}();
!function(){var e,a,t;e="__uspapiLocator",a=[],(t=window.frames[e])||(function a(){var n=window.document,s=!!t;if(!t)if(n.body){var i=n.createElement("iframe");i.style.cssText="display:none",i.name=e,n.body.appendChild(i)}else setTimeout(a,50);return!s}(),window.__uspapi=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!e.length)return a;"ping"===e[0]?"function"==typeof e[2]&&e[2]({cmpLoaded:!1,cmpStatus:"stub"},!0):a.push(e)},window.addEventListener("message",(function(e){var a="string"==typeof e.data,t={};try{t=a?JSON.parse(e.data):e.data}catch(e){}var n=t&&t.__uspapiCall;if(n)try{window.__uspapi(n.command,n.version,(function(t,s){var i={__uspapiReturn:{returnValue:t,success:s,callId:n.callId}};a&&(i=JSON.stringify(i)),e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(i,"*")}),n.parameter)}catch(e){}}),!1))}();
window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,50,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p&&p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct","13:usfl","14:usmt","15:usor","16:ustx","17:usde","18:usia","19:usne","20:usnh","21:usnj","22:ustn","23:usmn","24:usmd","25:usin","26:usky","27:usri"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct","13:usfl","14:usmt","15:usor","16:ustx","17:usde","18:usia","19:usne","20:usnh","21:usnj","22:ustn","23:usmn","24:usmd","25:usin","26:usky","27:usri"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct","13:usfl","14:usmt","15:usor","16:ustx","17:usde","18:usia","19:usne","20:usnh","21:usnj","22:ustn","23:usmn","24:usmd","25:usin","26:usky","27:usri"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;try{window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}catch(e){}}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
</script>
Le code d'ébauche ou la balise ci-dessus prend en charge les API suivantes : IAB TCF API, IAB GPP API, IAB USP API.
Si vous n'utilisez pas Google Tag Manager mais souhaitez activer Consent Mode V2, ajoutez ceci en haut de vos pages :
<script src="https://cmp.uniconsent.com/v2/stubgcm.min.js"></script>
ou ajoutez le code suivant en haut de vos pages :
<script>
window.gtag||(window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}),window.gtag("set","developer_id.dZTcxZD",!0),window.gtag("consent","default",{ad_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",security_storage:"granted",wait_for_update:3e3}),window.gtag("set","ads_data_redaction",!0),window.gtag("set","url_passthrough",!1);
</script>
En savoir plus sur la configuration de Google Consent Mode sur https://www.uniconsent.com/docs/tutorials/google-consent-mode
Ajoutez data-nowprocket et data-cfasync="false" aux deux scripts. Les réglages d'exclusion WP Rocket ci-dessus s'appliquent également.
<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/stub.min.js"></script>
<script data-nowprocket data-cfasync="false" async src='https://cmp.uniconsent.com/v2/YOUR_ID/cmp.js'></script>
Google Consent Mode activé, mais le code d'ébauche de l'état par défaut est absent
Problème : Vous pouvez voir ce message d'erreur dans le Validator ou la console développeur :
Error: Consent Mode Default Status is not added.
Solution : Ajoutez le code d'ébauche de l'état par défaut en haut de vos pages. Suivez les instructions ici : Installation de la balise d'état par défaut du Consent Mode.
Google Consent Mode activé, mais le code d'ébauche de l'état par défaut est ajouté après les balises Google
Problème : Si ce code est ajouté après vos balises Google, vous pouvez voir ce message d'erreur dans le Validator ou la console développeur :
Error: Your Google tags are loaded before Consent Mode Default Status and CMP.
Solution : Ajoutez le code d'ébauche de l'état par défaut tout en haut de vos pages, avant toute balise Google. Suivez le guide ici : Installation de la balise d'état par défaut du Consent Mode.
Google Consent Mode activé via Google Tag Manager, mais toutes les balises Google ne sont pas gérées dans Google Tag Manager
Problème : Lorsque certaines balises Google ne sont pas gérées dans Google Tag Manager, vous pouvez voir des erreurs semblables à celles décrites ci-dessus.
Solution : Ajoutez le code d'ébauche de l'état par défaut en haut de vos pages, ou gérez toutes vos balises Google dans Google Tag Manager. Consultez le guide : Installation de la balise d'état par défaut du Consent Mode.
Le code d'ébauche IAB TCF est absent
Problème : Le code d'ébauche IAB TCF n'est pas inclus, ce qui peut entraîner des erreurs.
Solution : Ajoutez le code d'ébauche IAB TCF en haut de vos pages. Suivez les instructions ici : Installation des codes d'ébauche.
Le code d'ébauche IAB GPP est absent
Problème : Le code d'ébauche IAB GPP manque dans votre installation.
Solution : Ajoutez le code d'ébauche IAB GPP en haut de vos pages. Le guide correspondant se trouve ici : Installation des codes d'ébauche.
Le code d'ébauche de l'API USP est absent
Problème : Le code d'ébauche IAB USP n'est pas présent.
Solution : Ajoutez le code d'ébauche IAB USP en haut de vos pages. Les instructions détaillées se trouvent ici : Installation des codes d'ébauche.
Lois sur la confidentialité, consentement et conformité, quelques e-mails par mois.