Eri*_*ric 5 javascript google-analytics google-tag-manager
我最终不得不为我的网站使用Google跟踪代码管理器,因此Google Analytics(分析)现在已成为其中的一部分。一切都正确设置并且可以正常工作。但是,过去,我可以使用ga()函数非常轻松地跟踪网站上的自定义事件:
ga('send', 'event', 'Videos', 'play', 'Fall Campaign');
Run Code Online (Sandbox Code Playgroud)
但是,现在不再定义ga();我在控制台中收到错误消息ReferenceError: ga is not defined。然后,我尝试了gtag()方法,它也不起作用(相同的错误消息):
gtag('event', 'aaa', {
'event_category' : 'bbb',
'event_label' : 'ccc'
});
Run Code Online (Sandbox Code Playgroud)
如何使用Javascript代码跟踪事件?
需要明确的是,我不想大惊小怪的Google跟踪代码管理器。一百万次点击即可完成所有操作。;-)我只想像以前一样直接调用Javascript。
默认情况下,Google跟踪代码管理器(GTM)为每个跟踪器使用随机名称,该跟踪器是为每个Universal Analytics标记生成的。AS GTM仅创建命名的跟踪器,因此不会创建默认(t0)跟踪器。由于未创建默认跟踪器,因此您必须自己提供跟踪器名称。因此,仅通过直接从JavaScript使用ga()调用,您现在就需要跟踪器名称,或者以某种方式查询和引用它们,以使其起作用。
强烈建议不要为跟踪器使用固定名称。
我有一个建议的解决方法。您仍然需要进行一些GTM设置,但是您可以创建Google Analytics(分析)常规事件分配器标签,以后可以使用该标签从JavaScript发送任何Google Analytics(分析)事件调用。
您的标记设置将如下所示,您可以在其中引用Google Analytics(分析)设置以及dataLayer中所有与事件相关的变量:
您的事件跟踪代码如下所示:
dataLayer.push({
'event': 'GAEvent',
'eventCategory': 'Videos',
'eventAction': 'play',
'eventLabel': 'Fall campaign',
'eventValue': undefined,
'eventNI': true
});
Run Code Online (Sandbox Code Playgroud)
请注意,即使不跟踪任何字符串或值,也建议始终在dataLayer中设置所有相关事件值,以便在推送合并期间不继承任何较早的dataLayer值。此外,您还应根据需要更新非交互标志。您的触发器应与event键的值匹配。
小智 4
我在跟踪代码管理器中创建了一个新的“自定义 html”标签。然后我添加了下面的analytics.js 代码,并将标签设置为在页面加载时触发。这使我能够使用ga代码中的现有调用来触发自定义事件,而不是像其他答案所建议的那样重写所有事件以通过数据层与 Universal Analytics 配合使用。
<!-- Google Analytics -->
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXXXXX-Y', 'auto');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |