Possiamo inserire gli script che generano cookie di terze parti con JavaScript dopo aver ricevuto il consenso da parte dell'utente.
La nostra soluzione consiste nell'inserire dinamicamente il codice JavaScript in un elemento script in head a seguito dell'accettazione da parte dell'utente dei cookie di terze parti.
<head>
<script id="ga"></script>
</head>
'use strict';
// https://developers.google.com/analytics/devguides/collection/analyticsjs
const insertGA = target => {
if(target === null || !target) {
return false;
}
const gaScript = `(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');`;
target.textContent = gaScript;
};
Esempio d'uso:
document.querySelector('#accept-cookies').addEventListener('click', e => {
e.preventDefault();
insertGA(document.querySelector('#ga'));
}, false);
Usando la proprietà textContent forziamo il browser a reintepretare il frammento DOM interessato.