[英]Get account ID from Google Analytics Tracking code on page
我正在使用我的自定义网络抓取工具执行审核,并尝试为Google Analytics(分析)的旧版实现收集accountID,但是我似乎无法在_gaq中获取任何JavaScript函数来返回使用中的accountId。 有人知道怎么做这个吗? 我读过的所有文档实际上都只提到了如何设置变量,而不是一旦出于审计实现的目的而如何获取变量。
提前致谢
更新
感谢大家! 希望我能核对您的所有答复,以作为好的答案。
经过一些测试,我想到了以下功能,几乎可以处理每个用例。
function getAccount() {
try {
if (_gaq) {
for (i = 0; i < _gaq.length; i++) {
if (_gaq[i][0] == "_setAccount") {
return _gaq[i][1]
}
}
}
if (_gat) {
if (_gat.fb) {
return _gat.fb
}
}
if (ga) {
return ga.getAll()[0].a.data.values[':trackingId']
}
} catch (e) { }
return ""
}
Joshua,这不是可以使用的标准功能/获取功能。
不过,您可以手动访问由跟踪库创建的ga对象。
例如,如果您打开此网页的控制台并输入:
ga.getAll()[0].a.data.values[':trackingId']
您将收到UA-5620270-1 ,这可能是堆栈溢出的主要Google Analytics(分析)帐户。 类似的方法也适用于您的情况-以及任何其他可访问的属性:
屏幕: http : //fii.cz/sbdqevk
如果您准备接受不太好的解决方案,则可以使用
function getAccount(_gaq) {
for (i = 0; i < _gaq.length; i++) {
if (_gaq[i][0] == "_setAccount") {
return _gaq[i][1];
}
}
}
_gaq
是一个数组数组,该函数只是简单地循环遍历,直到找到第一个元素为_setAccount
的子_setAccount
并返回第二个元素,即帐户编号( _gaq.push(['_setAccount', 'UA-XXXXX-X']);
)。
在谈到传统实现时,甚至有更旧的代码版本,因此您可能需要进行更多检查。 我可以在活动页面上找到的最旧版本是:
<script type="text/javascript">
_uacct = "UA-XXXXXXXX-X";
urchinTracker();
</script>
从那里获取帐户ID非常容易。 还有代码的同步版本(对不起,暂时找不到示例)。
对于当前版本,请查看Petrs答案。
首先根据文档,您将在页面上设置所有跟踪器
// returns an array with all the trackers
const trackers = ga.getAll();
然后,对于每个跟踪器,您可以获取每个获取该属性的跟踪器的跟踪ID
// returns the 'trackingId' propperty
const trackingId = tracker.get('trackingId'));
如果要缩短它 ,可以做
const trackingIds = ga.getAll().map(tracker => tracker.get('trackingId'));
警告:
请记住,总是要在ga准备就绪后再运行此程序。
请勿-在readyCallback之外使用ga对象方法,因为这些方法可能尚不可用。
var trackers = ga.getAll();
要做-请确保在readyCallback中使用ga对象方法,因为它们肯定可用。
ga(function() { var trackers = ga.getAll(); });
我只是使用另一种方法做到了,如下所示:
var _gaq = _gaq || [];
_gaq.push(function() {
var trackers, i;
trackers = _gat._getTrackers();
for (i = trackers.length - 1; i >= 0; i--) {
var account = trackers[i]._getAccount();
console.log("tracker account", account);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.