簡體   English   中英

如何根據HTML中包含的特定腳本在Google跟蹤代碼管理器中排除代碼

[英]How to exclude tag in Google Tag Manager based on specific script include in HTML

我必須修改Google跟蹤代碼管理器容器,並且在GTM中非常菜鳥。 IE8和使用Fusion Charts的頁面存在問題。 通過這種組合,我在gtm.js中遇到了一個JavaScript錯誤,並且發現它在Form Submit Listener中。 所以我認為我會在該標簽上添加一個例外。 該異常將是“ If isIE8和hasFusionChartsControl”。 這兩個是我在GTM中定義的“自定義Javascript”類型的變量,如下所示:

contientFusionCharts:

function() { 
  var file = "fusioncharts.js";
  var scripts = document.getElementsByTagName("script");
  for(var i = 0; i < scripts.length; i++) {
    if (scripts[i].src != undefined && scripts[i].src.substr(scripts[i].src.length-file.length) == file) {
      return true;
    }
  }

  return false;
}

estIE8:

function() {
  var isIE = !!document.documentMode; // At least IE6
  var rv = -1; // Return value assumes failure.
  if (isIE) {
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
  }

  return (rv > -1 && rv <= 8.0);
}

我已經測試了這些javascript函數,它們在IE8上運行良好。 現在,我定義了一個觸發器: 我的GTM觸發器是“頁面查看事件”,在“加載的窗口”上觸發並在pageHasFusionChartsControls和isIE8上觸發

現在,我的標簽只添加了一個例外: 在此處輸入圖片說明

對我來說,這看起來不錯,但仍然無法正常工作。 我可以證明此標簽存在問題,因為我創建了一個異常,該異常可以查看特定頁面的URL,並且當我瀏覽該特定頁面時,不再引發js錯誤。 但是我不想創建指定特定頁面的異常,因為這是一個Sharepoint網站,用戶可以根據需要創建頁面。 因此,我不想在他們每次在頁面中使用Fusion Charts控件時都添加例外。 因此,我認為尋找適合Fusion Charts的特定html標記將是一個好主意,並且得出的結論是,尋找包含Fusioncharts.js的腳本將是一個好主意。

如果您對為什么它不起作用以及替代解決方案有一個解釋,那就太好了! 謝謝!

為了將來參考,這是我在Simo Ahava的google產品論壇上收到的答案:

異常只會阻止您為其設置的事件。 因此,您的異常將僅阻止“窗口已加載”事件。 您的標記是否在該事件上觸發? 如果您的代碼是在“所有頁面”事件上觸發的,則它使用的是“頁面視圖”,而不是“窗口加載”事件,因此您需要相應地更改Exception觸發器以匹配該代碼的事件。

或者,您可以只創建一個全局異常,該異常會阻止所有與其他條件匹配的事件。 您可以使用“自定義事件觸發器”將事件名稱設置為。*(並檢查RegEx)。

http://www.simoahava.com/gtm-tips/block-your-tags-with-trigger-exceptions/

西摩

我選擇使用事件名稱為。*(使用RegEx)的自定義事件觸發器來創建全局異常,並且效果很好。

暫無
暫無

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

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