代码之家  ›  专栏  ›  技术社区  ›  Mirror318

google分析通过trackingid获取tracker

  •  1
  • Mirror318  · 技术社区  · 8 年前

    我现在有这个代码,试图找到我需要的合适的追踪器(在8-12个追踪器中):

    ga.getAll().forEach(function(tracker) {
        if(tracker.get('trackingId') === "UA-62921111-4") {
    

    有没有一种简单的方法可以像 ga.getTracker("UA-62921111-4") 是吗?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Inus Saha    8 年前

    没有 ga.getTracker 在Analytics.js上。它只有 ga.getByName 和 ga.getAll 是的。

    你可以查一下这个供你参考。 https://developers.google.com/analytics/devguides/collection/analyticsjs/accessing-trackers

    因此为了达到您的需要,我编写了以下代码,应该在加载analytics.js后添加到您的文件中:

    (function(){
        trackers = {}
        ga.getAll().forEach(function(tracker) {
            trackers[tracker.get('trackingId')]=tracker;
        });
        ga.getTracker=function(id){
            if(trackers[id])
            return trackers[id];
        };
    })();
    

    这基本上只获取一次所有的跟踪器并将它们存储在一个对象中,它定义了丢失的 盖特拉克 是的。

    所以现在你可以打电话 ga.getTracker("UA-62921111-4") 函数获取你的跟踪器。

        2
  •  0
  •   Mirror318    8 年前

    我发现这是一个很好的单行本:

    var tracker = ga.getAll().filter(tracker => (tracker.get('trackingId') === 'UA-62925944-4'))[0]
    

    但请注意,如果你有多个追踪器, ga 可能在你想要的跟踪器加载之前就已经准备好了。我想从跟踪器中获取表单字段的数据,所以我把这些字段插入了提交,以确保所有的东西都已加载。