â ïž Pour implĂ©menter cette fonctionnalitĂ©, il est nĂ©cessaire de mettre les mains dans le code. Si le Javascript n'est pas votre ami, envoyez cette page Ă votre dĂ©veloppeur prĂ©fĂ©rĂ© !
Certains services se retrouvent malheureusement masqués si le visiteur n'accepte pas les cookies :
votre chat en ligne (Zendesk, iAdvize, Gorgias, Crisp...)
les vidéos hébergées en externe (YouTube, Dailymotion, Vimeo...)
les posts de réseaux sociaux (X/Twitter, Instagram, TikTok, Facebook...)
les cartes interactives (Google Maps, OpenStreetMap...)
les widgets d'avis (Trustpilot, Avis Vérifiés/Skeepers...)
les formulaires de contact
ou encore les pixels de suivi
Heureusement, Axeptio vous permet d'Ă©viter cela grĂące au consentement contextuel. Vous allez pouvoir prĂ©senter vos cookies diffĂ©remment, en valorisant clairement l'intĂ©rĂȘt pour l'utilisateur.
â Cette fonctionnalitĂ© conditionne le dĂ©clenchement d'une iframe (YouTube, Google Maps...) lors de l'acceptation des cookies par l'utilisateur.
Principe de fonctionnement
Tant que le visiteur nâa pas acceptĂ© les cookies dâun service, le contenu correspondant (iframe, widgetâŠ) reste bloquĂ©.
à la place, vous affichez un message clair ou un bouton de remplacement permettant de donner son accord pour ce service précis.
Lorsquâil clique sur ce message ou bouton, le bandeau Axeptio sâouvre automatiquement, avec le cookie du service concernĂ© mis en surbrillance pour quâil puisse lâaccepter directement.
DÚs que le consentement est donné, le contenu se charge instantanément.
Ătape 1 : Ajouter le script avec la logique globale
Nous avons Ă©crit un script se comportant de la façon dĂ©crite ci-dessus : il affiche un message ou un bouton de remplacement tant que le visiteur nâa pas acceptĂ© le service, et charge automatiquement le contenu une fois le consentement donnĂ©.
Vous pouvez utiliser ce script tel quel, ou bien le personnaliser en fonction de vos besoin.
đ IntĂ©grez ce script dans le <head> de votre site ou bien dans une balise de votre conteneur Google Tag Manager.
Dans le <head>
Dans le <head>
// On enregistre une fonction Ă exĂ©cuter une fois que le SDK Axeptio est prĂȘt
(_axcb = window._axcb || []).push(function(sdk) {
// Quand l'utilisateur a terminé de faire ses choix de cookies
sdk.on('cookies:complete', function(choices){
// 1. Masquer les messages/boutons si le service a été accepté
document
.querySelectorAll('[data-hide-on-vendor-consent]')
.forEach(el => {
const vendor = el.getAttribute('data-hide-on-vendor-consent');
el.style.display = choices[vendor] ? 'none' : 'inherit';
});
// 2. Charger les contenus (iframes) seulement si le service est accepté
document
.querySelectorAll('[data-requires-vendor-consent]')
.forEach(el => {
const vendor = el.getAttribute('data-requires-vendor-consent');
if (choices[vendor]) {
// On remplace data-src par src pour déclencher le chargement
el.setAttribute('src', el.getAttribute('data-src'));
}
});
});
});
Dans GTM
Dans GTM
<script>
"use strict";
// On enregistre une fonction Ă exĂ©cuter une fois que le SDK Axeptio est prĂȘt
(_axcb = window._axcb || []).push(function (sdk) {
// Quand l'utilisateur a terminé de faire ses choix de cookies
sdk.on('cookies:complete', function (choices) {
// 1. Masquer les messages/boutons si le service a été accepté
document.querySelectorAll('[data-hide-on-vendor-consent]').forEach(function (el) {
var vendor = el.getAttribute('data-hide-on-vendor-consent');
el.style.display = choices[vendor] ? 'none' : 'inherit';
});
// 2. Charger les contenus (iframes) seulement si le service est accepté
document.querySelectorAll('[data-requires-vendor-consent]').forEach(function (el) {
var vendor = el.getAttribute('data-requires-vendor-consent');
if (choices[vendor]) {
// On remplace data-src par src pour déclencher le chargement
el.setAttribute('src', el.getAttribute('data-src'));
}
});
});
});
</script>
Ătape 2 : Adapter le code dâintĂ©gration iframe pour pour diffĂ©rer le chargement jusquâau consentement
Pour diffĂ©rer le chargement du contenu jusquâau moment oĂč lâutilisateur donne son consentement, nous allons modifier lĂ©gĂšrement le comportement standard de lâiframe.
Au lieu de placer lâURL directement dans lâattribut src (qui dĂ©clenche automatiquement le chargement, ce qui n'est pas souhaitable dans notre cas), on la stocke dans un attribut personnalisĂ© data-src.
On ajoute Ă©galement un attribut spĂ©cifique data-requires-vendor-consent indiquant que ce contenu nĂ©cessite le consentement dâun service donnĂ©.
Le script de l'Ă©tape 1 se charge ensuite de surveiller le consentement de lâutilisateur et, uniquement lorsque ce dernier accepte, il remet lâURL dans lâattribut src pour lancer le chargement effectif du contenu.
Récupérez le code de votre iframe.
Remplacez l'attribut
srcpardata-src.Ajoutez lâattribut
data-requires-vendor-consentavec pour valeur le nom technique de votre service.
Exemple pour YouTube
Code dâintĂ©gration standard YouTube (copiĂ© via Partager > IntĂ©grer) :
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/VIDEO_ID"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen>
</iframe>
Version modifiée pour le consentement contextuel :
<iframe
width="560"
height="315"
data-src="https://www.youtube.com/embed/VIDEO_ID" <!-- src remplacé par data-src -->
data-requires-vendor-consent="youtube" <!-- NOUVEL attribut -->
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen>
</iframe>
Ătape 3 : Ajouter un message ou bouton de remplacement
Si vous ne l'avez pas déjà fait, ajoutez maintenant votre service dans votre bandeau cookies.
Afin de débloquer cette iframe, il va falloir proposer à l'utilisateur une action permettant de valider le cookie en question, pour pouvoir "débloquer" l'affichage de notre iframe.
Voici une proposition de bouton trĂšs basique :
<!-- Conteneur affiché tant que le consentement pour le service n'est pas donné -->
<div data-hide-on-vendor-consent="NomDuService">
<p>Pour visionner ce contenu, vous devez accepter le cookie NomDuService.</p>
<!-- Bouton personnalisable -->
<button onclick="window.axeptioSDK.requestConsent('NomDuService')">
J'accepte le đȘ NomDuService
</button>
</div>
Exemple pour YouTube :
<div data-hide-on-vendor-consent="youtube">
<p>Pour visionner cette vidéo, vous devez accepter le cookie YouTube.</p>
<button onclick="window.axeptioSDK.requestConsent('youtube')">
J'accepte le đȘ YouTube
</button>
</div>
Ce que fait ce bouton :
Ouvre automatiquement le bandeau Axeptio.
Met en surbrillance le cookie du service concernĂ© pour que lâutilisateur puisse lâaccepter directement.
DĂšs que câest fait, le script principal charge lâiframe et masque ce bloc.
â ïž Points importants pour que le script de l'Ă©tape 1 fonctionne correctement :
Le conteneur doit avoir lâattribut
data-hide-on-vendor-consentavec le nom exact du service (mĂȘme nom que dansdata-requires-vendor-consentsur lâiframe).Le bouton (ou lien cliquable) doit appeler
window.axeptioSDK.requestConsent('NomDuService')pour déclencher le bandeau Axeptio.
đĄ Vous pouvez personnaliser le style, le texte et mĂȘme afficher un aperçu floutĂ© du contenu pour inciter au clic.
