正确实现dataLayer与否?

时间:2015-06-25 14:13:48

标签: javascript jquery analytics google-tag-manager

我需要建议。目前,我有网站。主页上有书签而没有重新加载页面(onclick)。通常我不会有问题,但我无法捕捉有关像elementID,elementClasses等博彩公司的相关数据(不可能改变它)..我附加屏幕以获得更好的想法。网站有许多语言版本因此无法使用点击文本。

我建议在每个书签上使用它:

  1. onclick="dataLayer.push({'event': 'name-of-bookmark'});"
  2. 触发器 - >自定义事件 - >开启:事件名称=书名名称
  3. 标签 - > UA - 活动...... - >开启:书签触发器
  4. 这是正确的方法还是你有更好的解决方案?

2 个答案:

答案 0 :(得分:0)

是谷歌分析专家。说到GTM,dataLayer是信任事件的最佳人选。 是的,语法onclick="dataLayer.push({'event': 'name-of-bookmark'});"是正确的,您可以使用该事件触发您的事件

答案 1 :(得分:0)

我总是希望尽可能避免使用内联javascript,我相信可以在不使用任何dataLayer推送的情况下获得您想要的内容,这样可以实现更清晰的实现。关键是自定义dataLayer值宏。


一个简单的例子

让我们看一下没有任何类或ID的html示例。

<div>
    <h2>My First Title</h2>
    <a href="#"><img src="picture.png" /></a>
</div>
<div>
    <h2>My Second Title</h2>
    <a href="#"><img src="picture.png" /></a>
</div>

我们想要跟踪某人点击第一个链接的时间,但似乎不是我们可以用来捕获链接的任何默认宏。这是自定义宏的来源

使用以下设置创建新宏:

Macro Name = "elementFirstSiblingInnerHTML"
Type = "DataLayer Variable"
Variable Name = "gtm.element.parentElement.firstElementChild.innerHTML"

然后,您可以使用以下设置创建触发器:

Trigger Name = "My First Title Click"
Choose Event = "Click"
Fire On {{elementFirstSiblingInnerHTML}} equal to "My First Title"

Viola,你现在有一个触发器,当有人点击第一个链接没有任何类,ID等时。宏通过查看元素的父亲的第一个孩子的innerHTML来工作。等于&#34;我的第一个标题&#34 ;;触发触发器。

这只是一个例子,但你几乎可以通过点击设置的gtm.element DataLayer变量访问整个DOM。它只围绕点击的元素。


创建您自己的dataLayer值宏

这是一个重要的提示。在开发宏时,能够在Web控制台中对其进行测试非常有用。但是,控制台不支持与GTM门户相同的点符号。所以为了在控制台中开发而不是

gtm.element.parentElement.firstElementChild.innerHTML

你会使用(假设click事件是dataLayer中的第8个事件)

dataLayer[7]["gtm.element"].parentElement.firstElementChild.innerHTML

如果您向我提供指向您所指的页面的链接,我可能会想出一个适用于您的情况的自定义宏。此外,这里也是一个很棒的博客。 http://www.simoahava.com/analytics/macro-magic-google-tag-manager/(列表中的第14项)