このJSコードは、フレームワーク固有の変数 に依存しているため、GTMタグに移動することはできません。
実際の警告のようには聞こえません。あなたはdataLayerに変数をプッシュし、カスタムイベントであなたのタグを引き起こす可能性:
dataLayer.push({
'data' : myUniqeVars,
'event' : 'mySpecialEvent'
});
あるいはグローバルJavaScriptの変数として変数にアクセスします。
また、ページビュー(GTMコードが確実に読み込まれる最も早い時点)で発生したカスタムhtmlタグでグローバルなjavascript変数(例:window.startMyTag = true)を設定して、恐ろしい解決策になるでしょう(あなたがリスナーを必要とするのは、GTMコードが非同期的にロードされているということです)、これはあなたのコードが起動せず、gtm_tag_managerがコンソールに表示される理由と思われます。 DOMがロードされた後)。
また、dataLayerの変更のリスナーを設定することもできます.GTMが発生する最初の操作の1つは、dataLayerにキーと値のペア「event:gtm.js」を配置することですあなたのコードを発射することができます(おそらく最良の考えではありません - あなたが状態を制御するマシンを持っていれば、外部から状態を混乱させたくないかもしれませんが、唯一のリストであれば安全です。 GTMイベントを監視するためにdataLayerメソッドを使用します。GTMイベント自体はすでに実行されているため、既に変更されたメソッドを上書きすると破損します)。
私はGTM内からコードを実行できないと思うのはなぜだろうかと思いますが、例を挙げると本当に感謝しています。
コンテキストはSaaS eコマースプラットフォームです。たとえば、カテゴリページでは、クリックされた商品に関連するeコマースデータを送信します。もっと見ると正しいかもしれませんが、タグ内で動作するように修正することができます。 – rjfrizz
値がJS変数としてグローバルスコープのどこかに存在し、同じページにGTMコードがある場合、タグ内からコードを取得できることはほぼ確実です。 –