Discreto : vous avez le droit de rester anonyme
J'ai souvent cherché une solution technique pour gérer au mieux le consentement des cookies tiers sur un site web et les problématiques liées au Règlement Général sur la Protection des Données (RGPD).
Pendant longtemps j'ai utilisé CookieCuttr. Mais je n'étais pas entièrement satisfait du résultat :
- Seuls les cookies tiers d'audience sont gérés (Google Analytics entre autres).
- Pas de gestion indépendante de chaque cookie tiers.
- Lorsque l'on refuse les cookies, il faut jouer avec le code pour enlever les cookies de Google Analytics.
- Pas de prise en charge de Google Analytics version 4.
Cela a parfaitement répondu à mes attentes pendant longtemps, mais ce n'est plus le cas.
A la recherche d'une nouvelle solution
J'avais trois critères importants pour la recherche d'une nouvelle solution :
- Qu'elle soit maintenable dans le temps et évolutive
Pas envie d'investir sur une solution couteuse en dette technique et où il serait difficile d'implanter de nouveaux services . - Qu'elle prenne en compte la gestion des cookies tiers de manière indépendante
Pouvoir donner le choix au visiteur d'autoriser / refuser chaque service. - Qu'elle soit facile à implanter sur un site Drupal
Que cette solution s'implante facilement dans l'écosystème Drupal et notamment dans ses interactions avec certains modules.
J'ai testé quelques solutions (dont certaines très utilisées) mais aucune ne remplissait les trois critères de manière satisfaisante.
Et puis un jour en allant sur le site de Greenpeace, je suis tombé sur leur outil de gestion de cookies : Discreto !
Discreto
Discreto est un outil libre et gratuit. Et ça, c'est un très bon point. Mais ce qui me séduit le plus, c'est son attachement au respect de la vie privée. Ce qui n'est pas le cas de tous les outils que j'ai pu utiliser auparavant.
Il présente beaucoup d'avantages techniques :
- Il peut se charger depuis un dépôt distant ou s'installer manuellement en local
- La fenêtre de consentement est entièrement personnalisable : position, apparition, utilisation d'une feuille de style personnalisée
- Il prend en compte beaucoup de services web : Google Analytics, Matomo, YouTube, Vimeo, Google map, Pixel Facebook, etc...
- Il est très simple d'implanter de nouveaux services
- Il est multilingue
- Son implantation au sein d'un CMS (WordPress, Drupal, etc...) se fait facilement
- Il est très simple à maintenir
Pour ma part, j'ai choisi d'installer Discreto manuellement en local. Cela me permet de maitriser les services utilisés et de rendre son intégration maintenable et évolutive.
Pour la première configuration, j'utilise le service en ligne. Ce dernier me permet, par exemple de configurer l'apparence de la fenêtre de consentement.
Toujours depuis l'interface en ligne, il est possible d'ajouter les différents services utilisés par le site web. Ceux-ci sont classés par catégories : Mesure d'audience, Réseaux sociaux, Lectuers audio / vidéo, etc...
Discreto propose de charger la configuration de 3 manières différentes :
- Dans le code HTML
- Dans un fichier JSON séparé
- Dans une balise GTM
Pour ma part, je choisis de générer un fichier de configuration au format JSON (config.json), ce qui me permet de le faire évoluer selon les services utilisés.
{
"gui": {
"pos": "banner",
"logo": false,
"block": true,
"hide": false,
"wait": "50px",
"css": "/path/to/discreto.css"
},
"cookie": {
"name": "discreto",
"days": "365",
"wild": false,
"path": false,
"track": false
},
"ids": {
"gtag": "G-XXXXXXXXXX"
},
"services": {
"analytics-anon": {
"types": ["audience"],
"anon": true,
"tag": "gtag",
"load": "G-XXXXXXXXXX"
},
"vimeo": {
"name": "Vimeo",
"types": [
"media"
],
"tag": "nil"
},
"youtube": {
"name": "YouTube",
"types": [
"media"
],
"tag": "nil"
}
}
}
Il ne reste plus qu'à charger Discreto dans votre page HTML.
<script>
window.discretoConf="/path/to/config.json";
(function(d,i,s,c,o){c=d.getElementsByTagName(i)[0];o=d.createElement(i);o.async=true;o.src=s;c.parentNode.insertBefore(o,c)})(document,'script','//repo.discre.to/latest/discreto.min.js')
</script>
Conclusion
Cela fait maintenant plus d'un an que j'utilise Discreto dans mes projets web et je dois avouer que je ne lui trouve aucun défaut.
Techniquement, l'utilisation de nouveaux services se fait très facilement et la création de services personnalisés est assez simple à mettre en place.
Humainement, ses valeurs autour du respect de la vie privée en font un outil totalement en adéquation avec mon éthique de développeur.
Je reviendrai plus longuement sur son intégration avec Drupal dans un article dédié.
Illustration par Discreto