Googleタグとは結局何なのか？+ Googleタグ関連情報まとめ

Googleタグとは何なのかについて考えてみる。
私はGA4の計測設定をGTMにて行う際に使用するものとしか捉えていなかった。
この記事ではGoogleタグとは何なのかを説明した後、働きとGoogleタグにて設定できる項目について見ていく

# ▼結論
### Googleタグとは
Webサイトに追加することで、Googleの各種サービス（GA4、広告など）と連携し、訪問者の行動データを一元管理・分析できるタグ。

### できること
- GA4やGoogle広告などのサービスに対して**一元的にデータを送信**できる
- 各ツールの画面上からGoogleタグ経由で共通の設定を行うことができる

※Googleタグの設定を変更できるツールは以下のみ
- Google 広告
- Google アナリティクス
- キャンペーン マネージャー 360

#### Googleタグにて共通で設定できる設定
- 自動イベント検出を管理する
- ドメインの設定
- ユーザー提供データ機能を許可する
- 内部トラフィックの定義
- 除外する参照のリスト
- セッションのタイムアウトを調整する
- Cookie の設定をオーバーライドする
- 同意モードのオーバーライドを設定する
- デフォルトの同意設定を管理する
- Google サービス全体でのデータ使用を管理する

### ベストプラクティス 
Googleタグを1つのGoogleタグに統一する

----------------------------------------------------

まずGoogleタグとは何かを見ていき、何が出来るのかという疑問を解消していく。あわせて、変更できる各種設定についても触れる。
また、Googleタグの歴史、ベストプラクティスについても見ていく。

# ▼Googleタグとは何かを理解する

https://support.google.com/google-ads/answer/11994839?hl=ja

Googleタグについての説明を公式ヘルプから引用する。

:::note info
Google タグ（gtag.js）は、ウェブサイトに追加するだけで Google のさまざまなプロダクトやサービスを使用できるようにする、統一されたタグです。単一の Google タグをウェブサイト全体で使用すると、Google サービス アカウントごとに複数のタグを管理する代わりに、タグを複数のリンク先に接続できます
:::

 引用からも分かるように、GoogleタグはGoogleのさまざまなプロダクトやサービスを使用できるようにする統一されたタグである。
 GA4の計測設定の際にGoogleタグを初めて使用する人は多いだろう。しかし、GoogleタグはGA4固有のものではなく、統一されたタグであることに注意したい。
GA4の計測設定の際に他のGoogleサービスにおいても使えるGoogleタグの初回作成を行っているだけなのである。

一つのGoogleタグに対して設定を行うと、そのGoogleタグに紐づけたサービスに対してもその設定が適応されるなど複数サービスの設定を一括で行えるものである。また、その一つのGoogleタグにて複数サービスに一括で情報を送ることが出来るのもGoogleタグの特徴である。

## Googleタグの歴史

以下のようにwebサイト上で収集した情報を送信する仕組みが進化してGoogleタグへとなった

2005年：urchin.jsというタグ
PV数やセッション数が中心

2009年：ga.js
ページの表示速度への影響が軽減された

2012年：analytics.js
UAの時代。クロスドメインなどが行えるように

2017年：gtag.js
グローバルサイトタグとも言われる
複数のGoogleサービスとの連携が容易になった

2020年～：**Googleタグ**(内部はgtag.js)
GA4がリリース
現在はこれが使われている

## Googleタグの内部処理
内部でgtag.jsを使っている。これはJavaScriptフレームワークである。
このJSが読み込まれると、訪問者の行動データを取集し、指定したGoogleサービスにデータを送信

### 具体的な処理の流れ

1. ページが読み込まれると、Googleタグのスクリプトが実行される
2. `window.dataLayer`という配列に訪問者の行動データが格納される
3. `gtag()`関数がこのデータを対象のサービスに送信

### データ送信先制御のイメージ

configの方でGA4にデータを送信する基本設定を行い、実際に下のgtag()で送信を行う

