trocco によるオフラインコンバージョンインポート (GA4 + Google広告)

2023/12/08に公開

※この記事はtrocco® Advent Calendar 2023用に作成しました

https://qiita.com/advent-calendar/2023/trocco

この記事では、trocco のリバースETL関連のコネクタを用いて、GA4・Google広告へのオフラインコンバージョンを行う方法について記します。

オフラインコンバージョンインポートとは

Google Analyticsをはじめとするアクセス解析ツールや、各種Web広告では通常は計測できない、オフライン(Webサイト外)で発生するコンバージョンを各ツールに戻す試み。オフラインコンバージョンとして送信する内容は以下のようなものが考えられる。

  • リード獲得(お問い合わせ・資料請求型)をコンバージョンとするWebサイトにおける、その後の商談・成約
  • D2C単品通販・SaaSなどを提供する企業のサイトにおける、その後の継続利用Nカ月目
  • IoTログならびにアプリ(Firebase Analytics)とIoTログを同一ユーザーの行動としてつなげて分析

troccoにおけるリバースETL

詳しくは以下の記事を参照。
https://blog.trocco.io/glossary/reverse-etl
要は、利用しているサービス・ツールに対して、DWHに蓄積されたデータを送り、BIを噛ませることなく、各サービス・ツール上でデータが閲覧できる・使えるようにすること。

GA4へのコンバージョンデータの送信

何のために行うのか

GA4上でオフラインコンバージョンの数を見られるようにする。
例えば、リード獲得型のWebサイトにおいて、オフラインコンバージョンとして商談・成約といった情報を送っておくことで、以下のような分析に利用できる。

  • 成約に至った集客経路の分析・広告媒体評価
  • 成約に至った方の閲覧ページ分析

Measurement Protocolについて

Google AnalyticsサーバーにHTTPリクエストで直接イベントデータを送信する手法。オフライン行動を紐づけるためなどに使用できる。詳細は以下を参照。
https://developers.google.com/analytics/devguides/collection/protocol/ga4?hl=ja

利用にあたってはGA4のBigQuery Exportが不可欠

なお、Measurement Protocolとして送信したデータを、Google Analyticsで計測されたユーザーのアクセス情報と紐づけるためには、Google AnalyticsのClientID(user_pseudo_id)またはUser ID(会員IDなど)が必要となる。ClientIDの取得のためにはGA4のBigQuery Exportを行い、そこからデータを抽出する必要がある。
https://support.google.com/analytics/answer/9358801?hl=ja

転送先 - Google Analytics 4 Measurement Protocol

troccoには、Google Analyticsにデータを送信するためのMeasurement Protocolの転送設定が用意されている。これを用いることにより、開発なしに進めることができる。
https://documents.trocco.io/docs/data-destination-google-analytics4-measurement-protocol

スキーマの解説

以下を参照してスキーマ定義を行う。
https://documents.trocco.io/docs/data-destination-google-analytics4-measurement-protocol#カラムマッピング
https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?hl=ja&client_type=gtag

できれば、timestamp_microsは送信することを推奨。送信することにより、Google Analytics側にもtimestamp_microsでセットしたタイムスタンプを適用してイベント反映を行うことができる。(Measurement Protocol送信時刻から起算し、最大3日前までさかのぼることができる)
これを入れないと、イベント計測された日時が、Measurement Protocolの送信日時になってしまう。

送信データを作成するためのクエリサンプル

SELECT
    timestamp_micros,
    client_id,
    user_id,
    STRUCT(
      'event_name' AS name,
      STRUCT(
        event_parameter_1,
        event_parameter_2,
        event_parameter_3
      ) AS params
    ) AS events
  FROM
    table

Google広告へのコンバージョンデータの送信

何のために行うのか

Google 広告にオフラインコンバージョンデータを送信することにより、Google 広告上でオフラインコンバージョン数・CVR・CPAを把握することができるほか、オフラインコンバージョンに基づくGoogle 広告の機械学習を効かせることができる。

拡張コンバージョンとは

Google 広告にオフラインコンバージョンを送信するための方法。ユーザー提供データ(メールアドレス等のハッシュ化した値)、gclid(Google 広告のクリック時にURLのクエリパラメータとして付与される)の値の2つの方式によるインポートが可能。
https://support.google.com/google-ads/answer/9888656?hl=ja

Google広告以外でも用意されている

https://developers.facebook.com/docs/marketing-api/conversions-api/get-started
https://ads-help.yahoo-net.jp/s/article/H000044232?language=ja

転送先 - Google Ads コンバージョン

troccoには、Google 広告にデータを送信するための転送設定が用意されている。
https://documents.trocco.io/docs/data-destination-google-ads-conversion

スキーマの解説

以下を参照のこと。
https://documents.trocco.io/docs/data-destination-google-ads-conversion#カラムマッピング

利用にあたってはGA4のBigQuery Exportがあると便利

上記を構築するにあたり、gclidをどのようにオフラインコンバージョンと紐づけるかという問題が発生する。GA4-BigQuery Exportを用いて、GA4で計測されたフルURLの情報(page_location)からgclidの値を抽出することができるので有用。

BIツール上で分析できるようにすれば、リバースETLは不要じゃないの?

データの可視化と分析という一面だけを見たら、確かに不要かもしれません。しかし、Google Analyticsなどの各ソリューション上でオフラインコンバージョン数が確認できることは、そのソリューションで分析している方にとってはとても使い勝手がよいです。

特にGoogle Analyticsに関して言えば、オフラインコンバージョンのデータを用いて、「成約に至った方」の閲覧ページ分析や、成約前・後での閲覧ページ分析をはじめとして、集客施策の評価も成約数をベースに行うことができます。

また、前述したGoogle 広告のように、オフラインコンバージョンをインポートすることにより、実成約者にスポットを当てて、Google 広告の機械学習を行ううえでの教師データとして使うことができ、より最適な形で学習させることができます。

おわりに

上記は弊社のクライアント企業向けに実際に導入した内容のダイジェストとして書き記してみました。trocco をリバースETL用途で用いることで、マーケティング用途での活用もできそうだという手応えを感じております。

来年もどうぞ、よろしくお願い致します。

Discussion