通过javascript将cookie中的数据发送到Google Analytics

通过javascript将cookie中的数据发送到Google Analytics,javascript,cookies,google-analytics,Javascript,Cookies,Google Analytics,有谁能帮我改进我制作的弗兰肯斯坦的javascript怪兽 我试图从cookie中检索特定数据,将其缝合在一起,然后作为用户Id发送到Google Analytics 我想,我所拥有的将会起作用,但可能是完全无效的,并且可能有大量冗余 cookiename的值为: 我想设置为用户Id的是: 123.456 我所面临的挑战: 从特定cookie检索值 从字符串中删除转义字符和不必要的引号,这样我就可以实际使用JSON.parse()了 将1号和2号缝合在一起,中间有一个间隔 从函数返回该值 发

有谁能帮我改进我制作的弗兰肯斯坦的javascript怪兽

我试图从cookie中检索特定数据,将其缝合在一起,然后作为用户Id发送到Google Analytics

我想,我所拥有的将会起作用,但可能是完全无效的,并且可能有大量冗余

cookiename的值为:

我想设置为用户Id的是:

123.456
我所面临的挑战:

  • 从特定cookie检索值
  • 从字符串中删除转义字符和不必要的引号,这样我就可以实际使用JSON.parse()了
  • 将1号和2号缝合在一起,中间有一个间隔
  • 从函数返回该值
  • 发送到谷歌分析
我的结局是:

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 idmaker() {
    var cookievalue = decodeURI(getCookie("cookiename"));
    var tidiedcookievalue = cookievalue.replace(/\\/g, "").slice(1, -1);
    var parsedcookie = JSON.parse(tidiedcookievalue);
    var UID = parsedcookie.number1 + "." + parsedcookie.number2;
    return UID;
}

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-12345678-9', 'auto');
ga('set', 'userId', idmaker());
ga('send', 'pageview');
函数getCookie(cname){
变量名称=cname+“=”;
var decodedCookie=decodeURIComponent(document.cookie);
var ca=decodedCookie.split(“;”);
对于(变量i=0;i
请毁灭我

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 idmaker() {
    var cookievalue = decodeURI(getCookie("cookiename"));
    var tidiedcookievalue = cookievalue.replace(/\\/g, "").slice(1, -1);
    var parsedcookie = JSON.parse(tidiedcookievalue);
    var UID = parsedcookie.number1 + "." + parsedcookie.number2;
    return UID;
}

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-12345678-9', 'auto');
ga('set', 'userId', idmaker());
ga('send', 'pageview');