如何从DataLayer对象获取值

我希望从Google标记管理器的DataLayer对象中获取一些值。在Chrome标签帮助中,我得到这样的价值

[
  {
    "gtm.start": 1503053374849,
    "event": "gtm.js",
    "gtm.uniqueEventId": 0
  },
  {
    "event": "gtm.dom",
    "gtm.uniqueEventId": 1
  },
  {
    "event": "gtm.load",
    "gtm.uniqueEventId": 2
  },
  {
    "Linker": "_ga=53655374"
  }
]

I need to get the “Linker” value. i tried dataLayer[3].Linker but it gives me “undefined” or blank also same for dataLayer[1].event当我尝试时,它在空白不返回值=“gtm.dom”)dataLayer[0].event返回正确'gtm.js'

请帮助我如何获得“链接器”价值

使用要访问对象的方法是正确的 - 假设对象运行该代码时可用,并且未通过异步方法检索。帮助您,我们需要查看您的代码检索对象Rory McCrossan
Trey.dataLayer[3].Linker拉姆加拉克
@ rorymccrossan我正在尝试在我的页面页脚上打印这个并保存在var中的值。以表单提交的任何方法如何提交?rakesh sharma

回答 4

  1. 赞同 9

    您可以通过Google标记管理器JavaScript-API访问推送的数据。变量部分将是GTM容器的Container-ID。让你摆脱正确的。

    google_tag_manager['<container-id>'].dataLayer.get('gtm.start');
    //result e.g.: 1210115541132
    

    The result will be the last value of the datalayers state

    Moritz
  2. 赞同 2

    print the表中的数据层console.table(dataLayer);请注意indexValue将显示Linker.

    enter image description here

    Then you may use dataLayer[XXX]as.XXX展示indexvalueLinker.

    Husain Al Faraj
    I am getting right dataLayer[3].Linker沉淀功能,但仍然是OnSubmit,我越来空了rakesh sharma
    注意某些情况下某些形式可能不会触发asubmitEvent,例如角度click-ng.首先确保submitEvent通过检查来触发$('#form').on('submit', function(){console.log})如果没有,那么您可能需要更改按钮type=submit触发器submit$('#button').on('click', function(){$('#form').trigger('submit')})Husain Al Faraj
    这是一个旧问题,但有没有办法找到与事件名称='某些值'的DataLayer事件的索引?Si8
  3. 赞同 0

    最好的方法是使用Google标签管理器本身,这就是它的设计。为此,请转到GTM接口(TagManager.Google.com)并创建一个不可行DataLayer类型。然后,您可以在选择的标签中使用此变量来将其值传递给第三方系统。

    Faridghar
  4. 赞同 0

    I've been just looking for an answer to a similar question and see you haven't found a definitive solution.

    I've found this article by Simo Ahava在从GTM访问对象变量时,将突出显示Vanilla JS和GTM之间的差异。

    根据该文章,您应该能够使用它并获得值:

    dataLayer.3.Linker

    Paulcik