著者:
Ira Holubovska
顧客は購入に至るまでに、オンラインとオフラインの両方でさまざまなチャネルを通じてブランドと接点を持ちます。そのため、マーケターや分析担当者がこれらのインタラクションを一元管理することは容易ではありません。Google AnalyticsやMatomoサーバーサイドトラッキングなどの標準的なツールでは、オフラインイベントを追跡できないことがよくあります。この課題を解決するために、通常はカスタマーデータプラットフォーム(CDP)が使用されます。
CDPを導入する一つの方法は既存のツールを購入することですが、高額になる場合があります。もう一つの選択肢は、独自のCDPを構築することです。本記事では、サーバーサイドのGoogle Tag Managerとデータベースを使用してシンプルなCDPを構築する方法をご紹介します。
この設定により、すべての顧客情報を一元化でき、顧客理解を深め、より効果的なアプローチが可能になります。トラッキングの初心者でも経験豊富なスペシャリストでも、本ガイドを参考にすることで顧客データの管理方法を大幅に改善するCDPを構築できます。
サーバーサイドGoogle Tag Managerコンテナは、オンライン・オフラインを問わず、すべてのユーザーインタラクションに関するリクエストを受信します。ウェブ版GTMからオンラインイベントを受信するには、GA4やData Clientなどの標準クライアントを使用できます。オフラインイベントを取得するにはWebhookを使用できます。記事の後半では、sGTM内でWebhookデータを送信およびデバッグする方法について解説します。
sGTMが受信するデータの種類に関わらず、データはデータベースに保存されます。sGTMと統合できるデータベースには、Firebase、Supabase(Firestoreよりも大幅に安価)、またはData Storeなど、いくつかの選択肢があります。ここでは、Stapeの組み込み機能であり、Stapeの有料プラン(Proプラン以上)のお客様は無料で利用できるStape Data Storeを使用します。
sGTMとストアに加えて、同一ユーザーのデータを同一ドキュメント内に保存するために、固有のユーザー識別子も活用します。
1. データソース(CRM、SDK、CMS、モバイルアプリ、ウェブサイトなど)。
2. サーバーサイドGTMコンテナ。
3. データベース(本ガイドではData Storeを使用します。FirestoreやSupabaseも利用可能で、StapeはSupabase writer tagを提供しています)。
4. データベースのデータ読み取り/書き込みには、以下のsGTMテンプレートを使用できます:
5. 固有のユーザー識別子。本ガイドでは、Unique user ID、またはStape WordPress pluginによって生成されるWordPressユーザーIDを使用します。
データソース(CRM)からCDPへのユーザーデータの流れは以下のとおりです:

データの受信方法は、sGTMにどのようにデータを送信するかによって異なります。データを取得する主な3つの方法は以下のとおりです:
これは最も複雑でありながら極めて重要な部分です。適切なCDPを構築するには、ユーザーおよびブランドに対するそのアクションに関する正確なデータが必要です。CDPには最新の情報が含まれ、重複のないクリーンなデータである必要があります。このようなユーザープロファイルシステムを構築するには、適切なユーザーIDが必要です。
識別済みのユーザーには、異なるシステム間で利用できるメールアドレスや内部IDを使用できます。ユーザーが未識別の場合は、以下をハッシュ化したStape User IDを使用できます:
ブランドが複数のドメインを運用している場合は、User IDパワーアップでCross-domain IDオプションを有効にすることもできます。これにより、ホスト名を除いた同一のシグナルから追加のID(X-Stape-Cross-Domain-Id)が生成され、サーバーコンテナに接続されているすべてのドメインにわたって、同一の未識別ユーザーに1つのIDが付与されます。これにより、CDP内でのプロファイルの重複を防ぐことができます。
プライバシーコンプライアンスの観点からUser IDのユニーク性を調整したい場合は、依存変数を追加できます。日、月、週、年などを指定でき、IDをどの程度ユニークに保つかによって設定します。
リクエストとデータベースからのユーザープロファイルをマージおよび統合するために、reStore変数、またはStape Store Writer TagとStape Store Lookup のいずれかを使用します。これらのテンプレートのコピーはStape GitHubでも入手可能です。
WriterタグとLookup変数の機能は非常に明快です。この2つのテンプレートにより、Data Storeに対するデータの書き込みと読み取りが可能になります。
reStore変数は、まずユーザーがデータベース内に存在するかどうかを識別します。最初に、変数はイベントからすべてのユーザー識別子(メールアドレス、電話番号、クライアントIDなど)を取得します。 次に、Storeにクエリを送信し、該当する識別子のいずれかを持つ顧客を抽出します。データベース内にその顧客に関する情報がある場合、該当顧客のデータを返します。

