サーバー側Googleタグマネージャ(GTM)用コンバージョンAPI

コンバージョンAPIは、マーケティングデータを、Metaのテクノロジー全体における広告のターゲット設定の最適化、顧客獲得単価の削減、結果測定を支援するシステムと直接接続することを目的としています。Google Cloud Platform (GCP)またはその他のクラウドプロバイダーにセットアップされているサーバーを、コンバージョンAPIを通じて主要なウェブとウェブとオフラインのイベントデータを送信するように構成できます。この設定で、Googleアナリティクス4 (GA4)ウェブタグを構成すれば、データをGoogle Cloud Platform (GCP)でホストされている自分のサーバーに送信し、コンバージョンAPIを介して最終的にMetaに送信できるようになります。

コンバージョンAPIタグは、Googleカスタムタグテンプレートをベースにして、Metaによって作成および維持されています。さまざまなGoogle製品の設定について、またGoogleの開発者向けドキュメントについてご不明な点がある場合は、Googleにお問い合わせください。

このドキュメントでは、次のことに関する概要を示します。

  • 前提条件、サーバーコンテナの作成方法を含む
  • GA4ウェブタグの実装をサポートするコンテナの設定方法
  • 自社ウェブサイトからGCPサーバーにデータを送信する方法
  • コンバージョンAPIを使ってそのデータをMetaと共有する方法
  • よくある質問

前提条件

この統合の作業を進める前に、次のことをおすすめします。

  1. コンバージョンAPI統合について、また設定のベストプラクティスについて理解する
  2. サーバー側のタグ付けカスタムタグテンプレートについて理解する

GA4より古いバージョンを使っているシステムの場合は、GA4を使えるように既存のタグマネージャの設定をアップグレードしてから、この統合の作業を進めてください。

連携

GTMサーバーコンテナを作成する

これにより、トラッキングとマーケティングタグを管理および保存できるようになります。また、ユーザーがあなたのウェブサイトでどのようなアクションを実行しているかもトラッキングしやすくなります。

サーバーコンテナとウェブコンテナを設定する必要があります。

  • ウェブコンテナ: 初めてGTMを使う場合は、まず自分のアカウントにウェブコンテナをインストールします。詳しくは、こちらをご覧ください。
  • サーバーコンテナ: GTMポータルでサーバーコンテナを作成し、タグ付けサーバーURLを設定する必要があります。この手順について詳しくは、こちらをご覧ください。

Googleタグマネージャは、Googleタグマネージャのウェブサイトからアクセスできます。

新しいコンテナを作成する

すでにアカウントをお持ちの場合は、そのアカウントを選択してください。お持ちでなければ、新しいGTMアカウントを作成してください。

  • [コンテナを作成する]をクリックします。

  • コンテナに名前を付けて、ターゲットプラットフォームとして「サーバー」を選択します

  • [作成]をクリックします。

サーバーコンテナを設定するには、タグ付けサーバーを設定する必要があります。デフォルトのGCPデプロイメントは、サーバーコンテナの設定時に実行することができます。次のガイダンスをご覧ください。他のクラウドプロバイダー(AWSやMicrosoft Azureなど)については、サーバーの手動設定ガイドをご覧ください。

ウェブコンテナとサーバーコンテナを構成する

  1. ウェブコンテナで、次のものを作成します。
    • GA4設定。タグ付けサーバーURLを設定します。
    • GA4イベント。サーバーに配信されるイベントスキーマを設定します。
  2. サーバーコンテナで、次のものを作成します。
    • GA4クライアント(Metaに対してイベントを起動するイベントのリスナー)。
    • MetaコンバージョンAPIタグ(GA4クライアントの標準イベントモデルをコンバージョンAPIイベントスキーマに変換し、それをgraph.facebook.comに送信するサーバー側タグ)。

ステップ1: GA4設定 – タグ付けサーバーURLを設定する

作成したタグ付けサーバーにウェブサイトデータを送信するよう、ウェブコンテナを設定します。Googleアナリティクス: GA4設定タグを設定する方法について詳しくはこちらをご覧ください。

  • [サーバーコンテナに送信]を選択する場合は、該当するサーバーコンテナURLをタグ付けサーバーURLとして設定します。
  • [サーバーコンテナに送信]を選択しない場合は、[設定するフィールド]の下で[行を追加]をクリックしてから、次のように設定します。
    • フィールドの名前: transport_url
    • フィールドの値: タグ付けサーバーのURL

