はじめに

広告クリエイティブを評価するとき、多くの現場ではROAS(広告費用対効果)を基準にしています。ROASは「広告費に対してどれだけ売上が立ったか」を示す指標で、運用の良し悪しを判断する出発点としては有効です。

ただ、ROASだけでクリエイティブを評価すると、どうしても「初回購入しか見ていない」判断になりがちです。広告経由でユーザーが流入し、初回の注文が発生したところまでで成果を区切ってしまうからです。

実際のEC運用では、最初の購入額が小さくてもその後リピートしてくれる顧客と、初回は大きく買ってくれたものの二度と戻ってこない顧客がいます。クリエイティブによって、この「初回後の動き」がはっきり変わることは珍しくありません。つまり、初回ROASが高いクリエイティブが、必ずしも「最終的にいちばん利益を生むクリエイティブ」とは限らないのです。この差を見抜くには、クリエイティブごとにLTV(顧客生涯価値)を追いかける必要があります。

本記事では、広告クリエイティブと初回顧客、そしてその後の購買を紐づけてLTVを集計する設計と、BigQueryでの集計SQLを紹介します。


なぜROASだけでは足りないのか

ROASは「ある期間に発生した売上 ÷ 広告費」で計算します。広告運用の現場では、この売上を「広告クリック後、一定期間内に発生した初回購入」で区切ることが多いです。

このやり方の問題は、評価の窓が初回購入で閉じてしまう点にあります。たとえば次のような2つのクリエイティブがあったとします。

  • クリエイティブA: 初回購入単価が高く、初回ROASは4.0。ただしリピート率が低い。
  • クリエイティブB: 初回購入単価は低く、初回ROASは2.0。ただしリピートする顧客が多い。

初回ROASだけを見るとAの圧勝です。しかし獲得した顧客が半年後にどれだけ買い続けているかを見ると、Bのほうが累積の売上が大きくなっているケースがあります。この逆転は、初回の数字だけ追っていると気づけません。Aに予算を寄せ続けて、本当は伸びしろのあったBを止めてしまう、という判断ミスにつながります。

LTVを軸に置くと、「どのクリエイティブが、長く付き合ってくれる顧客を連れてくるか」という視点で評価できるようになります。


設計: クリエイティブ→初回顧客→その後のLTVを紐づける

クリエイティブ別LTVを集計するには、3つの情報を順番につなぐ必要があります。

1. クリエイティブと初回流入を紐づける

まず、どのユーザーがどのクリエイティブ経由で初めて来たのかを記録します。広告リンクのURLにUTMパラメータを仕込み、クリエイティブを識別できるようにしておくのが基本です。

  • utm_source: 広告媒体(例: meta、google)
  • utm_campaign: キャンペーン名
  • utm_content: クリエイティブ名(ここでクリエイティブを識別)

GA4のBigQueryエクスポートを使っている場合、これらの値は event_params の中に入っています。流入イベント(session_startpage_view)から、ユーザーの最初のクリエイティブ情報を取り出します。

ここで1つ注意があります。GA4の初回接触セッションはログイン前であることが多く、その行には顧客ID(customer_id)が載っていません。GA4が持つのはブラウザ単位の user_pseudo_id だけ、というのが普通です。そのため、GA4の user_id 設定でログイン後に顧客IDを送る、あるいは「user_pseudo_idcustomer_id の対応表」を別途用意して後から紐づける(identity stitching)ことで、初回接触セッションにも顧客IDを載せられる状態にしておきます。本記事のSQLは、この紐づけ済みで analytics.ga4_sessions の各行に customer_id が入っている前提で書きます。

2. 初回流入と初回顧客を紐づける

次に、流入したユーザーが実際に購入したか、そしてそれが初回購入かを判定します。GA4の purchase イベントと、自社の注文データのどちらを正にするかは現場の状況によります。

注文データ(受注テーブル)がBigQueryに入っているなら、そちらを売上の正とするのがおすすめです。GA4側はクリエイティブの識別に使い、金額は受注テーブルから取る、という役割分担にすると数値がぶれにくくなります。突き合わせ方はBigQueryでECの注文データとGA4を結合して売上を正しく紐づけるで詳しく扱っています。