変数がストアからレスポンスを取得すると、それを受信リクエストとマージします。たとえば、cityフィールドが存在しない場合、このフィールドにはストアの値が使用されます。受信リクエストにcityフィールドがあるものの、ストアにそのフィールドが存在しない、または値が異なる場合は、リクエストの当該フィールドのデータがストアに書き込まれます。ストア内で顧客が部分的に見つかった場合、この変数は新しいエンティティを作成します。

sGTM内のデータが処理されsGTMフォーマットに整形されると、Meta、TikTok、Google Ads、Google Analyticsなど、任意のベンダーへの送信に使用できます。リクエストで送信されるユーザーデータには留意してください。
sGTMでのデバッグは難しく、オフラインイベントとなるとさらに複雑になることがあります。ここでは以下の使用方法について説明します。
データストアの活用方法を示すため、2つのユースケースをご紹介します。これらはStapeのお客様において最も一般的なシナリオです。
1. User IDを設定する。ユーザーを顧客と統合するのに役立つStapeのUser IDパワーアップを使用します。
a. Stapeアカウントにログインし、パワーアップを有効にしてください。これを行うには、sGTMコンテナを開き、Power-upsタブをクリックして、User IDを開き、トグルをオンにして保存します。

b. Server GTMコンテナで、サーバー内のリクエストヘッダーからUser IDを取得する変数を作成してください。

2. purchaseイベント時にデータベースへデータを書き込む。イベントデータにStape User IDを追加していることを確認してください。
a. sGTMテンプレートギャラリーにStape store writerタグを追加し(GitHubからダウンロードしてsGTMタグテンプレートセクションにインポート)、purchaseイベント時にイベントデータを書き込むタグを作成してください。ここではすべてのイベントデータを書き込み、ストアレコードにStape User IDを追加しています。これはpageviewイベントでユーザーを統合するために必要となります。

b. タグが正常に動作すると、下のスクリーンショットのようなレコードがデータベースに表示されます。

3. ページビューイベントデータをData Storeに保存されたデータでエンリッチします。
a. ページビューイベントのユーザーとデータベースに保存されているユーザーを統合するために、ここでもStape User IDと、ストアからデータを取得できるStape Store Lookup変数を使用します。Stape Store Lookup変数をsGTMの変数テンプレートギャラリーに追加します。GitHubからテンプレートをダウンロードするには、sGTMのテンプレートセクションに移動します。変数セクションで[新規]をクリックし、[インポート]を選択します。

b. 復元したいパラメータ(広告ドキュメントのパスとパス名)用にStape Store Lookup変数を作成します。

c. ページビュータグにLookup変数を追加します。

4. 設定をテストします。 sGTMコンテナでトリガーされたタグに、エンリッチされたユーザーデータが表示されるはずです。