```javascript
// GA4にデータを送信する設定
gtag('config', 'G-XXXXXX-1');

// イベントをGA4に送信する
gtag('event', 'sign_in', { 'send_to': 'G-XXXXXX-1' });

```

## Googleタグの仕組み

Google タグ（gtag.js）には、それひとつをウェブサイトに追加するだけで Google のさまざまなプロダクトやサービスを使用できるタグ ID が含まれている。
**複数サービス分のタグIDがセットになって追加されている**イメージ

## 何が出来る？
- Google の各サービスのアカウントごとにタグを管理するのではなく、ウェブサイト全体で単一の Google タグを使用できる
    - 「Googleタグとは何かを理解する」で述べた通り
- Google タグの設定を Google の各サービス（Google 広告、Google アナリティクス、Google タグ マネージャーなど）内から設定できる
    - 詳しくは後述
    - 以下3サービス内で行える
        - Google 広告
        - Google アナリティクス
        - キャンペーン マネージャー 360
- ページビュー数、クリック数、スクロール数などを、Google アナリティクスで自動的に測定できる
    - GA4の拡張計測機能がこれにあたる
        - 詳しくは後述
    - 自由に項目を選択できる

### Google タグ設定
https://support.google.com/analytics/answer/12131703#Event&zippy=%2Cmanage-automatic-event-detection%2Cgoogle-%E3%82%BF%E3%82%B0-%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC%E5%90%91%E3%81%91%E3%81%AE%E6%89%8B%E9%A0%86

以下の項目が設定できる。

| 設定 | 説明 | Google アナリティクスに関連 | Google 広告に関連 | キャンペーン マネージャー 360 に関連 |
|------|------|--------------------|----------------|----------------------------|
| 自動イベント検出を管理する | 関連付けられたリンク先での測定対象として、Google タグで自動検出するイベントの種類を設定します。(拡張計測機能がこれにあたる) | ○ | ○ | 現時点では関連なし |
| ドメインの設定 | クロスドメイン測定に含めるドメインのリストを指定します。 | ○ | ○ | ○ |
| ユーザー提供データ機能を許可する | Google タグで測定対象にユーザー提供データを含め、リンク先のサービスでそうしたデータを受け取るかどうかを設定します。 | 現時点では関連なし | ○ | ○ |
| 内部トラフィックの定義 | 内部として識別するトラフィックの IP アドレスを定義します。 | ○ | 現時点では関連なし | 現時点では関連なし |
| 除外する参照のリスト | トラフィックを受信しても参照とみなさないドメインを指定します。 | ○ | 現時点では関連なし | 現時点では関連なし |
| セッションのタイムアウトを調整する | セッションの最長時間を設定します。 | ○ | 現時点では関連なし | 現時点では関連なし |
| Cookie の設定をオーバーライドする | Cookie の有効期限と更新方法を変更します。 | ○ | 現時点では関連なし | 現時点では関連なし |
| 同意モードのオーバーライドを設定する | ウェブサイトのコードでデフォルトの同意設定をオーバーライドし、選択したすべての地域のデフォルトを「拒否」に設定します。 | ○ | ○ | ○ |
| デフォルトの同意設定を管理する | Google に送信されるデータについてユーザーから同意を得ているかどうかを示します。 | ○ | ○ | ○ |
| Google サービス全体でのデータ使用を管理する | 広告目的で欧州経済領域（EEA）のエンドユーザーの同意済みデータの取得を許可する Google サービスを選択します。 | ○ | ○ | ○ |

ここからはいくつかピックアップして設定項目について補足する

#### 〇自動イベント検出を管理する（GA4 拡張計測機能イベント）
https://support.google.com/analytics/answer/9216061

以下が自動で収集されるようになる
GA4の管理画面上で計測したい項目を選択できる

- ページビュー
    - パラメータ
        - page_location
        - page_referrer
- スクロール数
    - 垂直方向に 90% の深さまで表示された数
    - パラメータ
        - engagement_time_msec
    - ディメンション「スクロール済みの割合」に値が入る
        - 90 or 空白
