カスタム ドメインの設定

この記事は、ウェブサイトと同じファーストパーティのコンテキストでサーバーサイド タグ設定をホストしたいデベロッパーを対象としています。サーバーで設定された Cookie のセキュリティと持続性を生かすには、同一オリジンの配信がおおすすめです。以下の手順は、サイトに実装されている Google タグ(gtag.js または gtm.js)に関係なく、同一オリジンの配信の設定に適用されます。

初めてタグ設定サーバーを設定する場合、クラウド プロバイダから提供されたドメインでホストされます。デフォルトのエンドポイントを使用する場合、サーバー コンテナにデータは送信されますが、サードパーティのコンテキストで実行されます。Cookie の持続性向上を含むファーストパーティのコンテキストの利点を生かすには、タグ設定サーバーとウェブサイトで同一のドメインを使用する必要があります。

次の表は、親ウェブサイトが www.example.com でホストされている状態でタグ設定サーバーをホストする方法を示しています。

同一オリジン(ベスト プラクティス) サブドメイン デフォルト ドメイン
URL の例 https://www.example.com/metrics https://metrics.example.com https://metrics.run.app
サーバーで設定された Cookie の効果 セキュリティと持続性の利点すべて。 セキュリティと持続性の利点すべて。 なし。JavaScript Cookie のみ設定可能。
設定の難易度 リクエストを転送する CDN またはロードバランサを設定。DNS エントリの更新が必要な場合あり。 DNS エントリを更新。 事前設定済み。

実装形態を選んで始めましょう。

前提条件

このガイドは、次の準備ができていることを前提としています。

  • タグ マネージャーでサーバー コンテナのセットアップ
  • タグ設定サーバーのセットアップ
  • リクエストを転送できる CDN またはロードバランサ
  • App Engine を使用している場合: バージョン 2.2.0 以降のタグ設定サーバーを実行する必要があります。 タグ設定サーバーの持続性を確保するため、Cloud Run に移行してください。

カスタム ドメインを設定する

サーバー コンテナはウェブサイトと同じドメインで実行されるように設定できます。たとえば、ウェブサイトが www.example.com でウェブ トラフィックを配信する場合、www.example.com/metrics などのパスをサーバー コンテナで使用するために確保しておきます。

同一オリジンでのサーバーサイド タグ設定のセットアップ図。

1. タグ設定サーバーに使用するドメインのパスを選択する

このパスは、ファーストパーティ配信を行うために確保されます。まだ使用していないパスを選んでください。

たとえば次のようなパスが考えられます: /collect/metrics/data

パスはメモしておいてください。このパスは、後の手順で /metrics が含まれるパスに言及されている箇所では、/metrics の部分と入れ替えます。

2. トラフィックをタグ設定サーバーにルーティングする

ウェブサイトで、パスごとにトラフィックをルーティングできる CDN またはロードバランサのセットアップを完了している場合は、このステップはスキップしてステップ 4 に進んでください。

  1. ウェブサイトを示すオリジンまたはバックエンドを追加します。
  2. ウェブサイトのホスト名となる Host ヘッダーをオーバーライドします(例: example.com)。
  3. すべての Cookie とクエリ文字列の転送を許可します。このステップを選べないプラットフォームの場合、デフォルトで実行されている可能性が高いです。
  4. タグ設定サーバーを示す別のオリジンまたはバックエンドを追加します。これは、クラウド プロバイダから提供されるドメインである場合があります(例: metrics.run.app)。
  5. 上で指定したドメインと同じになるように Host ヘッダーをオーバーライドします。すべての Cookie とクエリ文字列の転送を許可します。
  6. タグ設定サーバーにトラフィックをルーティングするためのパスルールを追加します(例: /metrics/*)。
  7. 優先度がデフォルトのルールよりも高くなるように、確保しておいたサーバーサイド タグ設定パスの優先度を設定します。
  8. CDN またはロードバランサを示すように DNS を更新します。DNS の更新が反映されるまでに時間を要する場合があります。
  9. 今セットアップしたドメインの /healthy エンドポイントにアクセスします(例: https://example.com/metrics/healthy)。問題がなければ [ok] と表示されます。

3. Google タグ マネージャーでサーバーの URL を更新する

サーバー コンテナがパスの接頭辞を特定してリクエストを正確に処理できるように、サーバー コンテナの設定を更新する必要があります。

新しいエンドポイントを更新する手順は以下のとおりです。

  1. Google タグ マネージャーを開く
  2. ウェブサイトと同一のオリジンでセットアップされたサーバー コンテナを開きます。
  3. [管理者] タブから [コンテナ設定] に移動し、以前の URL をすべて削除します。この手順を行う理由は、すべてのサーバー コンテナ URL は同じパスを共有している必要があるためです。
  4. [URL を追加] をクリックして、パスの接頭辞を含む URL を入力します。
  5. [保存] をクリックしてワークスペースに戻ります。
  6. [プレビュー] ボタンをクリックして、新しいデバッグ セッションを開始し、別のタブでリクエストを送信します。
  7. 送信されたリクエストをクリックします。クライアントが受信リクエストを受信していることを確認します。

一般的な問題のトラブルシューティング

  1. 受信リクエストがプレビューに表示されません
    1. クラウド プロジェクトのログ エクスプローラに移動します。サーバーサイド タグ設定のデプロイメントがトラフィックを受信していることを確認します。受信していない場合は、ステップ 1 の指示に沿って操作します。
    2. CDN またはロードバランサが Cookie を転送していることを確認します。
    3. 単一のプレビュー サーバーがあり、タグ設定サーバーには PREVIEW_SERVER_URL のセットがあることを確認します。
    4. PREVIEW_SERVER_URL/healthy を追加したパスに移動して、プレビュー サーバーが実行されていることを確認します。問題がなければ [ok] と表示されます。
  2. クライアントがリクエストを受理していない - 確保したパスが使用されるように [コンテナの設定] で URL を更新します。このパスが URL に含まれない、または URL と異なると、クライアントは正常に動作しません。