Blog

Howto add Google Analytics Opt-out Notification to your website

 

Add Google Analytics optOUT to your SPIP website

your SPIP template should include one file called "stats_GA.html"

Then in your article or/and section template

add between <head></head>

 

<INCLURE{fond=inclus/stats_GA}>

then copy/paste this code into stats_GA.html and adjust it

[(#REM) code analytics ]
<script type="text/javascript">

gaProperty = 'UA-4154820-XXXX'
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf('hasConsent=false') > -1) {
window[disableStr] = true;
}

function getCookieExpireDate() {
var cookieTimeout = 34214400000;
var date = new Date();
date.setTime(date.getTime()+cookieTimeout);
var expires = "; expires="+date.toGMTString();
return expires;
}
function hideCookie(){
document.getElementById('cookie-banner').style.display="none";
}
function askConsent(){
var bodytag = document.getElementsByTagName('body')[0];
var div = document.createElement('div');
div.setAttribute('id','cookie-banner');
div.setAttribute('width','70%');
// Le code HTML de la demande de consentement
// Vous pouvez modifier le contenu ainsi que le style
div.innerHTML = '<div id="cookies_ngo" style="z-index:9999; position:absolute; top:20px; left:550px; background-color:#F5A9A9; font-size:10px; width:165px; padding:10px; padding-right:25px; color:#616161; -moz-box-shadow: 1px 1px 5px 0px #c0c0c0; -webkit-box-shadow: 1px 1px 5px 0px #c0c0c0; -o-box-shadow: 1px 1px 5px 0px #c0c0c0; box-shadow: 1px 1px 5px 0px #c0c0c0; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px;"><div style="position:absolute; color:#333333; margin-left:170px; cursor:pointer; font-size:12px; font-weight:bold;" onclick="javascript:hideCookie()">X</div>Ce site utilise Google Analytics.\
En continuant à naviguer, vous nous autorisez à déposer des cookies à des fins de \
mesure d\'audience. Pour s\'opposer à ce dépôt vous pouvez cliquer \
<a href="javascript:gaOptout()" style="text-decoration:underline; color:#616161; font-size:10px;">ici</a>.</div>';
bodytag.insertBefore(div,bodytag.firstChild); // Ajoute la bannière juste au début de la page
document.getElementsByTagName('body')[0].className+=' cookiebanner';
}
function getCookie(NomDuCookie) {
if (document.cookie.length > 0) {
begin = document.cookie.indexOf(NomDuCookie+"=");
if (begin != -1) {
begin += NomDuCookie.length+1;
end = document.cookie.indexOf(";", begin);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(begin, end));
}
}
return null;
}
function delCookie(name ) {
path = ";path=" + "/";
domain = ";domain=" + "."+document.location.hostname;
var expiration = "Thu, 01-Jan-1970 00:00:01 GMT";
document.cookie = name + "=" + path + domain + ";expires=" + expiration;
}
function deleteAnalyticsCookies() {
var cookieNames = ["__utma","__utmb","__utmc","__utmz","_ga"]
for (var i=0; i<cookieNames.length; i++)
delCookie(cookieNames[i])
}
function gaOptout() {
document.cookie = disableStr + '=true;'+ getCookieExpireDate() +' ; path=/';
document.cookie = 'hasConsent=false;'+ getCookieExpireDate() +' ; path=/';
var div = document.getElementById('cookie-banner');
// Ci dessous le code de la bannière affichée une fois que l'utilisateur s'est opposé au dépôt
// Vous pouvez modifier le contenu et le style
if ( div!= null ) div.innerHTML = '<div style="background-color:#ffffff"> Vous vous êtes opposé \
au dépôt de cookies de mesures d\'audience dans votre navigateur </div>'
window[disableStr] = true;
deleteAnalyticsCookies();
}
var consentCookie = getCookie('hasConsent');
if (!consentCookie) {//L'utilisateur n'a pas encore de cookie de consentement
var referrer_host = document.referrer.split('/')[2];
if ( referrer_host != document.location.hostname ) { //si il vient d'un autre site
//on désactive le tracking et on affiche la demande de consentement
window[disableStr] = true;
window[disableStr] = true;
window.onload = askConsent;
} else { //sinon on lui dépose un cookie
document.cookie = 'hasConsent=true; '+ getCookieExpireDate() +' ; path=/';
}
}

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-4154820-XXXX']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

 

Comments are closed.