首页 > 解决方案 > gtag 中未定义 Google Analytics(分析)自定义维度

问题描述

我已经设置了 4 个维度。我的代码如下,

 <script>//<![CDATA[
        window.dataLayer = window.dataLayer || [];
        function gtag() {
            dataLayer.push(arguments);
        }
        gtag('js', new Date());
        gtag('config', 'UA-XXXXX-1');

        gtag('set', {
            'user_id': _spPageInfo.userId,
            'JobTitle': jobTitle,
            'Department': department,
            'UserLocation': Location
        });
        gtag('send', 'pageview');

        //]]>
    </script>
    <script>//<![CDATA[
        // <!-- Google Tag Manager -->
        (function (w, d, s, l, i) {
            w[l] = w[l] || [];
            w[l].push({
                'gtm.start': new Date().getTime(),
                event: 'gtm.js'
            });
            var f = d.getElementsByTagName(s)[0],
                j = d.createElement(s),
                dl = l != 'dataLayer' ? '&l=' + l : '';
            j.async = true;
            j.src =
                'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
            f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-XXXX');

        // <!-- End Google Tag Manager -->

        //]]>
    </script>

我也在标签管理器中设置了维度。
在调试模式下,我可以看到“Conatiner Loaded”而不是“Page Load”,

<p

在数据层中,我看不到任何事件名称或维度名称。

在此处输入图像描述

24 小时后也显示未定义。拜托,谁能指导我在这里缺少什么?

标签: google-analyticsanalyticsgoogle-tag-managergoogle-analytics-useridcustom-dimensions

解决方案


您需要使用命令传递custom_map参数,您config将命名维度值映射到自定义维度。请参阅此处的示例。此外,您需要在set之前调用,config因为config实际上是将浏览量命中传递给谷歌分析,因此在配置之后调用 set 不会影响您的数据最终,您的代码将如下所示:

gtag('js', new Date());
gtag('set', {'custom_map': {
  'dimension1': 'department',
  'dimension2': 'jobTitile',
  // the same for other custom dimensions
}})
gtag('config', 'UA-XXXXX-1', { 'jobTitile': 'engineer', 'department':'maintenance' });

此外,避免同时使用 GTM 和gtag代码,否则您将获得发送到分析的重复数据。


推荐阅读