2013-06-26 12 views
7

Chcę wstawiać zmienne niestandardowe w Google Analytics, ale Ima trochę się myli co do składni.Jak umieścić zmienne niestandardowe w nowym kodzie Google Analytics

to, co Google dał mi umieścić na mojej stronie: -

(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-xxxxxxx', 'xxxxx.com'); 
    ga('send', 'pageview'); 

To jest to, co chcę użyć do niestandardowych Vars: -

var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-xxxxxx-XX']); 
    _gaq.push(['_setCustomVar', 1, 'age', '<?php echo $_GET["age"]; ?>', 1]); 
    _gaq.push(['_setCustomVar', 2, 'gender', '<?php echo $_GET["gender"];?>', 1]); 

Teraz przykład widziałem mówi, że Muszę umieścić kod zmiennych niestandardowych jako: -

var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-xxxxxx-XX']); 
    _gaq.push(['_setCustomVar', 1, 'age', '<?php echo $_GET["age"]; ?>', 1]); 
    _gaq.push(['_setCustomVar', 2, 'gender', '<?php echo $_GET["gender"];?>', 1]); 
    _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); 
    })(); 

ale wydaje się, że ostatnie trzy linie są starym sposobem, w jaki googl Zrobiliśmy odsłon strony, co daje teraz Google (pierwszy opublikowany kod), jak Google robi to teraz. Czy myślisz, że to prawda? czy powinienem po prostu wkleić ten kod do tego, co mi go dał Google?

Krótko mówiąc, jest to poprawny kod Google Analytics, aby móc dodać niestandardowe zmienne?

var _gaq = _gaq || []; 
     _gaq.push(['_setAccount', 'UA-xxxxxx-XX']); 
     _gaq.push(['_setCustomVar', 1, 'age', '<?php echo $_GET["age"]; ?>', 1]); 
     _gaq.push(['_setCustomVar', 2, 'gender', '<?php echo $_GET["gender"];?>', 1]); 
     _gaq.push(['_trackPageview']); 


(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-xxxxxxx', 'xxxxx.com'); 
     ga('send', 'pageview'); 
+2

Otworzyłeś się na ataki XSS. Wszelkie zmienne dane używane w kontekście JavaScriptu powinny być uruchamiane najpierw przez 'json_encode()'! Nie wklejaj ślepo wartości zdefiniowanych przez użytkownika w kodzie w ten sposób. – Brad

+0

Dzięki Brad. Naprawię to. – Steve

Odpowiedz

15

rzeczywiście jesteś mieszania 2 niekompatybilnych bibliotek Google Analytics - ga.js i analytics.js.

Zmienne niestandardowe jako takie nie istnieją w bibliotece analytics.js i należy zamiast tego użyć Custom dimensions. Jeśli zdefiniujemy wieku i płci zmiennych w JavaScript, możesz użyć następującego połączenia przekazać je wraz z odsłoną:

<script> 

(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'); 
ga('send', 'pageview', { 
'dimension1': age, 
'dimension2': gender 
}); 

</script> 

Zakres (hit/wizyta/visitor) oraz nazwę zmiennej są zdefiniowane w Google Analytics Interfejs Custom Dimension - nie w kodzie.

+0

Dziękuję bardzo! – Steve

Powiązane problemy