web-dev-qa-db-ja.com

Googleタグマネージャースクリプトを外部のjsファイルに保存できますか?

このような私のデフォルトのインデックスhtml:

<html>

<head>

    <meta name="google-site-verification" content="****************" />

    <script async src="https://www.googletagmanager.com/gtag/js?id=AW-7**4*7***"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.Push(arguments);}
  gtag('js', new Date());

  gtag('config', 'AW-7**4*7***');
</script>
</head>

<body>

<script src="/Content/assets/script/combined.min.js" type="text/javascript"></script>

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-*4**0**6-*"></script>

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.Push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-*4**0**6-*');
</script>
</body>

</html>

だから私はグーグルタグマネージャーを使用しています

しかし、スクリプトのインラインjsを外部jsファイル(combined.min.js)に移動したいと思います。したがって、デフォルトのhtmlにはインラインjsはありません。これは私のウェブサイトを最適化することです

それ以外にも、呼び出しjsを変更したいと思います。そのため、フォルダーからjsファイルを呼び出します。オンラインではありません。このように:

例えば ​​:

私はこのように変更したいです:

ファイルの内容を自分のフォルダにコピーしました

したがって、このような結果:

<html>

<head>

  <meta name="google-site-verification" content="****************" />

  <script async src="/Content/assets/script/gtag-aw.min.js"></script>
</head>

<body>

<script src="/Content/assets/script/combined.min.js" type="text/javascript"></script>

<script async src="/Content/assets/script/gtag-ua.min.js"></script>

</body>

</html>

そのようにできますか?それとももっと良い方法がありますか?

更新

私はcombinate.min.jsを次のように作成しました:

  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.Push(arguments);}
  gtag('js', new Date());

  gtag('config', 'AW-7**4*7***');

  ...
  /* some javascript files, for example jquery, jquery ui, custom js and others */
  ...

  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.Push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-*4**0**6-*');

どう思いますか?

1
Success Man

はい。 JSのように外部ファイルからロードできます。

ただし、読み込み順序に注意してください。 GTMがページの読み込みが完了する前に発生するイベントをピックアップする必要がある場合、別のファイルからの呼び出しは、まだ読み込まれていないことを意味する可能性があります(これは、何を追跡しているか、およびページの読み込み時間の長さに大きく依存します)。

1
GeoffAtkins

指定されたコード例は、Googleタグマネージャースクリプトではありません。グローバルサイトタグのgtag.jsトラッキングコードスニペットであり、AWとGAを組み合わせて1つのスニペットにする必要があります

グローバルサイトタグ(gtag.js)は、JavaScriptタグ付けフレームワークおよびAPIであり、これを使用して、Google広告、キャンペーンマネージャー、ディスプレイ&ビデオ360、検索広告360、Googleアナリティクスにイベントデータを送信できます。さまざまな製品の複数のタグを管理する代わりに、gtag.jsを使用して、最新の測定機能と統合が利用可能になったときに、より簡単に活用できます。

GTMまたはgtag.jsを使用する必要がありますか?
https://developers.google.com/gtagjs#google_tag_manager_or_gtagjs

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-*4**0**6-*"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.Push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-*4**0**6-*');
  gtag('config', 'AW-7**4*7***');
</script>

複数の製品に単一のスニペットを構成する:
https://developers.google.com/gtagjs/devguide/add

スクリプトがページのレンダリングを待ってから、さまざまな製品へのトラッキングヒットやコンバージョンヒットを発生させる必要がある場合は、データが不正確になる可能性があることに注意してください

1
Bronwyn V