3. 顧客のその後の購買を積み上げる

最後に、初回購入した顧客が「その後いくら買ったか」を顧客ID単位で積み上げます。これがLTVの本体です。

ポイントは、LTVを「最初に紐づいたクリエイティブ」に集約することです。2回目以降の購入が別の広告経由でも、その売上は「最初に連れてきたクリエイティブの功績」としてカウントします。こうすることで「最初の出会いを作ったクリエイティブ」の本当の価値が見えます。


LTV集計SQL

ここからは実際のSQLです。前提として、次の2つのテーブルがある想定で書きます。

  • analytics.ga4_sessions: GA4エクスポートから整形した、ユーザー別の初回流入クリエイティブ情報
  • analytics.orders: 顧客ID・注文日・注文金額を持つ受注テーブル

まず、各ユーザーが最初に流入したときのクリエイティブを特定します。

-- 各顧客の初回流入クリエイティブを特定する
WITH first_touch AS (
  SELECT
    customer_id,
    utm_source,
    utm_campaign,
    utm_content AS creative,
    first_visit_date
  FROM (
    SELECT
      customer_id,
      utm_source,
      utm_campaign,
      utm_content,
      session_date AS first_visit_date,
      ROW_NUMBER() OVER (
        PARTITION BY customer_id
        ORDER BY session_date ASC
      ) AS rn
    FROM `analytics.ga4_sessions`
    WHERE utm_content IS NOT NULL
      AND customer_id IS NOT NULL
  )
  WHERE rn = 1
)

SELECT * FROM first_touch;

ROW_NUMBER() で、顧客ごとに最も古いセッションだけを残しています。集約キーは顧客LTVに揃えて customer_id 基準とし、customer_id が載っていない(ログイン前で名寄せできていない)行は WHERE customer_id IS NOT NULL で除いています。これで「最初に出会ったクリエイティブ」が1顧客1行で確定します。

次に、この初回流入クリエイティブと受注データを結合し、クリエイティブ別にLTVを集計します。

-- クリエイティブ別にLTVを集計する
WITH first_touch AS (
  SELECT
    customer_id,
    utm_source,
    utm_campaign,
    utm_content AS creative,
    first_visit_date
  FROM (
    SELECT
      customer_id,
      utm_source,
      utm_campaign,
      utm_content,
      session_date AS first_visit_date,
      ROW_NUMBER() OVER (
        PARTITION BY customer_id
        ORDER BY session_date ASC
      ) AS rn
    FROM `analytics.ga4_sessions`
    WHERE utm_content IS NOT NULL
      AND customer_id IS NOT NULL
  )
  WHERE rn = 1
),

customer_revenue AS (
  SELECT
    customer_id,
    COUNT(DISTINCT order_id) AS order_count,
    SUM(order_amount) AS total_revenue
  FROM `analytics.orders`
  WHERE order_date >= '2026-01-01'
  GROUP BY customer_id
)

SELECT
  ft.creative,
  ft.utm_campaign,
  COUNT(DISTINCT ft.customer_id) AS customers,
  SUM(cr.total_revenue) AS ltv_sum,
  SAFE_DIVIDE(SUM(cr.total_revenue), COUNT(DISTINCT ft.customer_id)) AS ltv_per_customer,
  SAFE_DIVIDE(SUM(cr.order_count), COUNT(DISTINCT ft.customer_id)) AS orders_per_customer
FROM first_touch AS ft
LEFT JOIN customer_revenue AS cr
  ON ft.customer_id = cr.customer_id
GROUP BY ft.creative, ft.utm_campaign
ORDER BY ltv_per_customer DESC;

このクエリで、クリエイティブごとに次の値が出ます。

  • customers: そのクリエイティブが連れてきた顧客数
  • ltv_sum: その顧客たちが生んだ累積売上
  • ltv_per_customer: 顧客1人あたりのLTV
  • orders_per_customer: 顧客1人あたりの平均注文回数

