Google 标签管理器 - 未设置自定义 Javascript 偶尔

Google Tag Manager - Not Set on Custom Javascript Occasionally

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

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

我在用户访问包含 "locations.aspx?term" 的地址时触发了标签。这是一个例子 URL:

https://www.example.com/locations.aspx?term=64544&zip=64160&lat=43.3414758&lng=-0.1509269000000586

我应该寻找什么来调试为什么 returns 的 50% 在 Google Analytics 中是 (未设置) ? 另一半 returns 回来就好了。

谢谢!

你的JS有两个问题:

  • Internet Explorer 不支持它
  • 如果 url 没有带有 zip 参数的查询字符串,它将 return 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;
}

虽然这不能解决您的 JavaScript 问题,但 GTM 有一个内置的方法来获取查询参数,根据我的经验,该方法是可靠的并且可能会解决您的问题。您可以使用 URL 变量类型并将 "component type" 设置从 "Full URL" 更改为 "query",然后输入您的查询键(url 参数的名称) .这将 return 参数的值,或者 "undefined" 如果它不存在。