2016-04-14 10 views
1

Ich plane eine benutzerdefinierte Dimension mit Benutzerbereich für jeden Besucher zu setzen, die in einer Webseite in einer beliebigen Seite von bestimmten Verzeichnis geht Benutzer in zwei Gruppen einzuteilen:Google Analytics benutzerdefinierte Dimension Verwendung mit Benutzerbereich

  • Besucher, die (den) Abschnitt im genannten Verzeichnis besucht haben.
  • Besucher, die (noch) nicht den Abschnitt im genannten Verzeichnis besucht haben.

Ich lese diese question zu einem ähnlichen Thema zu reden und es heißt, dass benutzerdefinierte Dimensionen Google Analytics keine Standardwerte haben nicht so eine Lösung für dieses Problem ist es, immer den Standardwert zu senden und es nur dann ändern, wenn die Kriterien erfüllt sind aber das kommt in Konflikt (nach meiner Meinung) mit Google Analytics documentation darüber, wie User-Scoped-Variablen ihren Wert erhalten: Kurz gesagt, der letzte Treffer wird gespeichert.

Also dachte ich über den folgenden Ansatz, nur die benutzerdefinierte Variable mit Benutzerbereich festlegen, wenn Benutzer eine Seite in diesem Verzeichnis besuchen und in der Berichterstattung die Include/Exclude-Funktionalität verwenden, um diese beiden Gruppen zu trennen, aber ich fürchte ich könnte etwas fehlen.

  • Wird dieser Ansatz funktionieren, wenn man bedenkt, dass Google Analytics die Aggregationen nicht berücksichtigt, wenn ein Treffer auf dieser benutzerdefinierten Dimension nicht auftritt?
  • Wie kann ich die benutzerdefinierte Variable festlegen, um diese Benutzer abzufangen, aber nicht überschreiben, wenn sie eine Seite außerhalb dieses Verzeichnisses besuchen?
  • Antwort

    0

    Ich denke, Ihre Vorgehensweise würde funktionieren, aber Sie sollten bedenken, dass jeder Benutzer, dem kein Wert für diese benutzerdefinierte Dimension zugewiesen wurde, von den Berichten ausgeschlossen wird, die diese Dimension verwenden.

    Ich denke, Sie sollten besser einen Cookie setzen, der verfolgt, ob der Benutzer jemals auf den fraglichen Seiten war. Auf diese Weise können Sie immer einen Wert senden. Unten habe ich die Cookie-Funktionen von w3schools.com ausgeliehen, da ich nicht an JavaScript-Cookies gewöhnt bin. Ich bin sicher, du könntest einen kürzeren Weg finden, es zu tun.

    //Cookie functons borrowed from w3schools.com 
    function setCookie(cname, cvalue, exdays) { 
        var d = new Date(); 
        d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
        var expires = "expires="+d.toUTCString(); 
        document.cookie = cname + "=" + cvalue + "; " + expires; 
    } 
    function getCookie(cname) { 
        var name = cname + "="; 
        var ca = document.cookie.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 ""; 
    } 
    
    //start of Standard code goes here 
        (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','//www.google-analytics.com/analytics.js','ga'); 
    
    ga('create', 'UA-XXXX-Y', 'auto'); 
    
    //now check for cookie value 
    var everBeen = getCookie('everBeen'); 
    if(everBeen != 'hasBeen'){ 
        var path = window.location.pathname; 
        if(path.indexOf('/requireddirectory') != -1){ 
         everBeen = 'hasBeen'; 
        } else{ 
         everBeen = 'neverBeen'; 
        } 
    } 
    
    setCookie('everBeen',everBeen,1461); 
    
    ga('send', 'pageview', { 
        'dimension1': everBeen 
    });