繁体   English   中英

从页面上的Google Analytics(分析)跟踪代码获取帐户ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM