Passer au contenu principal

Gérer les services qui affichent du contenu sur votre site (YouTube, Maps, chat...)

Affichez un message Ă  la place d’un contenu bloquĂ© en l’absence consentement avec le consentement contextuel.

Écrit par Manon Manso
Mis à jour il y a plus de 6 mois

⚠ 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>

// 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

<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.

  1. Récupérez le code de votre iframe.

  2. Remplacez l'attribut src par data-src.

  3. Ajoutez l’attribut data-requires-vendor-consent avec 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 :

  1. Ouvre automatiquement le bandeau Axeptio.

  2. Met en surbrillance le cookie du service concernĂ© pour que l’utilisateur puisse l’accepter directement.

  3. 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-consent avec le nom exact du service (mĂȘme nom que dans data-requires-vendor-consent sur 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.

Exemple d'implémentation du consentement contextuel

consentement_contextuel_banque.gif
Avez-vous trouvé la réponse à votre question ?