2013-06-26 36 views
7

Tôi muốn đặt Biến tùy chỉnh trong Google Analytics nhưng Ima có chút nhầm lẫn về cú pháp.Cách đặt Biến tùy chỉnh trong Mã Google Analytics mới

Đây là những gì Google đã cho tôi để đặt trên trang web của tôi: -

(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'); 

Đây là những gì tôi muốn sử dụng cho Custom 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]); 

Bây giờ ví dụ tôi thấy nói rằng Tôi đã đặt mã Biến tùy chỉnh là: -

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); 
    })(); 

nhưng có vẻ như ba dòng cuối cùng là cách cũ của googl e đã xem trang, những gì google bây giờ cho (mã đăng đầu tiên) là làm thế nào google hiện nó ngay bây giờ. Bạn có nghĩ nó đúng không? hay tôi nên dán mã này lên trên những gì google đã cho tôi?

Vì vậy, viết tắt là mã Google Analytics chính xác này, để tôi thêm Biến tùy chỉnh?

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

Bạn đã tự mở bản thân với các cuộc tấn công XSS. Bất kỳ dữ liệu biến nào được sử dụng trong ngữ cảnh JavaScript phải được chạy qua 'json_encode()' trước tiên! Không mù quáng chèn các giá trị do người dùng xác định trong mã của bạn như thế này. – Brad

+0

Cảm ơn Brad. sẽ sửa lỗi này. – Steve

Trả lời

15

Bạn đang thực sự trộn 2 thư viện Google Analytics không tương thích - ga.jsanalytics.js.

Biến tùy chỉnh như vậy không tồn tại trong thư viện analytics.js và bạn nên sử dụng Custom dimensions thay thế. Nếu bạn xác định các biến tuổi và giới tính của bạn trong Javascript, sau đó bạn có thể sử dụng các cuộc gọi sau đây để vượt qua chúng cùng với một lần xem trang:

<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> 

Scope (hit/lần/khách) và tên biến được định nghĩa trong Google Analytics Giao diện Custom Dimension - không có trong mã của bạn.

+0

Cảm ơn bạn rất nhiều! – Steve

Các vấn đề liên quan