Javascript 是否正确实现数据层?

Javascript 是否正确实现数据层?,javascript,jquery,analytics,google-tag-manager,Javascript,Jquery,Analytics,Google Tag Manager,我需要建议。目前,我有一个网站。主页上有书签,但没有重新加载页面(onclick)。通常情况下,我不会对它有任何问题,但我无法获取有关bookmars的相关数据,如elementID、ElementClass等(不可能更改它)。。为了更好的主意,我附加了屏幕。网站有许多语言版本,因此不可能使用点击文本 我建议在每个书签上使用此选项: onclick=“dataLayer.push({'event':'name of bookmark'});” 触发器->自定义事件->触发:事件名称=书签名称 标

我需要建议。目前,我有一个网站。主页上有书签,但没有重新加载页面(onclick)。通常情况下,我不会对它有任何问题,但我无法获取有关bookmars的相关数据,如elementID、ElementClass等(不可能更改它)。。为了更好的主意,我附加了屏幕。网站有许多语言版本,因此不可能使用点击文本

我建议在每个书签上使用此选项:

  • onclick=“dataLayer.push({'event':'name of bookmark'});”
  • 触发器->自定义事件->触发:事件名称=书签名称
  • 标签->行动单位-事件…->启动:书签触发器

  • 这是正确的方法还是你有更好的解决方案?

    我是谷歌分析专家。谈到GTM,数据层是事件中最值得信任的人。
    是的,语法
    onclick=“dataLayer.push({'event':'name of bookmark'});”
    是正确的,您可以使用该事件触发事件。我是谷歌分析专家。谈到GTM,数据层是事件中最值得信任的人。
    是的,语法
    onclick=“dataLayer.push({'event':'name of bookmark'});”
    是正确的,您可以使用该事件触发您的事件

    我总是希望尽可能避免使用内联javascript,我相信不使用任何数据层推送就可以得到您想要的内容,这将导致更干净的实现。关键是自定义数据层值宏


    一个简单的例子 下面的html示例没有任何类或ID

    <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来工作,它等于“我的第一个标题”;扣动扳机

    这只是一个示例,但您几乎可以通过点击设置的gtm.element数据层变量访问整个DOM。它只是以单击的元素为中心


    创建自己的数据层值宏 这里有一个重要的提示。在开发宏时,能够在web控制台中进行测试非常有用。但是,控制台不支持与GTM门户相同的点符号。所以为了在控制台中开发而不是

    gtm.element.parentElement.firstElementChild.innerHTML
    
    您将使用(假设click事件是数据层中的第8个事件)


    如果你给我一个链接到你所指的页面,我可能会想出一个适合你情况的自定义宏。此外,这里还有一个关于这个主题的很棒的博客。(他列表中的第14项)

    我总是尽量避免使用内联javascript,我相信不使用任何数据层推送就可以得到您想要的东西,这将导致更干净的实现。关键是自定义数据层值宏


    一个简单的例子 下面的html示例没有任何类或ID

    <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来工作,它等于“我的第一个标题”;扣动扳机

    这只是一个示例,但您几乎可以通过点击设置的gtm.element数据层变量访问整个DOM。它只是以单击的元素为中心


    创建自己的数据层值宏 这里有一个重要的提示。在开发宏时,能够在web控制台中进行测试非常有用。但是,控制台不支持与GTM门户相同的点符号。所以为了在控制台中开发而不是

    gtm.element.parentElement.firstElementChild.innerHTML
    
    您将使用(假设click事件是数据层中的第8个事件)

    如果你给我一个链接到你所指的页面,我可能会想出一个适合你情况的自定义宏。此外,这里还有一个关于这个主题的很棒的博客。(他名单上的项目14)