このユースケースでは、オフラインイベントデータを広告ネットワークに送信します。広告主のプラットフォームにコンバージョンデータを送信する際、極めて重要な要素となるのがClick IDの送信です。Click IDとは、ユーザーが広告リンクをクリックした際にURLやCookieに追加される識別子です。Click IDを利用することで、広告ネットワークはコンバージョンを広告キャンペーンに容易に紐付けることができます。
クリックIDはすべてのウェブイベントで利用できますが、CRMやCMSのコンバージョンデータを使用して広告ネットワークに送信する場合、ほとんどのケースでクリックIDは利用できません。
この設定を行うために、Stape restore variableを使用してページビュー時にData Storeへデータを書き込み、購入イベント時にデータを復元します。それに加えて、Facebookに送信されるイベントを拡張するためのsGTMコンテナ内の変換が必要になります。もう1つの重要な要素は、ページビューイベントのユーザーとオフライン購入のWebhookのユーザーを照合することです。そのためには、ウェブのページビューイベントとオフライン購入で共通して保持されるユーザー識別子を使用する必要があります。
標準的なCMSでは、Cookie内にこの種の識別子が保持されていることが多いため、簡単に実現できます。カスタムウェブサイトの場合は、開発者にこれらのパラメータを追加してもらう必要があります。今回の設定はWordPressサイト上で行っています。Stape WordPressプラグインはウェブイベントで一意のユーザーIDを送信し、それをWebhookにも追加します。このユーザーIDを使用することで、データベース内でページビューと購入Webhookのユーザーを照合できます。
1. オフラインデータソースからの購入WebhookをsGTM内で受信する
a. CRMからWebhookを送信します。ここではStape WordPress appを使用します。Webhooksタブに移動し、Server GTM container URLを追加してください。これは、サーバーGTMコンテナに使用しているドメインです。ファーストパーティCookieの設定が可能になるため、ウェブサイトのドメイン内でカスタムドメインを設定することをおすすめします。チェックボックスにチェックを入れるのを忘れないでください。

b. sGTMのクライアントテンプレートにData Clientを追加し、CRMから送信しているWebhookを取得するように設定します。これを行うには、Data Clientテンプレートを作成し、Webhookパスを追加してください。

c. sGTMで受信するWebhookをデバッグするために、StapeでsGTM Preview Header configパワーアップを設定します。sGTMのプレビューに移動し、右上隅にある3つのドットをクリックして「send requests manually」をクリックしてください。X-Gtm-Server-Preview HTTPヘッダーをコピーし、sGTM Preview Header configパワーアップに貼り付けます。


d. sGTMデバッガーを開き、ウェブフックが受信されたかをテストします。ウェブフックがトリガーされると、sGTM内で受信リクエストが表示され、Data Clientがそのリクエストを処理したことを確認できます。

2. ページビューイベントのfbc、fbp、クライアントIDパラメータをデータベースに書き込みます。
このステップでは、reStore変数を使用してfbcおよびfbpパラメータをデータベースに書き込む方法をご紹介します。そのために、ページビューイベントをトリガーするFacebookページビュータグと、reStore変数を使用してストアにデータを書き込む変換を使用します。
a. こちらのリンクを使用して、sGTMにreStore変数を追加します。GitHubからダウンロードし、sGTMで新しい変数テンプレートを作成して、[インポート]をクリックしてください。
b. reStore変数を設定します。WordPressのUser IDを識別子として使用し、fbp、fbc、WordPress User IDをストアに書き込むように設定してください。

c. reStore変数を使用してFacebookページビューイベントのイベントデータを拡張する変換を作成し、この変換をFBページビュータグに追加します。

d. 設定をテストします。すべてが正しく設定されていれば、Data Storeにデータが記録されているのを確認できます。

e. webhookを受信するたびに配信されるFacebookのpurchaseイベントを設定します。このイベントをData Storeのデータで補強するには、変換機能と、FBのpageviewイベントの変換で使用したのと同じリストア変数を使用する必要があります。これにより、purchaseイベントに必要なパラメータが抽出されます。ただし、Facebookが認識できる形式でデータを送信するには、リストア変数から必要なオブジェクトを抽出するオブジェクト抽出変数を使用する必要があります。



f. 設定をテストします。すべてが正常に機能していれば、fbcおよびfbpパラメータがFacebookまたはオフラインのpurchaseイベントに正常に送信されたことを確認できます。


データストアを活用することで、顧客データベースやCDPを構築できます。顧客から得られるあらゆる情報を容易に収集・保存できるため、より優れた分析基盤を整えたり、有料広告キャンペーンの成果を向上させたりするのに役立ちます。顧客データを拡充・エンリッチメントすることで、顧客の行動や嗜好に関するインサイトを獲得でき、マーケティング戦略の改善につなげることができます。
サーバーサイドトラッキングを試してみませんか?
無料で試す
コメント