【问题标题】:Fetch value of a specific Key from dataLayer Google Analytics从 dataLayer Google Analytics 中获取特定键的值
【发布时间】:2021-09-30 11:22:52
【问题描述】:

一个网站将大量参数存储到 dataLayer 谷歌分析和我的一个 javascript 函数中,我正在考虑使用其中一个参数并使用下面的代码在属性之间进行迭代

    var articleId=0;
    var brandId=-1;
    $.each( dataLayer, function( key, value ) {
      console.log( key + ": " + JSON.stringify(value) );
    });

JSON.stringify(value) 中的一些值如下所示

    {"BrandID":0}
    {"BrandName":"  Group"}
    {"Title":"  announces electric   cranes"}
    {"PageType":"Article"}
    {"ArticleID":8009988}
    {"ArticleTitle":"  announces electric   cranes"}
    {"ArticleLayout":"Standard"}
    {"ArticleTypeID":"1"}
    {"ArticleTypeName":"Article"}
    .......................................

还有更多

如何从中获取 BrandID 和 ArticleID? 有没有办法在不遍历所有数据层的项目的情况下做到这一点

【问题讨论】:

    标签: javascript jquery google-datalayer


    【解决方案1】:

    谷歌标签管理器api中有一个内置方法来获取值:

    google_tag_manager['<container-id>'].dataLayer.get('gtm.start');
    

    container-id 是您的 GTM 容器的名称,类似于 GTM-XXXXXXX

    编辑:为了从一个页面上的多个容器中获取值,您可以在获取它们的 ID 后遍历每个容器:

    类似:

    const containerIds = Object.keys(google_tag_manager).filter(key => key.includes('GTM-'));
    
    const values = containerIds.map(id => google_tag_manager[id].dataLayer.get('gtm.start'));
    
    console.log(values); // [value1, value2, ...]
    
    

    【讨论】:

    • 很遗憾页面中存在多个containerID
    • 编辑了一个快速示例,说明如何循环多个容器。它在 ES6 中,因为我不熟悉 jQuery,但我确定 jQuery 也可以这样做
    猜你喜欢
    • 1970-01-01
    • 2022-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多