すべてのイベントで送信する他のパラメーターのためにさらに追加のフィールドを設定することができます。

  • first_party_collectionフラグをtrueに設定します。user_dataパラメーターをサーバー側GTMに渡すことができるようにするため、これは必ず実行する必要があります。[設定するフィールド]の下で[行を追加]をクリックしてから、次のように設定します。
    • フィールドの名前: first_party_collection
    • フィールドの値: true

既存のGA4設定タグの使用

既存のGA4をすでに設定している場合は、それを修正することも、サーバーサイドGTM用に追加の設定タグを作成することもできます。

サーバーサイドGTMを初めて設定する場合、サーバーコンテナのURLを追加することにより、全トラフィックがサーバーコンテナに送信されるようになります。データが引き続きGA4に送信されるようにするには、サーバーコンテナにGA4サーバーサイドタグを追加して、そのタグを全イベントで確実に起動させる必要があります。追加のGA4イベントタグを作成するか、既存のものに変更を加えることによって、Metaピクセルイベントへのマッピングを完成させる必要がある場合があります。

MetaブラウザーとMetaクリックID

カスタムドメインを設定済みの場合、GTMタグ付けサーバードメインがファーストパーティであれば、MetaブラウザーIDとMetaクリックIDは自動的に送信されます。

デフォルトのドメインを使っている場合、またはイベントマネージャでブラウザーIDとクリックIDのフィールドが送信されていないことが分かった場合には、それらを次のように設定することができます。

  • 変数のセクションに移動し、MetaブラウザーIDとMetaクリックIDの両方に新しいユーザー定義変数を作成します。変数の型としてファーストパーティCookieを使います。
    • MetaブラウザーIDのCookie名は_fbpに設定します
    • MetaクリックIDのCookie名は_fbcに設定します
  • これらの変数を保存します。
  • GA4設定タグにおいて、[設定するフィールド]の下で[行を追加]をクリックし、次のように設定します。
    • フィールドの名前: x-fb-ck-fbp
    • フィールドの値: 該当するMetaブラウザーID変数
  • クリックIDに行を追加します。
  • フィールドの名前: x-fb-ck-fbc
  • フィールドの値: 該当するMetaクリックID変数

GTM共通イベントスキーマの各user_dataパラメーターに対して、データレイヤー変数を作成します。データレイヤー変数の設定については、こちらをご覧ください。例えば、サーバー側GTMにメールアドレスを渡すには、データレイヤー変数名eventModel.user_data.email_addressにマッピング可能な変数(user_data_email_addressなど)を作成します。

データレイヤーを使っていない場合は、代わりに使うために、各パラメーターに以下のように変数を設定します。下記のリストに、MetaとGTMのuser_dataパラメーターの全マッピング、およびイベントマッチングクオリティの向上に役立つ一般的な優先度を示します。Meta広告を最大限活用するには、統合設定時にコンバージョンAPIのベストプラクティスに従うことをおすすめします。コンバージョンAPIが設定済みの場合は、既存の設定を改善するためにベストプラクティスを考慮することをおすすめします。コンバージョンAPIのベストプラクティスは、顧客獲得単価を下げることで広告パフォーマンスを向上させるのに役立つことがあります。

コンバージョンAPIのMetaパラメーターGA4フィールド名GTMデータレイヤー変数名優先度

メール

email_address(em)

user_data.email_address

eventModel.user_data.email_address

クリックID

fbc

x-fb-ck-fbc

なし

FacebookログインID fb_login_id

user_data.fb_login_id

なし

生年月日

db

x-fb-ud-db

なし

country(country)

user_data.address.country

eventModel.user_data.address.country

電話番号

phone_number(ph)

user_data.phone_number

eventModel.user_data.phone_number

外部ID

external_id

x-fb-ud-external_id

なし

ブラウザーID

fbp

x-fb-ck-fbp

なし

state(st)

user_data.address.region

eventModel.user_data.address.region

性別

ge

x-fb-ud-ge

なし

first_name(fn)

user_data.address.first_name

eventModel.user_data.address.first_name

last_name(ln)

user_data.address.last_name

eventModel.user_data.address.last_name

市区町村

city(ct)

user_data.address.city

eventModel.user_data.address.city

郵便番号postal_code(zip)