SAFE_DIVIDE を使っているのは、顧客数がゼロのときにゼロ除算でクエリが止まらないようにするためです。

広告費を持っている場合は、ここに ad_spend を結合して ltv_sum / ad_spend を計算すれば、初回ROASではなく「LTVベースのROAS」が出せます。


勝ちパターンの読み解き

集計結果が出たら、いくつかの軸で読み解いていきます。

初回ROASとLTVを並べて比べる

まず見たいのは、初回ROASの順位とLTV順位がどれだけ入れ替わっているかです。順位が大きく動いたクリエイティブこそ、ROASだけ見ていたら判断を誤っていた候補です。

  • 初回ROASは低いがLTVは高い → これまで過小評価していた勝ちパターン
  • 初回ROASは高いがLTVは低い → 初回だけ強い、リピートしない顧客を集めている可能性

1人あたり注文回数に注目する

orders_per_customer は、そのクリエイティブが「リピートする顧客」を連れてきているかを示します。この値が高いクリエイティブは、訴求内容と商品の相性が良く、定着しやすい顧客層に届いていると考えられます。訴求の中身(割引推し / 世界観推し / 機能推しなど)とこの値を突き合わせると、「どんな訴求が定着する顧客を連れてくるか」という仮説が立てられます。

クリエイティブの傾向をまとめる

個々のクリエイティブを見たあとは、グルーピングして傾向をつかみます。「初回値引きを前面に出したクリエイティブ群」と「商品の使い方やこだわりを伝えたクリエイティブ群」でLTVを比べると、値引き訴求は初回ROASが高い一方でLTVが伸びにくい、という傾向が見えることがあります。媒体別のクリエイティブROAS比較は、Meta広告×GA4×BigQueryでクリエイティブ別ROASを深掘りするも参考にしてみてください。


計測期間・帰属の注意点

LTVを扱うときは、いくつか気をつけたい点があります。

LTVは観測期間に依存する

LTVは「ある時点までに積み上がった売上」でしかありません。配信して間もないクリエイティブは、まだ顧客がリピートする時間が経っていないので、LTVが低く出るのは当然です。

公平に比べるには、「初回購入から90日以内の累積売上」のように観測窓を固定して比較すると、新しいクリエイティブと古いクリエイティブを同じ土俵で評価できます。

帰属(アトリビューション)の置き方を決めておく

本記事では「最初に流入したクリエイティブ」に売上を寄せるファーストタッチの考え方を採りました。これは「新規顧客との出会いを作った功績」を評価したいときに向いています。

一方で、最後に購入を後押ししたクリエイティブを評価したい場合はラストタッチになります。どちらが正しいということはなく、何を意思決定したいかで選びます。大事なのは、社内で帰属の定義を1つに決めて、ぶれずに使い続けることです。

顧客の名寄せ精度に注意する

クリエイティブとLTVを結ぶには、customer_id のような顧客を一意に識別するキーが必要です。GA4の user_pseudo_id はブラウザやデバイスが変わると別人として扱われるため、ログイン情報などをもとにした顧客IDと突き合わせておくと精度が上がります。

名寄せが甘いと、同じ人が複数顧客としてカウントされ、LTVが実態より低く見えてしまうので注意が必要です。


まとめ

ROASは運用判断の出発点として有効ですが、初回購入で評価の窓が閉じてしまうため、それだけでクリエイティブの優劣を決めるのは危険です。

クリエイティブ別のLTVをBigQueryで追いかけると、「初回ROASは控えめでも、長く付き合う顧客を連れてくるクリエイティブ」を見つけられます。設計の要点は次の3つでした。

  • UTMパラメータでクリエイティブと初回流入を識別する
  • 初回流入を顧客IDに紐づけ、受注テーブルで売上を正とする
  • 売上を「最初に出会ったクリエイティブ」に集約してLTVを積み上げる

そのうえで、初回ROASとLTVの順位の入れ替わりや、1人あたり注文回数に注目すると、これまで見えていなかった勝ちパターンが浮かび上がってきます。計測期間をそろえることと帰属の定義を固定することだけ守れば、クリエイティブ評価の解像度は大きく上がるはずです。