通过Google Tag Manager加载Google Analytics时如何知道何时已加载完成

3
我们正在使用GTM加载通用分析,我想从js向GA发送一些自定义事件。因此,我需要做类似于以下的事情:
ga('send', {
    hitType: 'event',
    eventCategory: 'Legitimation',
    eventAction: 'Is returning customer',
    nonInteraction: true
});

但我不知道 GA 何时加载,因为 GTM 使一切都异步化。 我该如何知道 ga() 已准备就绪?


ga对象有一个叫做answer的属性,当ga被加载时,它被设置为42。因此,您可以拥有一个定时器或一个监听该属性的Promise。然而,对于您的用例来说,这是一个可怕的想法,您应该坚持丹尼尔给出的答案。 - Eike Pierstorff
1个回答

4
如果您通过GTM加载GA,则不通过标签管理器发送GA事件有点棘手。如果页面上硬编码了GA,您无法使用正常的事件。
这里有一个关于此问题的好帖子 - 也回答了您的问题:https://productforums.google.com/forum/#!topic/tag-manager/C2j4nt8dBxw 我建议发送数据层而不是事件,使用GTM捕获此数据层,并通过GTM发送事件。这样会更容易一些。

我需要在GTM中设置所有单独的事件吗? - Patrik
1
在GTM中,没有一个事件是足够的。您可以像这样构建数据层: dataLayer = [{ 'eventCategory': '{{YourValue}}', 'eventAction': '{{YourValue}}' 'event': 'Your_event_name' }];现在,在GTM中构建一个数据层变量,监听例如eventCategory 将此变量添加到GTM中的事件中 - 触发事件= Your_event_name 在这种情况下,您只需要在GTM中使用一个事件即可处理所有GA事件。 - DanielS
好的,我在GTM中设置了一个自定义事件变量,并使用以下代码将其推送到数据层:dataLayer.push({'event':'Legitimation','eventAction':'Is returning customer'}); 通过预览,我可以看到GTM正在捕获事件,但是当我查看实时事件下的GA时没有任何结果显示。 - Patrik
嗯,那似乎是另一个问题。事件是空的还是GTM没有触发事件?您能否检查事件的常规报告? - DanielS
你配置了以 Legitimationevent 触发的 GTM 事件标签吗?除非你创建并配置它们的标签,否则你将看不到事件。 - nyuen
我来晚了,但我发现这篇文章非常有帮助,可以设置GA和GTM事件绕过:https://mixedanalytics.com/blog/ga-gtm-event-tracking-pass-through-datalayer/ - Shogo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接