【问题标题】:Universal Analytics events via Tag-manager not working通过标签管理器的 Universal Analytics 事件不起作用
【发布时间】:2023-03-08 22:09:02
【问题描述】:

我想就通过 Google 跟踪代码管理器部署的 Universal Analytics 的事件触发问题寻求任何帮助。
特别是,我试图在同一页面上发送两种事件:checkout-purchase 事件(增强型电子商务)和 onclick generic 自定义事件。
在我页面的相关代码下方,按onload执行顺序:

<script>
 <!--Initialize dataLayer-->
  dataLayer = [{'userId' : ...}];
 <!--End dataLayer-->

 <!--Tag Manager-->
  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':.....})(window,document,'script','dataLayer','GTM-...');
 <!--End Tag Manager-->

 dataLayer.push({   
  'event': 'checkout',
  'ecommerce': {
    'purchase': {
        'actionField': {
            'id': ...
            'revenue': '1.00', 
            'tax': ... 
        },
        'products': [{
            'name': 'Product1',
            'price': '1.00',
            'category': 'Category 1',
            'variant': 'Variant1',
            'quantity': 1
        }]
    }
  },
  'eventCallback': function() {
        console.log("Purchase pushed!");        
  }
 });
</script>

<button onclick="dataLayer.push({'event': 'eventTest'});">CLICK ME</button>

如您所见,购买事件在页面加载时被正确推送。
我说“正确”,因为在浏览器控制台中检查 dataLayer 对象会显示添加的购买子对象。
上瘾,最后,您会发现一个简单的按钮,该按钮在其 onclick 处理程序上推送另一个通用“eventTest”。甚至这个事件对象也被添加到数据层“队列”中。
供您考虑,以下是有关 Google 的页面加载“200 状态”请求:
- gtm.js?id=GTM-... [www.googletagmanager.com]
- analytics.js [www.google-analytics.com]
- collect?v=1&_v=j35&a=211135512&t=pageview... [www.google-analytics.com]

简而言之,一切似乎都正常。
显然,当这些推送完成后,没有触发过瘾的请求,但这是意料之中的。
我的问题是:何时以及基于什么发送 dataLayer“队列”数据?

事实上,没有事件数据几天后在分析面板中报告我的测试。
分析代码基于谷歌跟踪代码管理器中的“所有页面”触发规则和“电子商务元素”,具有高级电子商务功能和 dataLayer选项,都处于活动状态。

我应该设置任何其他跟踪代码管理器的选项或规则以收集这些事件吗?这些事件之前是否应该在跟踪代码管理器的控制台中“注册”?

抱歉,时间长了,非常感谢。



更新:

我设法收集了这些事件数据,但我在发送事件“标签”时遇到了问题。
我的意思是即使在 Universal Analytics 实时面板中也会定期记录事件,但作为“未定义”。

Inspecting Analytics 的请求显示“ec”和“ea”参数的“未定义”值,包括电子商务对象“addToCart / removeFromCart”dataLayer.push 和通用 onclick“ eventTest" 之一。

这些可能有什么问题?
非常感谢。

【问题讨论】:

    标签: events analytics google-tag-manager universal-analytics


    【解决方案1】:

    在这种情况下,您应该向 Google Analytics 发送一个匹配以发送增强型电子商务数据,而另一个匹配则发送 Google Analytics 事件数据。

    这意味着您应该在您的网页上触发 3 个 Google Analytics(分析)标签:一个用于网页浏览跟踪(网页浏览类型),带有“所有页面”触发器,一个用于增强型电子商务跟踪(事件类型),带有“事件等于结帐”触发器一个用于事件跟踪(事件类型),带有“事件等于 eventTest”触发器。

    【讨论】:

    • 谢谢@mrbubu。我成功地使用为“所有页面”浏览量设置的相同 Google Analytics(分析)标签成功发送了电子商务“结帐”点击。我的意思是一个标签基于两个触发器。这似乎有效,但第三个触发器(“eventTest”)似乎没有。我会尝试在第三个触发器上复制 Analytics 标记,即使我认为这很奇怪。
    • 如果您基于两个触发器在一个页面上发送综合浏览量,您将获得该页面的两次综合浏览量。您最好使用事件分析标签来跟踪电子商务和事件。
    • 好的..谢谢。因此,在我的场景中,三个相同的 UA 标签用于三个不同的触发器:两个事件(“checkout”和“eventTest”)和一个综合浏览量。
    • 您应该使用2个跟踪类型为“事件”的UA标签,您可以在其中设置事件操作和事件类别(ipic.su/img/img7/fs/…)和一个跟踪类型为“页面浏览”的UA标签
    【解决方案2】:

    GTM如何观察dataLayeris answered here

    电子商务数据会在页面加载时由 Google Analytics(分析)标签模板自动评估,因此您的交易会被记录下来。

    对于按钮中的自定义事件,您需要创建一个触发器,键入“事件”,条件“事件等于 eventTest”,然后创建一个为事件跟踪配置的 Google Analytics 代码。

    当 Google 将相同的术语用于两个本应一起使用的产品中完全不同的事物时,它真的搞砸了。

    GTM 事件不会跟踪 Google Analytics 中的任何内容,它是 GTM 中的“保留”变量名称,必须存在并填写才能触发代码。在页面加载时,DOM 准备就绪,单击并提交它由 GTM 自动填充。

    但是,GTM 事件不会向 Google Analytics 跟踪任何内容。为此,您需要创建一个单独的 Google 事件跟踪代码,该代码又由 GTM 事件触发(为了完全混淆,可能由 javascript 事件触发)。

    【讨论】:

    • 谢谢@Eike,你让这个工作更清楚了。无论如何,这并不能解释为什么我的“自动评估”页面加载电子商务数据没有收集在“分析”面板中。相反,我将尝试为按钮单击设置 GTM 事件跟踪标记。是否可以在所有页面上使用相同的 Analytics 代码触发,或者我必须复制它只是为了这个事件跟踪?非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多