- 離脱クリック、クリック
    - 外部ドメインに移動するリンクのクリック
    - パラメータ
        - link_classes
        - link_domain
        - link_id
        - link_url
        - outbound（ブール値）
            - 離脱かどうかのフラグ
- サイト内検索
    - URLクエリパラメータが含まれているかどうかで示される
    - search_termディメンションが反映される
- 動画エンゲージメント
    - Youtube動画を埋め込んだとき(JS API サポートが有効であれば)
    - イベント
        - video_start
        - video_progress
        - video_complete
    - パラメータ
        - video_current_time
        - video_duration
        - video_percent
        - video_provider
        - video_title
        - video_url
        - visible（ブール値）
- ファイルのダウンロード
    - ファイルに移動するリンクをクリックすると記録される
    - 次の正規表現に一致すれば記録される
        - `pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|
7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma`
    - パラメータ
        - file_extension
        - file_name
        - link_classes
        - link_id
        - link_text
        - link_url
- フォームの操作
    - form_start
        - ユーザがセッションで初めてフォームを操作した時
    - form_submit
        - フォームを送信した時
    - パラメータ
        - form_id
            - <form> DOM 要素の HTML id 属性
        - form_name
            - <form> DOM 要素の HTML name 属性
        - form_destination
            - フォームの送信先 URL
        - form_submit_text
            - 送信ボタンのテキスト（存在する場合）
            - (form_submitのみ)

#### 〇ユーザ提供データ機能を許可する
https://support.google.com/analytics/answer/14077171?hl=ja

GA4管理画面上から設定することで、
サイト上で入力したユーザのメールアドレスなどのデータをリンクした広告アカウントにエクスポート出来るようになる
※ユーザの同意は必要

また、送信するデータの設定も行える
ex)GTMでユーザ提供データを設定する

https://support.google.com/analytics/answer/14171268

##### この設定はなんのために行う？
ユーザー提供データの収集を使用すると、今後廃止される**サードパーティ Cookie に依存しない設定が可能になる**から。

メリット
- カスタマーマッチ
    - ユーザ提供データをGoogle広告のリマーケティングなどに活用でき、関連性の高いオーディエンスにリーチできる
- 拡張コンバージョンが使えるようになる
    - ハッシュ化された顧客データがGoogleデータと照合され、Cookieなどのユーザ識別子が使えない場合のデータ欠損が補完される
    - 結果的にコンバージョンモデリングと入札単価の最適化が強化される
- ユーザー属性とインタレスト カテゴリ
    - ファーストパーティ データと Google にログインしているユーザーの同意済みデータに基づいて、ユーザー属性およびインタレスト カテゴリに関するレポートが提供されます。これにより、サードパーティ Cookie に依存しない、長期的に有効な測定が可能になる

#### 〇除外する参照のリスト

ここにて指定したドメインから流入しても、参照とはみなさないという設定

流入元が指定したリストのドメインと一致する場合、ページのイベントに`ignore_referrer`パラメータが追加される

#### 〇同意モードのオーバーライドを設定する

選択した全ての地域のデフォルトが「拒否」になる。
国別に設定を変えることを目的としている。

※予め設定を行っていたものが完全に書き換わる点に注意

#### 〇デフォルトの同意設定を管理する

名前の通り同意設定をデフォルトではどうするかを指定する。
「いいえ」が初期設定となっている。

ウェブサイトやアプリがユーザーの同意に関する要件に関係なく動作する場合（同意モードを使用していない場合など）、またはすでに同意モードを実装している場合は、「いいえ。このデータには自動的に同意済みのマークを付けないでください。」を選択
ユーザーが同意するまでタグが読み込まれないように設定すると、Google に送信されるすべてのデータが同意済みとみなされる。「はい。このデータに自動的に同意済みのマークを付けます」を選択すると、Google に送信されるすべてのデータはユーザーの同意を得て投稿されており、同意済みのラベルを付ける必要があることを確認したものとみなされる

#### 〇Google サービス全体でのデータ使用を管理する

どの Google サービスに同意済みのエンドユーザー データの受け取りを許可するかを指定できる。「すべてのサービス」が初期設定となっている。


