Google跟踪代码管理器 - 有时不在自定义Javascript上设置

时间:2017-07-28 16:41:48

标签: javascript google-analytics google-tag-manager

我设置了一个Google标签来检查我的用户正在搜索的邮政编码。我使用 Custom Javascript 变量类型来设置此变量。

 function() {
    var url = new URL({{Page URL}});
    var zip = url.searchParams.get("zip");
    return (zip);
  }

当用户访问包含“locations.aspx?term”的地址时,我触发了标记。以下是一个示例网址:

zero is not null

我应该寻找什么来调试为什么50%的回报在Google Analytics中(未设置)其他一半的回报只会回来细

谢谢!

2 个答案:

答案 0 :(得分:1)

你的JS有两个问题:

  • Internet Explorer
  • 不支持
  • 如果url没有带zip参数的querstring,则会返回null。这将导致(not set)

最好的方法是:

function () {
    function getURLParameter(name) {
        return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [null, ''])[1].replace(/\+/g, '%20')) || "";
    }
    var zip = getURLParameter('zip');
    return zip;
}

答案 1 :(得分:1)

虽然这不能解决您的JavaScript问题,但GTM有一种内置的方式来获取查询参数,这些参数在我的经验中是可靠的并且可能会解决您的问题。您可以使用URL变量类型并更改"组件类型"设置来自"完整网址"到"查询",然后输入您的查询键(url参数的名称)。这将返回参数的值,或者" undefined"如果它不存在。

get query GTM variable