GTM 使用エラー

皆様、こんにちは。

アプリの設定で正しい GTM ID(例:GTM-XYZXYZ)を含む gtm container id を準備して使用し、かつ特定のドメインをホワイトリストに追加した場合(Integrating Google Tag Manager with Google Analytics のマニュアルに従って)、以下の問題が発生します。

gtm.js のコアスクリプトから呼び出される https://d1i8vaoc4ts7hj.cloudfront.net/5e3fcb4db448a78908a4671b6fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js スクリプトの読み込みと取得に失敗し、エラーメッセージ GET https://d1i8vaoc4ts7hj.cloudfront.net/5e3fcb4db448a78908a4671b6fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js net::ERR_FAILED および {message: "remote script failed https://d1i8vaoc4ts7hj.cloudf…fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js"} が表示されます。

同様の問題が、NetworkFirst.mjs から呼び出された際にも発生します(Uncaught (in promise) no-response: no-response :: [{"url":"https://d1i8vaoc4ts7hj.cloudfront.net/5e3fcb4db448a78908a4671b6fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js"}])。

どなたかアドバイスをお願いできませんでしょうか。

よろしくお願いいたします。
T

Googleのサポートドキュメント[Use Tag Manager with a Content Security Policy  |  Tag Platform  |  Google for Developers]にあるように、'unsafe-inline'を追加してみてください。これで問題が解決すれば、その手順を私たちのハウツーガイドに追加します。

つまり、コンテンツセキュリティポリシーの script-src 配列に 'unsafe-inline' https://www.googletagmanager.com を追加すべきということでしょうか?

もしかすると、あなたの返信の意味を誤解しているかもしれませんが、私の環境では動作しません。

はい、ドキュメントにはそれが追加が必要と記載されています。

それでは許可が不十分な場合は、「https」で始まるものをすべて許可するように設定してみてください。

私も最近この問題に直面し、以下のようにして解決しました。なぜ発生したのかは完全には理解していませんでしたが、https:unsafe-inline を追加しました。これほど寛容な設定は、重要な何かを回避しているようにも思えますが、これが問題を解決しました。

Google がこれを必要としているなら、プラグイン側で自動的に設定されるべきでしょう。もし私のサイトが壊れたなら、すべてのサイトが壊れる(アップグレード時に再び?)と考えてしまいます。

GTM サポートはプラグインではなく、Discourse コアの設定です。現在、その設定の説明には CSP に関する注記があります。

しかし、おそらくあなたは広告プラグインのことをお考えのようですが、これは別問題です。このプラグインには複数の広告オプションが含まれていますが、プラグインをインストールした時点ではすべて無効化されています。各設定には、ユーザーが CSP について理解できるよう、おそらく注記を追加すべきでしょう。

私もそう思います!この件についてはあえて学ぼうとしていませんでした。GTM、AdSense、DFPの違いはわかりません。:wink:

そうかもしれませんね。私が知っているのは、あるサイトで Google 広告が正常に動作していたところ、アップデートが行われた後に機能しなくなったことです。その責任は私に押し付けられました。

もし Google [ad manager|dfp|ad plugin|gtm] が、[Google|Discourse] の何らかの変更により CSP 設定の変更を必要とする場合、面倒な Dashboard の通知の一つでも作成してくれると嬉しいのですが。