【问题标题】:DataLayer.push is not working on External JavaScriptDataLayer.push 不适用于外部 JavaScript
【发布时间】:2019-12-11 06:23:56
【问题描述】:

如果我们在外部 JavaScript 中使用 dataLayer.push 和 GTM 代码,则 dataLayer.push 值不会触发

如果我们在 HTML 中使用 dataLayer.push 和 GTM 代码,则 dataLayer.push 值会按预期触发

下面是我们在外部 JavaScript 中使用的代码。

如有任何疑问,请告诉我们

$(document).ready(function() {
    window.dataLayer = window.dataLayer || [];

    function getMetaContent(name) {
        name = document.getElementsByTagName('meta')[name];
        if (name != undefined) {
            name = name.getAttribute("content");
            if (name != undefined) {
                return name;
            }
        }
        return "";
    }
    var countryLanguage = getMetaContent('countryLanguage');
    var pageType = getMetaContent('pageType');
    var audiencePage = getMetaContent('audiencePage');
    var userlogin = "";

    if (localStorage.getItem("login") !== null) {
        userlogin = "identifié";
    } else {
        userlogin = "Non identifié";
    }
    console.log("start");

    window.dataLayer.push({

        'countryLanguage': 'english',
        'pageType': pageType

    });
    console.log("end");

    universal_variable = {
        "page": window.dataLayer
    };

});

【问题讨论】:

    标签: javascript jquery google-analytics analytics


    【解决方案1】:

    你还没有对这篇文章提出任何问题,不过,我想我可以提供帮助,因为我自己也遇到了这个问题。

    我所做的是将我的 GTM 容器 sn-p 放在单独的 .js 文件中,并在相关 HTML 文件的开头 <head> 标记附近引用它。

    然后在另一个JS文件中使用:

    dataLayer.push({'var_name': 'value'});
    

    确保在带有 GTM 容器 sn-p 的 JS 文件之后引用此文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 2023-03-29
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      相关资源
      最近更新 更多