【问题标题】:Command ignored. Unknown target: undefined when setting Custom Dimension in Google Analytics tracking code命令被忽略。未知目标:在 Google Analytics 跟踪代码中设置自定义维度时未定义
【发布时间】:2017-02-20 18:47:53
【问题描述】:

我正在我的 Google Analytics 跟踪代码中设置自定义维度,但是在打开 Google Analytics 调试器的情况下,我在 Chrome 控制台中看到了一个奇怪的错误。

这是我在每个页面上触发的代码。我正在向一个区域帐户以及一个全局/汇总帐户报告,并且我创建了两个跟踪器来实现这一点。

<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','https://www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-85521872-1', 'auto', 'crmpiccoglobal');
    ga('create', 'UA-85521872-3', 'auto', 'crmpiccoregion');

    ga('set', 'dimension1', 'premium');

    ga('crmpiccoglobal.send', 'pageview');
    ga('crmpiccoregion.send', 'pageview');
</script>

在控制台中我看到了这个:

运行命令:ga("set", "dimension1", "premium")

analytics_debug.js:10 命令被忽略。未知目标:未定义

我在 GA 中创建了自定义维度,位于我想要访问的每个属性下。

【问题讨论】:

    标签: javascript google-analytics web-analytics


    【解决方案1】:

    如果您使用 Google 跟踪代码管理器加载您的 Google Analytics,但您不知道正在创建什么跟踪器,请使用:

    sendGa(name : string, data: any) {
        (<any>window).ga(() => {
            const trackers = (<any>window).ga.getAll();
            const firstTracker = trackers[0];
            const trackerName = firstTracker.get('name');
            (<any>window).ga(trackerName + '.' + name, data);
        });
    }
    

    文档:https://developers.google.com/analytics/devguides/collection/analyticsjs/accessing-trackers

    【讨论】:

    • 好伙伴!我猜你正在使用打字稿?但不是 Eslint :) 奇怪的语法 :-) 你可以使用 const 而不是 var 并与 ` ${trackerName}.name ` 连接
    • 这种情况下的名称和数据是什么?我正在通过 GTag Manager 使用 GA
    • 我将其命名为 namedata,因为在查看 GA 的文档时这似乎最合乎逻辑,但最终它只是您通常会发送到 ga(x,y,z) 的参数集合。您还可以添加另一个接收和发送 3 个参数的函数,并执行以下操作:sendGa2('send', "pageview", "shipment");
    • 您可以通过firstTracker.get('name')developers.google.com/analytics/devguides/collection/…获取跟踪器名称
    【解决方案2】:

    您需要在“set”命令中使用您的跟踪器名称,​​否则 GA 会将命令应用于默认跟踪器 t0(在您的示例中不存在):

      ga('crmpiccoglobal.set', 'dimension1', 'premium');
      ga('crmpiccoregion.set', 'dimension1', 'premium');
    
      ga('crmpiccoglobal.send', 'pageview');
      ga('crmpiccoregion.send', 'pageview');
    

    【讨论】:

    • OFC,谢谢。我把它当作create 对待,认为我必须在最后提供跟踪器名称。
    • 就我而言,我使用 GTM 插入分析。它将名称设置为 gtm1
    • @User,请参阅您上面的评论,如果您使用 Google 跟踪代码管理器,ga('create') 以名称 gtm1(在我的情况下)运行。因此,例如对于事件跟踪,我使用 ga('gtm1.send' {....more data....} ); 使用 Google 分析调试 chrome 扩展,这对我有很大帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    相关资源
    最近更新 更多