# ▼さいごに

## GA4と広告連携のベストプラクティスについて考える

よくある状況としてGA4とGoogle広告を両方使っていることが想定される。この際にGoogleタグをどう扱えばよいかを考えてみる。
結論、**一つのGoogleタグに統合**することが良いと思う。

GA4,広告共にアカウントを作ると異なるGoogleタグが作られるとイメージ出来る。

これではGA4とGoogle広告のデータが別々に収集され、別々にデータ送られることとなる。
これらを連携することでデータの統合が出来る。

方法としては、どちらかの管理画面上でGA4とGoogle広告をリンクすることにより行う。

一つ連携を実施する例を挙げる。
- GA4アカウントを作成し、初期設定を行う
- GTM経由でGA4の計測設定を行う
    - Googleタグを作成し、GA4と連携
- Google広告アカウントを作成する
- GA4管理画面上でGoogle広告アカウントをリンクさせる

※ GTMにてGoogle広告にデータを送るためのGoogleタグの作成は不要

イメージとしては、**GA4,Google広告共にアカウント作成時に測定IDが発行される。これをGoogleタグの設定の送り先に指定することでデータを送信する**
GTMにてGA4,Google広告両者のGoogleタグを作成してしまうと別々にデータが収集され、データが送信される。そのため、GA4とGoogle広告のデータを紐づけることは行えない。
それを防ぐため、片方だけGoogleタグを作成しそのGoogleタグに送り先の指定のみ追加する。すると、同じ場所にデータが送られるためデータの紐づけが行える。

↓gtagの設定のイメージ
```javascript
gtag('config', 'G-XXXXXX-1','AW-XXXXXX');
```

## 拡張計測機能とGoogleタグの構成パラメータにて相反する指定をしたらどうなるのか？

拡張計測機能とGoogleタグの構成パラメータの両方にて、`page_view`を送信するかどうかを設定できる。
そこで、拡張計測機能の`page_view`オフかつGoogleタグの構成パラメータの`send_pageview = "true"にて検証してみることを試みた。
しかし、結論この検証は行えなかった。なぜなら、拡張計測機能のpageviewについてはオンから変えることが出来なかったからだ。原因は不明。

※Googleタグの構成パラメータの`send_pageview = "false"`にするとpage_viewは飛ばないことを検証済み

## 自動タグ設定
コンバージョンやキャンペーンのパフォーマンスを、Google 広告で自動的に測定できる機能
これが以下Googleタグについての説明ページに記載があった。

https://support.google.com/google-ads/answer/11994839?hl=ja

しかし、自動タグ設定とGoogleタグの関連性が理解できなかったため別途こちらにまとめる

### 自動タグ設定(Google広告の設定)
https://support.google.com/google-ads/answer/3095550

これはGoogle広告の管理画面上でのみ設定を行うことが出来る
※デフォルトでオンになっている。Google広告の管理画面上でのみ設定を行うことが出来る。アカウント設定にてチェックを外すことでオンに出来る

以下を行う際に必要な機能
- ウェブサイトのコンバージョンをすべてのブラウザでトラッキングする
- Google アナリティクスやその他の顧客関係管理（CRM）システムなどの外部ソースから、キーイベント データをGoogle 広告にインポートする
- Google 広告のキャンペーンと費用データを Google アナリティクスのレポートにインポートする
- サイトの利用状況に関する Google アナリティクスの指標（直帰率、平均セッション継続時間など）を Google 広告のレポートにインポートする

##### 仕組み
ユーザが広告をクリックすると、その広告のURLに「GCLID」（Google Click Identifier の略）と呼ばれるパラメータが追加される。
そして、Google アナリティクス Cookie に、GCLID が保存される。
このCookieの情報を使ってコンバージョンなどをトラッキングする。

※一部のウェブサイトでは、任意の URL パラメータが許可されないため、自動タグ設定がオンになっているとエラーページが返される場合がある

※これが自動タグ設定の全ての機能に関わるかは不明