在 Google Analytics 中,访问者级别的自定义变量存储在 cookie 中。
我希望仅当之前没有数据存储在此插槽中时才将一些数据存储在 GA 自定义变量中,即永远不要覆盖访问者级别的自定义变量。
有什么办法可以做到这一点,或者通过测试是否已经存储了一些数据,或者通过检索存储的值?
没有_getCustomVar
,但是有什么方法可以让我自己做一些等效的事情而不“侵入”cookies?
在 Google Analytics 中,访问者级别的自定义变量存储在 cookie 中。
我希望仅当之前没有数据存储在此插槽中时才将一些数据存储在 GA 自定义变量中,即永远不要覆盖访问者级别的自定义变量。
有什么办法可以做到这一点,或者通过测试是否已经存储了一些数据,或者通过检索存储的值?
没有_getCustomVar
,但是有什么方法可以让我自己做一些等效的事情而不“侵入”cookies?
例如:
_gaq.push(function() {
var pageTracker = _gat._getTrackerByName(); // Gets the default tracker.
var visitorCustomVar1Value = pageTracker._getVisitorCustomVar(1);
});
它仅适用于访问者级别的自定义 var,因为这是 GA cookie 中唯一存储的客户端大小__utmz
。但这正是你要找的我猜。
如果您想查看是否已经设置了非访问者级别的自定义 var,那么您需要在设置自定义 var 以便以后检索时自己编写逻辑来存储单独的 cookie。但这应该是一件简单的事情,而且可能比侵入专有 cookie 更好。
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'xxxxxxxxxxxxxxx']);
_gaq.push(function() {
var pageTracker = _gat._getTrackerByName();
var userTypeVar = pageTracker._getVisitorCustomVar(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);
})();
</script>