user_data.address.postal_code

eventModel.user_data.address.postal_code


ステップ2: GA4イベント – サーバーに配信されるようにイベントスキーマを構成する

  • Googleアナリティクスを追加するため、作成されたタグ付けサーバーにウェブサイトデータを送信するよう、ウェブコンテナを設定します。Googleアナリティクス: GA4設定タグを設定する方法について詳しくはこちらをご覧ください。

  • テンプレートギャラリーからGoogleアナリティクス: GA4イベントタグを自分のワークスペースに追加します。

    • タグのイベント名を設定します。固定値として設定することも、変数から読み取るように構成することもできます。特定の標準イベントについては、Googleアナリティクスの標準イベントが、Metaにおけるそれに相当するものにマッピングされます。それらのイベントについては、Googleアナリティクスイベント名かMetaイベント名のどちらかを使うことができます。他のすべての標準イベントについては、Metaイベント名を使います。カスタムイベントについては、カスタムイベントの名前を使います。詳しくはこちらをご覧ください。詳しくはこちらをご覧ください。
Meta標準イベント名Googleアナリティクスイベント名

AddPaymentInfo

add_payment_info

AddToCart

add_to_cart

AddToWishlist

add_to_wishlist

PageView

gtm.dom

PageView

page_view

Purchase

purchase

Search

search

InitiateCheckout

begin_checkout

Lead

generate_lead

ViewContent

view_item

CompleteRegistration

sign_up


  • イベントパラメーターのセクションで、以下を行います。

    • Metaピクセルを使っている場合は、イベントIDパラメーターを追加します。パラメーターの名前はevent_idとし、パラメーターの値にはイベントIDのために作成された変数を使います。イベントID変数の作成方法や、Metaピクセルの修正方法についてのガイダンスは、重複のセクションをご覧ください。
    • 構成する各パラメーターをマッピングします。変数名は、一般的なイベントスキーマを使ってイベントから読み取られます。例えば、メールをイベントパラメーターとして設定するには、対象のメールをパラメーター名: user_data.email_addressとして定義し、その値をemail_address(前のセクション1で定義されている)を読み取る変数名として設定する必要があります。
    • 完全な一覧については、下記のカスタムデータパラメーターのセクションをご覧ください。

ステップ3: Metaに対してイベントを起動するイベントのリスナーを作成する

どのGTMサーバー側コンテナにも、そのGA4ウェブタグから構成されたイベントをリッスンするための、デフォルトのGA4クライアントが付属しています。GA4クライアントは、タグ付けサーバーURLの/g/collectルートをリッスンし、eventModelをダウンストリームタグに送信します。サーバーコンテナのクライアントセクションの下にすでにデフォルトのGA4クライアントがインストールされている場合は、ステップ4に進むことができます。

ステップ4: MetaコンバージョンAPIタグを作成する。このサーバー側のタグは、GA4クライアントの標準イベントモデルをコンバージョンAPIイベントスキーマに変換し、それをgraph.facebook.comに送信します。

コンバージョンAPIにイベントを送信するには、テンプレートギャラリーからMetaコンバージョンAPIタグをインストールする必要があります。facebookincubatorで、タグテンプレートはコンバージョンAPIタグと呼ばれています。このタグは、前の手順のGA4クライアントが受け取るイベントでトリガーされてコンバージョンAPIに送信されるように設定することができます。MetaコンバージョンAPIタグをインストールするには、ピクセルIDとアクセストークンが必要であり、アクションソースを「ウェブサイト」に指定する必要があります。コンバージョンAPIを使用することで、自分が知る限りaction_sourceパラメーターが正確であることに同意するものとします。

統合のテスト

変更内容を公開する前に、Googleタグマネージャのプレビューモードを使って統合をテストすることをおすすめします。ウェブコンテナとサーバーコンテナは、どちらにもプレビューモードがあり、両方同時に実行できます。

プレビューモードの実行中に設定を変更した場合、その変更がテスト中に反映されるようにプレビューモードを再起動してください。

イベントマネージャのイベントテスト機能を使って、サーバーイベントが意図どおりに受信されていることを確認できます。このツールを利用するには、[イベントマネージャ] > [データソース] > [対象ピクセル] > [テストイベント]と移動します。

