GTMのサーバー用コンテナにカスタムドメインを設定する


# はじめに
この記事では、Google Tag Manager（以下GTM）のサーバー用コンテナを利用し、ITP対応をするために必要なドメイン設定について記載しています。

従来のGTMでは JavaScript から 1st Party Cookie をセットするため、ITPの影響により有効期限が1日または7日に制限されます。
サーバーサイドGTMを利用することで、ITPの影響を受けない 1st Party Cookie を扱うことができるようになります。
これにより、トラッキングツールで広告の効果を正確に把握することがでるようになったり、アクセス解析ツールでユーザーの行動履歴を正確に把握できるようになります。

ただしGTMのサーバー用コンテナは、デフォルトで .appspot.com ドメインで起動されるため、上記の機能が利用できません。
サーバー用コンテナを自サイトのサブドメインとして起動し、各種GTMのタグで 1st Party Cookie を扱うことができるようにするための設定についてご紹介します。

# 事前準備
* 利用するドメインを決める
    * サービスを提供するドメインが `www.example.com` の場合、サーバー用コンテンナのドメインは `gtm.example.com` などに設定する必要があります
* ドメイン管理者に相談する
    * DNSレコードを書き換える必要があるため、ドメイン管理者に作業をして頂く必要があります。
    * 作業時間の調整も合わせてできると設定がスムーズに進みます。

# 設定方法

おおまかな設定の流れとしては、

 1. ドメインの所有権を確認（要ドメイン管理者）
 2. サブドメインのマッピング
 3. DNSレコードの追加（要ドメイン管理者）
 4. サーバー用コンテナの設定

となります。まずは、Google Cloud Console の App Engine にある設定から [カスタム ドメイン](https://console.cloud.google.com/appengine/settings/domains?hl=ja) を選択してください。

![GTM01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/0dcaad88-a1c1-d95b-5345-0e6ad1047551.png)


## ドメインの所有権を確認

最初に設定するドメインの所有権を確認をします。
カスタムドメインを追加を選択し、事前準備に決定した**サーバー用コンテナで利用するドメイン名**を入力してください。

![GTM02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/cd5ddda7-d8b3-25d5-f9eb-d38cc66d4ed3.png)

確認を押すと、入力したドメイン名の所有権を確認するためのページが別で開きます。

![GTM03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/546443d0-716b-27b9-e16f-87de43c939f2.png)

ドメイン レジストラまたはプロバイダを選択の中から「その他」を選択します。[^1]

![GTM04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/b056209b-8e68-2c52-8521-b6f370852884.png)

表示された内容をドメイン管理者に伝え、DNSレコードの設定を依頼してください。

```
gtm.example.com の TXTレコードに google-site-verification-XXXXX-XXXXXXXXX の追加をお願いします。
```

ドメイン管理者の方から作業完了の連絡がきたら、確認ボタンを押しましょう。
ドメインの所有権の確認が完了すると以下の表示となります。ウェブマスターセントラルの画面を閉じてください。


![GTM05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/7eb91fb3-aad1-93bf-8927-a1b4386cd19b.png)

元の設定ページ（App Engine のコンソール）に戻って、「ドメインを更新」のボタンを押してください。

![GTM06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/d020f411-2537-d357-7472-12283da0c76d.png)

App Engine 側でも、ドメインの所有権が確認されます。
「使用するドメインを選択する」のプルダウンに設定したドメインが表示されてることを確認してください。
これでドメインの所有権の確認は完了です。「続行」を押して次のステップに進んでください。

![GTM07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/5f3880f8-05f8-9962-d87a-c4ef1341572d.png)

## サブドメインのマッピング

続いてサブドメインのマッピング（利用するドメイン名の選択）の設定をします。
`www.` が先頭に追加された入力されたドメイン名が自動で入力されているので `x` ボタンを押して削除します。

![GTM08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/6a80d746-d933-91f1-d236-3255e00294be.png)

確認画面がでてきます。利用するドメイン名をと一致してることを確認してください。
これで、サブドメインのマッピングは完了です。「続行」を押して次のステップに進んでください。

![GTM09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/b4d3c68c-d559-cfdc-4f26-e6fd0c156f53.png)


## DNSレコードの追加

サブドメインのマッピングの設定が完了すると、DNSレコードの設定値が表示されます。

![GTM10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/ba424e6a-fdf1-16e3-0dfa-f3a435c8c6bb.png)

ドメイン管理者の方に、DNSレコードの設定を依頼してください。

```
gtm.example.com の Aレコードの追加をお願いします。設定値は以下でお願いします。
A: 216. ....
AAAA: 2001:....
```

ドメイン管理者の方から作業完了の連絡がきたら、「DONE」を押します。
SSL証明書の自動取得と設定が開始されます。設定が完了するまで、しばらく（15分程度？）待ちます。
証明書IDが表示されたら追加が完了です。

![GTM11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/078248f6-f86f-bf7d-e38a-0bb492c6aa09.png)

## サーバー用コンテナの設定

最後に設定したドメインをサーバー用コンテナに設定します。サーバ用コンテナの「管理」→ 「コンテナの設定」を選択してください。

![GTM12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/a4ceeccd-4078-407a-f44a-93d46353fe70.png)

サーバー コンテナのURL の設定項目に、今回設定したドメインを設定してください。

![GTM13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560575/9a43a026-23c1-0fd2-4819-1459b7ae225c.png)

以上で設定が全て完了です。

## 確認方法

設定がちゃんとされているかを確認するには、プレビューモードを利用します。
プレビューモードを起動すると、URLが登録したサブドメインに切り替わっているはずです。

[^1]:日本のサービスはあまりリストに含まれていません。いくつかの日本プロバイダを選択してみましたが、表示される設定内容は同一でした。（2022年3月15日現在）