create UUID if cookie empty
by M Shameer
HTML
<div class="page">wow</div>
<div class="full" > </div>
<div class="name">one</div>
<div class="name">two</div>
<div class="name">three</div>
CSS
div.reportingStaticTileContent img{width:100%; height:auto;}
div.reportingStaticTileContent{width:300px; height: 200px;}
JavaScript
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function checkCookie() {
var user=getCookie("username");
if (user != "") {
user = user;
} else {
//user = prompt("Please enter your name:","");
user = uuid();
if (user != "" && user != null) {
//user ='yes!';
setCookie("username", user, 30);
}
}
}
function uuid() {
function randomDigit() {
if (crypto && crypto.getRandomValues) {
var rands = new Uint8Array(1);
crypto.getRandomValues(rands);
return (rands[0] % 16).toString(16);
} else {
return ((Math.random() * 16) | 0).toString(16);
}
}
var crypto = window.crypto || window.msCrypto;
return 'xxxxxxxx-xxxx-4xxx-8xxx-xxxxxxxxxxxx'.replace(/x/g, randomDigit);
}
checkCookie();
var newUser = getCookie("username");
var y = document.getElementsByClassName("page")[0].innerText;
// dashboard name
var a = [];
var b = document.getElementsByClassName('name');
var i;
for (i = 0; i < b.length; i++) {
var values = document.getElementsByClassName('name')[i].innerHTML;
a.push( values );
}
var elem = document.createElement("img");
elem.src = 'https://www.google-analytics.com/collect?v=1&tid=XX-xxxxxxxx-xx&cid=undefined&t=event&ec=Dashboard&ea=View&cs=TypeOfDash&cn='+y+'&ds='+a+'ci='+newUser;
document.getElementsByClassName("full")[0].appendChild( elem );