イベントテストツールはテストIDを生成します。コンバージョンAPIタグ内のtest_event_codeパラメーターとしてテストIDを送信することにより、[イベントのテスト]ウィンドウにイベントアクティビティが表示されるようになります。これは、変更内容公開の前に必ず削除してください。

テストイベントツールを使うと、イベントが受信されているかどうか、重複が正しく除外されているかどうかを確認できます。1、2分経過してもイベントが表示されない場合は、GTMサーバーサイドデバッガーをチェックして、リクエストが処理されたかどうか確認してください。

  1. サーバーサイドデバッガーの左側のメニューで、チェック対象のイベントを選択します。
  2. 該当タグが発動タグのセクションの下に表示されていることを確認します。表示されている場合、[コンバージョンAPIタグ - 成功]または[コンバージョンAPIタグ - 失敗]のどちらかが表示されています。
    • タグ不発動: ウェブコンテナで、コンバージョンAPIタグトリガーと関連するGA4イベントトリガーを確認します。ウェブデバッガーでGA4イベントが発動されたことを確認します。
    • タグ起動: 成功: そのタグをクリックし、テストイベントコードが正しいことを確認します。必要に応じてテストイベントコードを更新し、プレビューモードを再起動します。
    • タグ起動: 失敗: [リクエスト]タブを開き、https://graph.facebook.comに送信された処理中リクエストをクリックします。リクエスト詳細の下部にある応答本文でエラーの内容を確認し、それに応じて統合を更新します。変更を加えた場合は、必ずプレビューモードを再開してください。

イベントが表示されるようになったら、各イベントのイベントIDが正しく送信されていること、また予期されるマッチキーとカスタムデータパラメーターがすべて正しく表示されていることを確認してください。テストイベントツールに、イベントが正しく受信されているかどうかが表示されます。イベントIDが違っている場合は、GA4とMetaピクセルタグが同じトリガーで起動していることを確認し、イベントID変数の実装を見直してください。

重複除外

冗長イベント設定を使用し、コンバージョンAPIとMetaピクセルの両方から同じイベントを共有することをおすすめします。どちらのイベントも同一のevent_nameを使用していること、そしてevent_idか、external_idfbpの組み合わせが含まれていることを確認してください。

これは、Metaがイベントの重複を除外して、同一イベントが重複して報告される可能性を抑えるのに役立ちます。重複除外とはどのようなもので、どのような時に必要とされ、どのように設定するかについて詳しくは、こちらをご覧くださいexternal_idとfbpは、重複除外の代替ソリューションであり、これも設定の品質改善に役立ちます。可能であれば、これらの3つのパラメーターを含めるようにおすすめします。

GTMには、ブラウザータグとサーバータグの値が同じパラメーターを設定する方法がいくつかあります。1つの方法は、同じGA4イベントタグを、Metaピクセルタグとサーバーイベントを起動するトリガーとして使用することです。そのためには、以下を行います。

  • MetaピクセルカスタムHTMLタグとGA4イベントタグに、同じトリガーを使います。例えば、注文確認ページのURLに基づいてトリガーを定義することができます。
  • どちらのタグにも同じevent_idを使います。
    1. クライアントから一意のIDを設定する: gtagイベントからカスタムパラメーター(x-fb-event_id)を設定します。JavaScriptのメソッド(またはGoogleタグマネージャのカスタムJavaScript変数)を使ってウェブサイトのイベントごとに一意のIDを生成し、そのイベントで値を次のように設定します。
    2. gtag('event', 'purchase', {
       'x-fb-event_id': generateEventId(),
      ...:...
      
       });
      上記のカスタムJavaScriptを指す変数を作成することができます。この変数が参照されるたびに、下記のJavaScriptがインラインで読み込まれます。
      function() {
      var gtmData = window.google_tag_manager[{{Container ID}}].dataLayer.get('gtm');
      return gtmData.start + '.' + gtmData.uniqueEventId;
      }
    3. データレイヤー変数を作成して値を設定します。ウェブコンテナに独自の変数を作成して、event_idから値を読み取ることができます。そのためには、データレイヤー変数名をeventModel.event_idに指定して、新しいデータレイヤー変数(例: FBEventIdVar)を作成します。
    4. 変数が設定されたら、その変数をカスタムHTMLタグに含めてウェブイベントの中に組み込み、サーバーイベントを追加のGA4イベントパラメーターとします。
    5. ウェブで、GoogleタグマネージャのウェブコンテナにMetaタグを設定することにより、変数からevent_idを読み取ることができます。
    6. fbq('track', Purchase, {..}, {eventID: FBEventIDVar });
      event_idという名前の追加パラメーターを、FBEventIdVar変数に設定して送信するよう、GA4イベントを設定します。

