2017-08-28 18 views
2

私はGTM(Googleタグマネージャ)を使用しているサイトで作業しています。 GTMには、自国で許可されていないサイトのスクリプト(タグ)が含まれています。コンソールにエラーが発生し、このタグの読み込みを停止します。私はGTMアカウントにアクセスできないので、私はjsでそれを行うべきです。Googleタグマネージャープログラムでカスタムタグを読み込まないようにするにはどうすればよいですか?

dataLayer = [{ 
     'gtm.blacklist':['html'] 
    }]; 

それはまた、他のカスタムタグを読み込む停止します。私は、コードの下にしようとすると、それはロードを停止するため、このスクリプトはCustom HTML Tagです。 特定のカスタムタグのロードをプログラムで停止する方法を教えてください。

+0

ブラックリストに登録すると、すべてのカスタムスクリプトが禁止されます。この特定のタグは、ページの読み込みや特定のトリガーからトリガーしますか?おそらくトリガーを分離することは可能ですか? –

+0

@CarlK GTMを初めて使ったので、わからないけど、ページロード中にこのコンソールエラーが表示されるので、ページの読み込みが正しく行われるはずです。 –

+0

これはおそらくページロードです。それはまだ火事が発生する可能性があります。あなたは 'window.dataLayer'をチェックして、どのイベントがGTMに渡されたかを確認し、 –

答えて

1

と思います。 GTMコードを調べると、insertBefore関数を使用してScript要素をWebサイトに追加することができます(これはいつでも変更できます)。理論的には、ネイティブ関数にコードを追加して、特定のソースからのスクリプトのロードを防ぐことができます。あなたがGTMをロードする前に、たとえば、次のコードを実行することができます。

Node.prototype.insertBefore = (function() { 
    var cached_function = Node.prototype.insertBefore; 

    return function(script) { 
     if(script && script.src.indexOf("www.somesource.com/script.js") !== -1){ //change to src you don't want to load on your page 
      return false; //don't add the script 
     }else{ 
      var result = cached_function.apply(this, arguments); // use .apply() to call native function 

      return result; 
     } 
    }; 
})(); 

を(から取らコード:Adding code to a javascript function programmatically

私はこのコードをテストしていないので、私は、適切なしでそれを行うには、あなたに助言わけではありませんテストするか、まったくやりなおすことに決めたかもしれません(読む前に:Why is extending native objects a bad practice?)。私はEikeの答えに同意しますが、私が言っているのは、プログラムでカスタムタグの読み込みを防ぐことができるということだけです。

+0

を確認できます。ありがとうございました。それは私があなたの答えに追加した小さな修正で動作します。 'insertBefore'は' src'属性のない要素についても呼び出すので、 'src'属性が存在するかどうかを調べるべきです。そして、私はGTMアカウントからそのタグを削除するまで、クイックフィックスとしてそれを使用します。 –

+0

素晴らしい!私はそれがあなたのためにうれしいです。 – Matus

1

特定のカスタムHTMLをプログラムでブロックすることはできません。その理由の1つは意味がないことです。「カスタムHTML」は「サイトのコンテキストで実行される任意のコード」を意味するため、コードを別のHTMLタグに入れてそこから実行することができます。

サイトで実行されているGTMのインスタンスを管理していないということは、Googleが意味のある方法で対応できるユースケースではないことです(if GTMを管理しているだけでタグを削除します)。

特定の起点のスクリプトを許可しないようにする場合は、Content Security Policies(このスクリプトはGTMやその他のソースから実行されても問題ありません)を調べることができます。しかし、CSPは実装が難しいことが知られています(implement them from within GTMが可能ですが、これは限られたテストのためだけに使用できます)。

関連する問題