Ale*_*tov 4 javascript tracking google-analytics google-tag-manager
随着时间的推移,Google跟踪代码管理器dataLayer会被规则和标记过于复杂,特别是在AJAX密集的网站上.
我正在一个跟踪繁重的网站上实施GTM,并寻找以下问题的清洁解决方案.我将以Google Analytics为例.
它允许您设置和使用4个宏进行事件跟踪:
值和标签是可选的,但dataLayer是持久的,不是吗?那么我该如何处理以下场景:
dataLayer.push({
'event':'gaEvent',
'gaEventCategory':'my-category',
'gaEventAction':'my-action',
'gaEventLabel':'my-label',
'gaEventValue':'my-value'
});
Run Code Online (Sandbox Code Playgroud)
但是后来在同一页面上我必须跟踪另一个事件,但是没有Label和Value:
dataLayer.push({
'event':'gaEvent',
'gaEventCategory':'another-category',
'gaEventAction':'another-action',
});
Run Code Online (Sandbox Code Playgroud)
如果我设置了一个类似"Event is gaEvent"的规则,那么我会关闭"Google Analytics"标记,该标记如下所示(此处使用HTML标记而不是内置标记):
<script type="text/javascript">
_gaq.push(['_trackEvent', '{{ga event category}}', '{{ga event action}}', '{{ga event label}}', {{ga event value}}]);
</script>
Run Code Online (Sandbox Code Playgroud)
第二个事件将被推到_gaq前一个事件的标签和值.
如何处理这类案件?
对于那些想知道的人,我需要能够在某些点触发同一事件上的不同标签,这就是为什么我想要这种"动态"解决方案,但是dataLayer像那样持久化会搞乱规则.
这是我测试这个的方法.
这就是我所说的持久性.为了避免这个,我只能拿出不同的事件类型,如gaCustomEvent,gaCustomEventWithLabel,gaCustomEventWithOption等等,然后规则和标签,对于那些每一个.那太荒谬了,你不同意吗?
小智 7
您可以将对象推送到dataLayer,其中包含与单个事件相关的所有信息,例如:
dataLayer.push({
'gaEvent':{
'category': 'foo',
'action': 'bar',
'label': 'blah blah blah',
'value': 1,
'nonInteraction':false
}
});
Run Code Online (Sandbox Code Playgroud)
然后,您可以在GTM中设置相关的宏来收集和使用相关字段,这些字段不会被转移到任何将来的事件,因为只使用推入dataLayer的对象的最后一个值.
| 归档时间: |
|
| 查看次数: |
4671 次 |
| 最近记录: |