カスタムデータのパラメーター

カスタムデータを送信するには、GA4イベントタグで以下の対応関係を使います。

Metaパラメーターの名前GA4パラメーターの名前

value

value

currency

currency

search_string

search_term

order_id

transaction_id

content_ids

x-fb-cd-content_ids

content_type

x-fb-cd-content_type

content_name

x-fb-cd-content_name

content_category

x-fb-cd-content_category

contents*

itemsまたはx-fb-cd-contents

num_items

x-fb-cd-num_items

predicted_ltv

x-fb-cd-predicted_ltv

status

x-fb-cd-status

delivery_category

x-fb-cd-delivery_category

custom_properties*

custom_properties

x-fb-cd-contentscustom_propertiesはMeta定義によるJSONパラメーターなので、送信前にJSON文字列に変換してください。

ウェブサイトからGCPサーバーにデータを送信する

ウェブコンテナとサーバーコンテナの構成が完了したら、ウェブサイトからサンプルイベントを送信して、サーバーイベントを確認できます。パラメーターを設定したサンプルイベントは次のようになります

 gtag('event', 'purchase', 
  {
    'event_id': generateEventId(),
    'transaction_id': 't_12345',
    'currency': 'USD',
    'value': 1.23,
    user_data: {
      email_address: '<HASHED_DATA>',
      phone_number: '<HASHED_DATA>',
      address: {
        first_name: '<HASHED_DATA>',
        last_name: '<HASHED_DATA>',
        city: '<HASHED DATA>',
        region: '<HASHED_DATA>',
        postal_code: '<HASHED_DATA>',
        country: '<HASHED_DATA>'     
      },    
    },
    items: [
      {
        item_id: '1',
        item_name: 'foo',
        quantity: 5,
        price: 123.45,
        item_category: 'bar',
        item_brand: 'baz'     
      }
    ], 
  });      
     

イベントがトリガーされると、設定したパラメーターと共にリクエストがリンク(例: www.analytics.example.com/g/collect)に送信されるはずです。コンバージョンAPIに送信されるイベントを検証するため、テストイベントコードをMetaコンバージョンAPIタグに追加することができます。テストイベントコードは、テスト目的でのみ使ってください。本番ペイロード送信時には削除する必要があります。

変更内容公開後、こちらにある設定検証ページを使ってイベントが正しく送信されていることを確認します。そのためには、以下の[設定確認 - コンバージョンAPI]をチェックし、品質統合がMetaのベストプラクティスを満たしていることを確認してください。

よくある質問

カスタムパラメーターを送信する機能を追加する予定はありますか?もしそうなら、それはいつ利用可能になりますか?
A: コンバージョンAPI標準のカスタムパラメーターのうちGTMのスキーマでサポートされるもののほとんどについて、マッピングが追加されています。また、カスタムマッピングも提供されています。詳しくは、こちらをご覧ください

単一のサーバーまたはクラスターで複数のコンテナを実行できますか?
A: 現在のところ、GTMでサポートされるのは1:1のマッピングだけです。コンテナの編成方法についての推奨事項をご確認ください

イベントを発行するには、サーバー側GTMにブラウザーベースのタグが必要ですか?
A: はい

サーバーサイド統合とは別にGA4を維持することは可能ですか?
A: GA4とサーバーサイドGTM統合を個別に維持するため、Googleアナリティクスで追加の評価IDを作成できます。この評価IDを使って上記の手順に従うことにより、サーバーサイドGTM用に別個のGA4設定タグを作成します。このシナリオでは、既存のGA4設定タグはウェブコンテナを通じてGAトラフィックを送信し続けますが、新しい設定タグはサーバーコンテナにデータを送信することになります。ステップ2に従い、新しい設定タグを使ってサーバーサイドイベント送信用の追加のGA4イベントタグを作成します

GTMコンバージョンAPI統合は、GCPではないクラウドホスティングソリューションで動作しますか?
A: GTMコンバージョンAPI統合は、GCPでもそれ以外のプラットフォームでも動作するはずです。手動のプロビジョニングについて詳しくは、こちらをご覧ください