簡體   English   中英

Google跟蹤代碼管理器自定義JavaScript

[英]Google Tag Manager Custom JavaScript

我正在嘗試設置Google標記管理器變量以讀取URL參數(如果存在),如果不存在,請檢查該變量是否存在於數據層中,如果不存在則返回false。

但是,GTM正在給出一個解析錯誤,指出缺少')'。 任何幫助將不勝感激,不確定是我的代碼還是GTM是否需要特定的語法?

    function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

function () {
var hid = getParameterByName('hid').length();
if (hid > -1) {
  return getParameterByName('hid');
}
else
  if (dataLayer[0].emailHash.length >-1) {
return dataLayer[0].emailHash;
  }
else
{
  return false
}
}

如果將其分為兩個Custom JS變量,則可能會更好,因為您沒有操作全局變量:

變量1:getParameterByName:

function() {
    return function (name){
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
}

變量2:testDataLayer:

function () {
    var fn_getParameterByName = {{getParameterByName}};
    var hid = fn_getParameterByName('hid');
    if (hid.length > -1) {
        return fn_getParameterByName ('hid');
    }
    else
        if (dataLayer[0].emailHash.length >-1) {
            return dataLayer[0].emailHash;
        }
    else
    {
      return false
    }
}

嘗試使用此代碼(您需要輸入腳本標簽):

<script type="text/javascript">
(function (){
    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
         return results === null ?  "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }

    var hid = getParameterByName('hid').length();
    if (hid > -1) {
        return getParameterByName('hid');
    } else if (dataLayer[0].emailHash.length > -1) {
        return dataLayer[0].emailHash;
    } else {
        return false;
    }    
})();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM