Blocage de scripts
Agreely propose trois couches de blocage complémentaires. Chacune s'applique à un cas d'usage différent.
1. Blocage déclaratif : type="text/plain"
Convertissez vos balises de script tierces en remplaçant type="text/javascript"
(ou en l'absence du type) par type="text/plain" et en ajoutant l'attribut
data-agreely-category :
<!-- Avant (script exécuté immédiatement) -->
<script src="https://www.google-analytics.com/analytics.js"></script>
<!-- Après (script bloqué jusqu'à l'accord de la catégorie "analytique") -->
<script type="text/plain"
data-agreely-category="analytics"
src="https://www.google-analytics.com/analytics.js"></script>
Quand le visiteur accorde la catégorie correspondante, la bannière recrée le
script sans type="text/plain" (avec ses autres attributs et son contenu), ce
qui déclenche son exécution. Elle préserve les nonces existants lors du
déblocage.
Valeurs de catégorie
Valeur data-agreely-category |
Catégorie Agreely |
|---|---|
analytics |
Analytique |
marketing |
Marketing |
functional |
Fonctionnel |
Les scripts strictly_necessary n'ont pas besoin de cet attribut : ils
s'exécutent normalement sans blocage.
Exemples de balises fréquentes
<!-- Google Analytics (GA4 via gtag) -->
<script type="text/plain"
data-agreely-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<!-- Meta Pixel -->
<script type="text/plain"
data-agreely-category="marketing">
!function(f,b,e,v,n,t,s) { /* code Meta Pixel */ }(window, ...);
</script>
<!-- Hotjar -->
<script type="text/plain"
data-agreely-category="analytics">
(function(h,o,t,j,a,r){ /* code Hotjar */ })(window, ...);
</script>
<!-- Intercom (fonctionnel) -->
<script type="text/plain"
data-agreely-category="functional">
window.intercomSettings = { app_id: "XXXXXXXX" };
</script>
Conseil : la page d'installation dans le tableau de bord Agreely génère automatiquement les réécritures de vos balises à partir du balayage de votre site (les témoins détectés sont catégorisés et les balises correspondantes sont proposées en remplacement).
2. Espaces réservés d'iframes
Pour les iframes tiers (vidéos YouTube, widgets de carte, etc.), utilisez
data-agreely-src à la place de src. Tant que le visiteur n'a pas accordé la
catégorie, la bannière masque l'iframe et affiche à sa place un espace réservé,
dans la langue de la bannière, avec une invite d'acceptation pour cette
catégorie :
<!-- Avant -->
<iframe src="https://www.youtube.com/embed/XXXXXXX"
width="560" height="315"></iframe>
<!-- Après -->
<iframe data-agreely-src="https://www.youtube.com/embed/XXXXXXX"
data-agreely-category="marketing"
width="560" height="315"></iframe>
L'espace réservé est un bloc inséré juste avant l'iframe masquée ; il porte la
classe agreely-embed-ph, que vous pouvez styler (dimensions comprises) dans
votre propre CSS. Il nomme la catégorie et offre un bouton pour l'accepter.
Accepter depuis cet espace enregistre une décision de consentement pour cette
catégorie, comme dans la bannière, puis l'iframe se charge normalement.
3. Garde d'injection dynamique
Pour les scripts injectés par programmation (via appendChild, insertBefore,
etc.) depuis des hôtes de suivi connus, la bannière intercepte l'insertion dans
le DOM et la neutralise jusqu'à l'accord de la catégorie. Cette garde est
installée de façon synchrone dans le chargeur, avant même que la
configuration soit récupérée, afin de neutraliser les injections pendant le
temps de chargement.
La garde est applicable à une liste de base intégrée incluant les hôtes fréquents (google-analytics.com, googletagmanager.com, connect.facebook.net, doubleclick.net, hotjar.com, clarity.ms, etc.) et la complète avec les hôtes détectés par le balayage de votre site.
Limite honnête. La garde d'injection intercepte les méthodes DOM standard.
document.writeest hors de portée ; Consent Mode v2 en refus par défaut est le filet de sécurité pour ce cas.