どのチャネルが効いたか
を数字で配分する
「Display 広告は本当に効いていないのか?」「TVCM の効果はどうやって測るのか?」「広告予算を 20% 増やしたら売上は何 % 伸びるのか?」。マーケ・経営から繰り返し出るこれらの質問に、ラストクリックの数字だけでは答えられません。GA4 の標準レポートも広告管理画面の CV も、初期設定では「CV 直前のチャネルに 100% 配分」する集計です。
この集計でなぞると、月 100 万円の流入 CV はほとんどが 指名検索(Direct / Brand Search)に寄ります。広告経由でサイトを知った人が後日「サービス名で検索」して CV しても、ラストクリックでは「指名検索のおかげ」になる。認知段階の接点(Display・SNS・記事広告)はゼロ評価で予算が削られ、ますます指名検索ばかり伸ばす循環が始まります。アトリビューション分析は、この偏りを「どのチャネルが、CV または売上に、いくつ貢献したか」の数字で塗り替える道具です。
アトリビューション分析が出してくれるのは、「広告 A → CV 18%、広告 B → CV 27%、指名検索 → CV 28%、Display → CV 15%、SNS → CV 12%」のようなチャネル別の貢献度です。これを月次で見ると、ラストクリックでは 0% だった Display が実は 15% を担っていた、というような気付きが出ます。
手段は 2 系統。ユーザー単位のジャーニーログを使う マルチタッチアトリビューションと、週次・月次の集約データを使う マーケティングミックスモデリング。前者は「個別ユーザーの行動」、後者は「予算 → 売上の関係」を、それぞれ別の角度から推定します。両方を並走させ、配分が大きくズレるチャネルから学んでいくのが現場の標準形です。
- アトリビューション分析:コンバージョンに至るカスタマージャーニーで、どのチャネルにどれだけの貢献度を配分するかを決める枠組み。
- ラストクリックアトリビューション:CV 直前にクリックされたチャネルにのみ 100% を配分する、最も単純な単一タッチ法。
- マルチタッチアトリビューション(Multi-Touch Attribution、MTA):CV までに接触した複数のチャネルに貢献度を分配する枠組み。リニア・時間減衰・U 字(ルールベース)と Markov・Shapley(データドリブン)に分かれる。
- マルコフ連鎖アトリビューション(Markov Chain Attribution):カスタマージャーニーを状態遷移として表現し、各チャネルを取り除いた場合の CV 減少分(撤退影響)で貢献度を測る方法。
- マーケティングミックスモデリング(Marketing Mix Modeling、MMM):ユーザー単位ではなく、週次・月次の集約データを使って広告費 → CV の関係を時系列回帰で推定する手法。
- 広告残響(Adstock):広告効果が出稿後も時間をかけて減衰しながら残ること。半減期付きの加重移動平均でモデル化することが多い。
- 収穫逓減(Diminishing Returns):広告費を増やすほど 1 円あたりの CV 効率が落ちる現象。Hill 関数や対数変換でモデル化する。
01.まず結論:ラストクリックは『最後のタッチ』しか見ていない
アトリビューション分析は、コンバージョンに至るカスタマージャーニーの中で、どのチャネルにどれだけの貢献度を配分するかを決める枠組みです。ラストクリックはその中で最もシンプルな シングルタッチ法。CV 直前のタッチに 100%、それ以外に 0% を割り振ります。実装が単純で、広告プラットフォーム側の標準レポートとも噛み合うため広く使われていますが、認知 → 検討 → 決定の長いジャーニーを持つ事業ほど、この単純化が経営判断に効いてしまいます。
図:同じ 4 チャネル接触に対する 6 種類の配分モデル比較
カスタマージャーニー:Display(7 日前)→ Social(5 日前)→ Search(3 日前)→ Direct(1 日前、CV 直前)。同じ 1 件の CV を、モデルによって貢献度がどう変わるかを並べた。単位は %(合計 100%)。
| 配分モデル | Display7日前 | Social5日前 | Search3日前 | DirectCV直前 |
|---|---|---|---|---|
| ラストクリック | 0% | 0% | 0% | 100% |
| ファーストクリック | 100% | 0% | 0% | 0% |
| リニア(均等) | 25% | 25% | 25% | 25% |
| 時間減衰(半減期7日) | 18% | 22% | 27% | 33% |
| U字(位置ベース) | 40% | 10% | 10% | 40% |
| Markov(撤退影響) | 21% | 17% | 34% | 28% |
ラストクリックでは Direct(指名検索などを含む CV 直前タッチ)に 100% が寄り、認知段階の Display が完全に 0% になる。Markov の撤退影響は「Search を抜くと CV が一番大きく減る」ことを定量化する設計のため、認知(Display)・興味(Social)・検討(Search)にも妥当な貢献が配分される。
シングルタッチアトリビューションは、CV の貢献を 1 タッチだけに配分する方法(ラストクリック・ファーストクリック)。マルチタッチアトリビューション(MTA)は、CV までに接触した複数のチャネルに貢献度を分配する枠組みで、リニア・時間減衰・U 字などのルールベースと、Markov chain や Shapley 値のようなデータドリブンな方式に分かれます。Marketing Mix Modeling(MMM)はユーザー単位ではなく、週次・月次の集約データを使った時系列回帰で、広告費 → CV の関係を推定する別系統の手法です。
02.シングルタッチアトリビューションの限界
ラストクリック・ファーストクリックのようなシングルタッチ法は、設計が単純な代わりに、複数チャネルを経由する事業データを大きく歪めます。BtoB SaaS のような検討期間が長い領域ほど、影響が顕著になります。
| シングルタッチ法 | 100% 配分されるタッチ | 実務での歪み |
|---|---|---|
| ラストクリック | CV 直前のクリック | 指名検索・Direct ばかり評価が膨らみ、認知接点が過小評価される |
| ファーストクリック | ジャーニー最初のクリック | CV 直前の決定要因(指名検索・リターゲ)を 0 評価。新規獲得を強調しすぎる |
| ラストノンダイレクトクリック | Direct を除いた最後のクリック | Direct を除外する補正だが、認知接点はやはり過小評価 |
| ラストインタラクション(GA4 旧) | CV 直前の任意接触(クリック以外含む) | ラストクリックと同じ系統。基本的な歪みは変わらない |
ラストクリック評価だけで予算配分を回すと、貢献度の高いチャネルとして指名検索や Direct が浮上し、認知接点の Display・SNS・記事広告は 「CV に直結しない」と判定されて削減対象になります。すると新規認知の母数が縮み、半年〜1 年遅れで指名検索の流入そのものが先細りする、という縮退ループに入ります。「認知が無料で湧いてくる」前提のレポート設計になっていないか、定期的に疑うほうが安全です。
03.マルチタッチアトリビューション(MTA)|ルールベースとデータドリブン
マルチタッチアトリビューション(MTA)は、CV に至るまでに接触した複数のチャネルに、貢献度を分配する枠組みです。配分の決め方にはルールベース(人間が事前に重みのルールを決める)とデータドリブン(データから重みを学習する)の 2 系統があります。
| モデル | 配分ルール | 向く場面 | 弱点 |
|---|---|---|---|
| リニア(均等) | 全接触に同じ重み(4 接触なら 25% ずつ) | ジャーニーが短く、各接点の役割を均等に見たい場面 | 認知と決定が同じ重みになり、メリハリが付かない |
| 時間減衰(タイムディケイ) | CV に近いタッチほど重みが大きい(半減期付き) | 決定要因を厚めに評価したい場面 | 認知タッチが過小評価される。半減期の決め方が恣意的 |
| U 字(位置ベース) | 最初 40% / 最後 40% / 中間 20%(中間を均等分配) | 認知と決定の両端を厚く評価したい場面 | 中間タッチが軽視される。3 接触以下では分配が不安定 |
| データドリブン(マルコフ連鎖・Shapley 値) | 観察データから配分を学習。マルコフ連鎖は『チャネルを抜いた時の CV 減少分(撤退影響)』、Shapley 値は協力ゲームの理論解 | ヒューリスティック依存を抑え、データから配分を決めたい場面 | ジャーニー数とデータ量が必要。実装は GA4 のデータドリブンアトリビューションや ChannelAttribution(R)等の既製品が現実的 |
「結局どのモデルを選ぶか」で迷ったら、次の 3 段階で進めるのが現実的です。
- すでに動いている GA4 のデータドリブンアトリビューション(DDA)を見る。Shapley 値ベースで自動学習されており、無料・追加実装なしで「ラストクリックとどれくらい配分が変わるか」が見られます。ここで差が小さいなら、ラストクリックのままでも実害は少ない。
- 自前で 1 ルールを並走させる。事業特性に合わせて、ルールベース 3 モデルから 1 つを選ぶ:
- 検討期間が短い・即時 CV 中心 → 時間減衰(半減期 3〜7 日)
- 認知 → 検討 → 決定が 2〜4 週続く長いジャーニー → U 字
- 各接点の役割をフラットに見たい・初動の現状把握 → リニア
- 月 10 万 CV 規模・ジャーニー長 3 接触以上が安定的に取れるようになったら、データドリブンへ移行。GA4 DDA に加えて、ChannelAttribution(R)や Python のマルコフ連鎖実装で「撤退影響」を出し、特定チャネルを抜いたときに CV がどれだけ減るかを見ます。
重要なのは、1 つのモデルを「正解」と決めないこと。ラストクリック・自前ルール 1 つ・GA4 DDA の 3 つを並列で見て、配分が大きくズレるチャネルがあれば、そこに学びがあります(例:Display がラストクリックで 0%、DDA で 15% → 認知接点の評価が抜けていた)。月次のダッシュボードで 3 値を並べておくのが運用の出発点です。
ルールベース 3 モデル(リニア・時間減衰・U 字)は pandas 程度の道具で手書きできます。明日から手を動かすときの流れは以下の 4 ステップです。
| ステップ | やること | アウトプット |
|---|---|---|
| 01 | GA4 等から CV ジャーニーを取得(user_id / タッチのリスト / CV までの日数) | 1 行 = 1 ユーザーのジャーニーの DataFrame |
| 02 | モデルを選ぶ(リニア / 時間減衰 / U 字) | 事業の検討期間に合う重みづけ方針 |
| 03 | pandas でルール実装(半減期 7 日が定番) | 各タッチに対する貢献度の配列 |
| 04 | チャネル × 配分を集計してダッシュボード化 | チャネル別の貢献 CV 件数・% |
01 章の比較図で示した「Display → Social → Search → Direct」の 4 接触を例に、各モデルの実装をざっと示します。
# ルールベース MTA の手書き実装(pandas)
import numpy as np
import pandas as pd
# journeys: 1 行が 1 ユーザーのジャーニー(CV した行のみ)
# columns: user_id / touches(タッチのリスト)/ days_before_cv(CV までの日数のリスト)
def linear(touches):
# リニア:均等配分
n = len(touches)
return {ch: 1.0 / n for ch in touches}
def time_decay(touches, days_before_cv, half_life=7):
# 時間減衰:半減期 half_life 日。weight = 0.5 ** (Δt / half_life)
weights = np.array([0.5 ** (d / half_life) for d in days_before_cv])
weights = weights / weights.sum() # 合計 1.0 に正規化
return dict(zip(touches, weights))
def u_shape(touches):
# U 字:最初 40%、最後 40%、中間 20% を均等
n = len(touches)
if n == 1:
return {touches[0]: 1.0}
if n == 2:
return {touches[0]: 0.5, touches[-1]: 0.5}
middle = touches[1:-1]
w = {touches[0]: 0.4, touches[-1]: 0.4}
for ch in middle:
w[ch] = w.get(ch, 0) + 0.2 / len(middle)
return w
# 例:4 接触ジャーニー
touches = ["Display", "Social", "Search", "Direct"]
days = [7, 5, 3, 1]
print(linear(touches)) # 全部 0.25
print(time_decay(touches, days)) # Display 0.18 / Direct 0.33 ...
print(u_shape(touches)) # Display 0.40 / Social 0.10 / Search 0.10 / Direct 0.40GA4 の データドリブンアトリビューション(DDA)は、Google Analytics のデフォルトとして提供されているデータドリブン MTA で、内部的には Shapley 値ベースのモデルだと公式ドキュメントに明記されています。実装の中身はブラックボックスですが、ヒューリスティック(ラストクリックなど)と並んで GA4 で切り替えられるため、まずはここで「ラストクリックと DDA で見え方がどう変わるか」を見るだけでも、配分の歪みに気付けます。
04.マーケティングミックスモデリング|集約データと広告残響・収穫逓減
Marketing Mix Modeling(MMM)は、ユーザー単位ではなく、週次・月次の集約データを使って広告費 → CV(または売上)の関係を時系列回帰で推定する手法です。元々は 1960 年代に TV CM の効果測定で使われていた古典的な手法で、OSS 実装(Meta の Robyn、Google の LightweightMMM・Meridian、PyMC-Marketing など)が揃ったことで、実務でも普通に組めるやり方になりました。
図:MMM が出すアウトプットの典型例|週次 CV 数のチャネル寄与分解
観測 CV(棒の合計)を、ベース(オーガニック・指名検索など、広告非依存の常時流入)と各チャネルの寄与、モデルが説明しきれない残差に積み上げで分解する。
ベース(広告非依存の常時流入)が一番大きな割合を占め、その上に各チャネルの広告寄与が乗る、というのが MMM の典型的アウトプット。広告を止めても残るのがベースなので、「広告 ROI を語るときは『観測 CV 全体』ではなく『チャネル寄与の積み上げ部分』だけを分母にする」のが原則になる。
| MMM の構成要素 | 中身 |
|---|---|
| ベース | 広告非依存の常時流入(オーガニック・指名検索・既存顧客リピートなど) |
| チャネル寄与 | 各広告チャネルの出稿費を入力として推定した、CV 増分(広告がなければ消える分) |
| Adstock(残響) | 出稿後も時間をかけて効く効果を、半減期付きの加重移動平均でモデル化 |
| Diminishing returns(収穫逓減) | 広告費を 2 倍にしても CV は 2 倍にならない、を Hill 関数や log で表現 |
| 季節性 / 祝祭日 | 週次・月次の周期と、GW・年末年始などのイベントを別の説明変数で吸収 |
| 外部要因 | 競合の出稿、価格改定、TV CM、コロナ禍などの構造変化のダミー変数 |
MMM は構成要素が多く見えますが、実務で組むときの流れは 5 ステップに整理できます。明日から動くなら、この順番でデータを集めて、OSS の Fit に流すのが最短です。
| ステップ | やること | アウトプット |
|---|---|---|
| 01 | 週次・月次の集約データを 2〜3 年分集める(広告費・売上 / CV・外部要因) | (週数, チャネル数) の媒体費行列と目的変数の時系列 |
| 02 | ベース・チャネル寄与・季節性・外部要因を切り分けるモデル設計 | 説明変数のリストと事前分布の範囲 |
| 03 | Adstock(広告残響)と Hill 関数(収穫逓減)を組み込む | 媒体費 → 効果に効く非線形変換の関数 |
| 04 | LightweightMMM か Robyn を選んで Fit | チャネル別寄与の事後分布と Adstock 半減期 |
| 05 | 予算最適化シミュレーション(広告費 1.2 倍 → CV 増分の限界を見る) | チャネル別の追加投資に対する CV 増分カーブ |
# LightweightMMM(Google)の最小コード
# pip install lightweight_mmm
from lightweight_mmm import lightweight_mmm, preprocessing
import jax.numpy as jnp
import numpy as np
# media_data: shape = (週数, チャネル数)。広告費(円)の時系列
# target_data: shape = (週数,)。CV や売上の時系列
# extra_features: 季節性・祝祭日フラグなどの外生変数
media_scaler = preprocessing.CustomScaler(divide_operation=jnp.mean)
target_scaler = preprocessing.CustomScaler(divide_operation=jnp.mean)
media_scaled = media_scaler.fit_transform(media_data)
target_scaled = target_scaler.fit_transform(target_data)
mmm = lightweight_mmm.LightweightMMM(model_name="hill_adstock")
mmm.fit(
media=media_scaled,
target=target_scaled,
extra_features=extra_features,
media_prior=costs / costs.sum(), # 出稿コストに比例した事前
number_warmup=1000,
number_samples=1000,
number_chains=2,
)
# 各チャネルの寄与(ベースとチャネル寄与に分解)
predictions = mmm.predict(media=media_scaled, extra_features=extra_features)
media_contribution = mmm.get_posterior_metrics()実務での選択肢を整理すると次のとおり。自社のデータ規模と分析チームの体制で選びます。
- マルチタッチ(既存ツールで動かす):GA4(データドリブンアトリビューション)/ Adobe Analytics(属性 IQ)/ Optimizely / Amplitude。GA4 は無料・既存環境で動くので最初の選択肢。
- マルチタッチ(自前で組む):ルールベース(リニア・時間減衰・U字)は
pandasで 30 行。データドリブン(Markov chain)は ChannelAttribution(R)または Python の自作で数百行。 - マーケティングミックス(OSS で組む):Robyn(Meta、R 製)/ LightweightMMM または Meridian(Google、Python 製)/ PyMC-Marketing。R 中心なら Robyn、Python なら LightweightMMM / Meridian / PyMC が入口。
- マーケティングミックス(SaaS で組む):Nielsen MMM / Analytic Partners / Marketing Evolution / 国内なら マクロミル / ヴァリューズ 等のサービス。Robyn の運用代行を提供する代理店も増えている。
- ジオ実験(因果を確かめる第三層):Meta Conversion Lift / Google Geo Experiments。MTA と MMM のどちらにも依存しない、自然実験で因果を取り直すための仕組み。
選び方の指針:(a) まず GA4 の DDA を見て現状把握、(b) 1〜2 年分の集約データが溜まったら OSS の MMM(LightweightMMM か Robyn)で予算配分の係数を出す、(c) 主要キャンペーンはジオ実験で因果を確かめる、の 3 層が王道。最初から SaaS を入れる必要はありません。
Adstock と diminishing returns の扱い方(ステップ 03 の中身)
上の「やる手順」のステップ 03 で組み込むのが Adstock(時間方向の残響)と diminishing returns(出稿量に対する収穫逓減)の 2 つです。広告費を「そのまま CV に効く線形変数」として MMM に入れると精度が落ちるので、媒体費 → 効果のあいだに非線形変換を 1 枚噛ませるやり方です。Adstock は前週の出稿効果が λ 倍に減衰しながら残る形、収穫逓減は Hill 関数で「半飽和点を超えると効率が頭打ち」を表現します。
実装ステップは、(a) 媒体費の時系列に geometric_adstock で残響を入れる → (b) その出力に hill で収穫逓減をかける → (c) 変換後の値を MMM の説明変数として渡す、の 3 段。下のコードは (a)(b) の概念実装で、(c) は前述の LightweightMMM の model_name="hill_adstock" が内部で組み込んでいます。
| 変換 | 意味 | 代表的な関数形 |
|---|---|---|
| Adstock(幾何減衰) | 今週の出稿が翌週以降にも効く残響を表現 | x_t' = x_t + λ × x_{t-1}'(λ は減衰率、0 < λ < 1) |
| Adstock(遅延つき) | ピーク到達まで数週間かかる動画広告などの効き方 | Weibull 分布で遅延 + 減衰を表現(Robyn の標準) |
| Hill 関数 | 出稿量が増えても CV 効率が頭打ちになる収穫逓減 | y = x^a / (x^a + g^a)(a は急峻度、g は半飽和点) |
| log 変換 | Hill より単純な収穫逓減の表現 | y = log(1 + x) |
| S 字曲線 | 閾値以下は効かず、閾値超で急に効く(イメージ広告系) | ロジスティック関数や Gompertz |
Adstock の幾何減衰では、減衰率 λ と半減期(効果が半分になるまでの日数・週数)は λ = 0.5^(1/half_life) の関係にあります。半減期 7 日(週ベースなら 1 週弱)なら λ ≈ 0.906、半減期 14 日なら λ ≈ 0.952。検索広告のように即効性が高いチャネルは半減期 1〜3 日(λ ≈ 0.5〜0.79)、Display や動画広告のように残響が長いチャネルは半減期 7〜21 日(λ ≈ 0.91〜0.97)が出発点です。λ は推定対象で、MMM がデータから事後分布として出してくれます。
# Adstock(幾何減衰)+ Hill 関数(収穫逓減)の概念コード
import numpy as np
def geometric_adstock(x, decay=0.5):
# x: 出稿コストの時系列。decay = λ(0 < λ < 1)
y = np.zeros_like(x, dtype=float)
y[0] = x[0]
for t in range(1, len(x)):
y[t] = x[t] + decay * y[t - 1]
return y
def hill(x, half_saturation, slope=1.0):
# 半飽和点 half_saturation で y = 0.5。slope が急峻度
return x**slope / (x**slope + half_saturation**slope)
# 半減期 7 日相当(日次データ)
lam_daily = 0.5 ** (1 / 7) # ≈ 0.906
print(f"daily lambda for 7-day half-life: {lam_daily:.3f}")
# 例:1 週間 100 万円を週次出稿
spend = np.array([100, 100, 0, 0, 0, 0, 0, 0]) # 出稿は最初の 2 週間のみ
adstocked = geometric_adstock(spend, decay=lam_daily)
# 出稿停止後も、残響として効果が指数的に減衰
print(adstocked)
# Hill 関数で収穫逓減を入れる
saturated = hill(adstocked, half_saturation=80, slope=2.0)05.マルチタッチとマーケティングミックスの使い分け|ユーザー単位 vs 集約データ
MTA と MMM は同じ「アトリビューション」という言葉でくくられがちですが、入力データの粒度と出てくる洞察の方向性がまったく違います。並べて使うのが王道で、片方だけに依存するとどちらか一方の弱点に判断を引きずられます。
- ユーザー単位のジャーニーログがあり、デジタル広告中心 → MTA
- 集約データ中心で TVCM / OOH も含めたい → MMM
- 予算配分を決めたい → MMM 一択。意思決定にジオ実験を併走
| 観点 | MTA | MMM |
|---|---|---|
| 入力データ | ユーザー単位のジャーニーログ(GA4 / DMP / CDP) | 週次・月次の集約データ(広告費・売上・CV・外部要因) |
| 得意なこと | オンライン接点の役割分担。デジタル予算の配分最適化 | オフライン含む全チャネルの予算配分、長期的な ROI 評価 |
| 苦手なこと | オフライン施策(TV CM・OOH・PR)の評価。クロスデバイス | 週単位以下の細粒度の挙動。クリエイティブ単位の評価 |
| プライバシー影響 | クッキー・端末ID 依存。長いジャーニーや複数端末をまたぐ動線では取りこぼしが出る | 集約データのみ使用。デジタル広告・オフライン施策まで同じ枠で扱える |
| 必要データ量 | 個別ジャーニー 数万〜数十万件 | 週次なら 2〜3 年分(104〜156 週)が目安。最低でも 2 年 |
| 出てくる出力 | チャネル別貢献度(%) | チャネル別寄与 + Adstock 半減期 + 飽和曲線(予算最適化に直結) |
実務で精度を上げたいなら、(a) MTA でデジタル接点の役割を細粒度で見る、(b) MMM でオフライン含む長期 ROI とチャネル間の飽和を見る、(c) ジオ実験(地域別 A/B:一部地域だけ広告停止して差分を見る)で因果を確かめる、の 3 層を組み合わせるのが王道です。Google も Meta もこの三層を 「Conversion Lift × MMM × Geo Experiments」として整理しています。MTA だけで予算配分まで決めると、相関を因果と読み違える失敗が起きやすいです。
06.よくある質問(FAQ)
GA4 の『データドリブンアトリビューション』は MTA と同じものですか?
GA4 の データドリブンアトリビューション(DDA)は、MTA という大きな枠組みの中の一実装です。Google 公式ドキュメントには Shapley 値ベースの機械学習モデルだと明記されています。「MTA か DDA か」ではなく、MTA の中で、ヒューリスティック(ラストクリック・U 字など)の対極にあるデータドリブンモデルの代表例の一つが DDA、と整理すると分かりやすいです。Markov chain アトリビューションも同じデータドリブン側に立ち位置を持ちます。
MMM はどれくらいの期間のデータが必要ですか?
週次データなら最低 2 年(約 104 週)、できれば 2〜3 年(約 104〜156 週)が目安です。理由は、年次の季節性を 2 周期以上見ないと、トレンドと年次パターンの分離が不安定になるためです。月次データを使うなら最低 3 年は欲しいところ。さらに、構造変化(コロナ禍・大規模リブランド・価格改定)が期間内にある場合はダミー変数で吸収する設計にしておきます。Robyn / LightweightMMM のチュートリアルも、最低 2 年のデータを推奨しています。
Adstock の半減期はどう決めますか?
MMM では Adstock の半減期は データから推定する量です。検索広告のような即効性チャネルは半減期 1〜3 日(減衰率 λ ≈ 0.5〜0.79)、Display や動画のような残響が長いチャネルは 7〜21 日(λ ≈ 0.91〜0.97)あたりに事前分布を置くことが多いです。Robyn は Nevergrad で複数の半減期を多目的最適化で探し、LightweightMMM は Bayesian で事後分布をそのまま出します。事業ドメインの経験で大まかな範囲を絞り、最終的にはモデルが推定した事後分布で確定させる流れです。
MTA と MMM はどちらを優先すべきですか?
判断軸は事業の規模・予算配分・データの有無です。デジタル広告中心で、ユーザー単位のジャーニーログが追えているなら MTA から始めるのが速い。TV CM・OOH・PR のようなオフライン施策が大きい、または出稿期間が長いなら MMM が要ります。週次データで 2 年以上の蓄積があり、出稿の山谷がある程度ばらついていれば MMM が動かせます。最終的には MTA・MMM・ジオ実験の三層を持つのが理想で、片方だけだと別系統のチャネルへのバイアスが残ります。
07.まとめ
ラストクリックは設計が単純な分、認知接点を 0% に押し込み、指名検索・Direct ばかり伸ばす偏った予算配分につながります。マルチタッチアトリビューション(MTA)は、CV までに接触した複数のチャネルに貢献度を分配する枠組みで、リニア・時間減衰・U 字のようなルールベースと、Markov chain・Shapley 値のようなデータドリブンを使い分けます。ユーザー単位のジャーニーログがあるデジタル領域の細粒度分析に強みがあります。
Marketing Mix Modeling(MMM)は、週次・月次の集約データを使った時系列回帰で、オフライン含む全チャネルの寄与を推定します。Adstock で残響を、diminishing returns(Hill 関数や log 変換)で収穫逓減を表現し、予算を増やしたときの追加 CV を曲線として出すので、予算最適化に直結します。集約データだけで動くので、ユーザー単位の追跡が難しいオフライン施策(TVCM・OOH・PR)の効き目も同じ枠で扱えます。
どちらも単独で完結する手法ではありません。MTA で接点の役割を見て、MMM で長期 ROI と飽和を見て、最後にジオ実験で因果を確かめる、の三層を組み合わせるのが現実的な運用です。
A/B テストできない施策の効果測定
差分の差分と傾向スコアマッチングで観察データから効果を取り出す実務手順を整理しています。
SEO KPI 設計(BtoB)
BtoB SaaS の検索流入を CV まで運ぶ KPI 設計を整理しています。
SEO 分析の統計入門
Search Console データを統計的に読み解くための入門。
回帰分析の基礎
MMM の根幹である線形回帰の使い方を整理しています。
アトリビューション分析・MMM の設計をご相談ください
ラストクリックを脱却した広告予算配分のための、GA4 データドリブンアトリビューションの読み解き、Markov chain アトリビューションの実装、Robyn / LightweightMMM での MMM 構築までを伴走支援します。お気軽にお問い合わせください。

