Bloquer YouTube avant consentement
YouTube se charge souvent avant que vos visiteurs aient pu répondre au bandeau. Voici pourquoi c'est un écart, et comment le corriger — avec le code.
Pourquoi c'est un écart
Lecteur vidéo intégré. Dès l'affichage de la page, et même sans lancer la vidéo, le lecteur dépose ses propres traceurs.
Le domaine youtube-nocookie.com réduit le dépôt mais ne l'élimine pas complètement et n'exonère pas du consentement. La solution robuste est une facade : une image cliquable qui ne charge le lecteur qu'à la demande explicite du visiteur.
Le point de droit est simple : l'article 82 de la loi n° 78-17 subordonne le dépôt ou la lecture d'informations dans le terminal de votre visiteur à son consentement préalable, sauf si l'opération est strictement nécessaire au service qu'il a demandé. Un service chargé dès l'ouverture de la page, avant toute action, ne remplit pas cette condition.
Comment corriger
- 01Remplacer l'intégration directe par une facade : une image d'aperçu et un bouton.
- 02Ne charger le contenu du fournisseur qu'après un clic explicite du visiteur.
- 03Informer le visiteur, au moment du clic, que l'affichage entraînera le dépôt de traceurs.
- 04Déclarer un état de consentement par défaut « denied » AVANT tout script Google.
- 05Émettre une mise à jour du consentement au moment où le visiteur valide son choix.
- 06Vérifier que les signaux ad_user_data et ad_personalization sont bien transmis.
- 07Neutraliser la balise tant que le consentement publicitaire n'est pas donné.
- 08Vérifier qu'aucune requête ne part vers ce domaine au premier chargement de la page.
- 09Contrôler qu'après un refus, plus aucune requête n'est émise — c'est le manquement le plus lourd.
- 10Documenter le transfert hors Espace économique européen : garanties applicables et analyse d'impact.
Le code
Facade de clic pour YouTube
<!-- Rien n'est chargé tant que le visiteur n'a pas cliqué. -->
<div class="facade" data-src="URL_DE_L_IFRAME">
<img src="/img/apercu.jpg" alt="Aperçu du contenu" loading="lazy">
<button type="button">Afficher le contenu</button>
<p>En affichant ce contenu, vous acceptez le dépôt de traceurs par le
fournisseur. <a href="/politique-cookies">En savoir plus</a>.</p>
</div>
<script>
document.querySelectorAll('.facade button').forEach(function (bouton) {
bouton.addEventListener('click', function () {
var bloc = bouton.closest('.facade');
var cadre = document.createElement('iframe');
cadre.src = bloc.dataset.src;
cadre.loading = 'lazy';
cadre.setAttribute('allowfullscreen', '');
bloc.replaceWith(cadre);
});
});
</script>L'image d'aperçu doit être hébergée sur votre domaine : une vignette chargée depuis le fournisseur transmet déjà l'adresse IP du visiteur.
État de consentement par défaut, avant tout script Google
<!-- À placer AVANT le chargement de gtag.js ou du conteneur GTM -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
functionality_storage: 'granted',
security_storage: 'granted',
wait_for_update: 2000
});
</script>Les quatre premiers signaux doivent être « denied ». Sans cet appel préalable, les outils Google partent du principe que le consentement est acquis.
Mise à jour au moment du choix de l'utilisateur
// À appeler quand le visiteur valide son choix dans votre bandeau.
function appliquerChoix(accepte) {
gtag('consent', 'update', {
ad_storage: accepte ? 'granted' : 'denied',
ad_user_data: accepte ? 'granted' : 'denied',
ad_personalization: accepte ? 'granted' : 'denied',
analytics_storage: accepte ? 'granted' : 'denied'
});
}Neutraliser le script tant que le consentement n'est pas donné
<!-- Le navigateur n'exécute pas un script de type "text/plain". -->
<script type="text/plain" data-categorie="marketing"
src="https://youtube.com/…"></script>
<script>
// Appelé uniquement après acceptation de la catégorie concernée.
function activerCategorie(categorie) {
document
.querySelectorAll('script[type="text/plain"][data-categorie="' + categorie + '"]')
.forEach(function (balise) {
var actif = document.createElement('script');
for (var i = 0; i < balise.attributes.length; i++) {
var a = balise.attributes[i];
if (a.name !== 'type' && a.name !== 'data-categorie') {
actif.setAttribute(a.name, a.value);
}
}
actif.text = balise.text;
balise.parentNode.replaceChild(actif, balise);
});
}
</script>Technique universelle, indépendante de toute plateforme de consentement : le script existe dans la page mais n'est jamais exécuté avant l'accord.
Alternatives européennes
PeerTube · Dailymotion · facade de clic avant chargement
Remplacer le service supprime la question du transfert. Ce n'est pas toujours possible ni souhaitable — mais quand ça l'est, c'est la correction la plus durable.
Les cookies concernés
| Nom | Finalité | Durée |
|---|---|---|
| CONSENT | Enregistre l'état de consentement pour les services Google. | environ 2 ans |
| VISITOR_INFO1_LIVE | Identifiant de visiteur YouTube | environ 6 mois |
| YSC | Identifiant de session de lecture | le temps de la session |
Qui reçoit les données
Google Ireland Limited
Société mère ultime : Alphabet Inc. (US)
États-Unis — sous réserve d'une certification DPF valide
Fiche complèteRègles du référentiel concernées
- KZC-DEPOT-008Iframe tierce déposant ses propres traceurs avant consentement
- KZC-CMV2-001Aucun état de consentement par défaut avant le chargement de gtag
- KZC-CMV2-002ad_storage ou analytics_storage en « granted » par défaut
- KZC-CMV2-003ad_user_data et ad_personalization non gérés
- KZC-DEPOT-004Requête sortante vers un domaine publicitaire avant consentement
- KZC-DEPOT-005Script tiers de tracking chargé avant consentement
- KZC-REFUS-001Traceur non exempté présent après un refus explicite
- KZC-TRANSFER-001Requête avant consentement vers un destinataire hors EEE
YouTube se charge-t-il avant consentement chez vous ?
L'audit vous répond en quelques secondes, avec la preuve : l'URL exacte appelée, dans quel ordre, et par quel élément de votre page.
Vérifier gratuitementCe guide est une information technique. Il ne constitue ni une consultation juridique ni une garantie de conformité : la configuration réelle de votre site et l'usage effectif du service déterminent l'analyse.