2017-07-28 38 views
1

我設置了Google代碼來檢查我的用戶正在搜索的郵編。我使用了自定義的Javascript變量類型來設置這個變量。Google代碼管理器 - 未在自定義Javascript中設置有時

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

當用戶轉到包含「locations.aspx?term」的地址時,我觸發了該標記。下面是一個例子網址:

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

我應該怎麼找調試爲什麼收益的50%(未設置)在谷歌Analytics(分析)?回報的另一半回來就好了。

謝謝!

回答

1

。在你的JS兩個問題:

  • 它不是在Internet Explorer支持
  • 如果網址不具有zip PARAMS 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

雖然這不會解決你的JavaScript問題,GTM有一個內置的方式來獲得查詢參數,在我的經驗是可靠的並可能會解決您的問題。您可以使用URL變量類型並將「組件類型」設置從「完整URL」更改爲「查詢」,然後輸入您的查詢鍵(url參數的名稱)。這將返回參數的值,如果不存在則返回「undefined」。

get query GTM variable

相關問題