テレビCM・オフラインメディアのMMM計測
はじめに
デジタル広告はクリックやインプレッションで効果測定が容易ですが、テレビCM・OOH(屋外広告)・ラジオ・新聞などのオフラインメディアは直接的な計測が困難です。MMMは、こうしたオフラインメディアの効果をデジタルと同一基準で評価できる唯一の手法です。
日本の広告市場において、テレビ広告費は依然として年間約1.8兆円(電通「日本の広告費2024」)を占めています。この巨額の投資の効果を正確に測定することは、マーケティングROI改善の最大の機会です。
MMMの基本は初心者向け完全ガイドを、データ準備はデータ準備ガイドをご参照ください。
テレビCMデータの準備
GRP(Gross Rating Point)とは
GRPは「延べ視聴率」で、テレビCMの出稿量を測る標準指標です:
| 指標 | 定義 | 用途 |
|---|---|---|
| GRP | 番組視聴率 × スポット本数 の合計 | 出稿量の指標 |
| TRP | ターゲット視聴率ベースのGRP | ターゲット層への到達量 |
| リーチ | 1回以上接触した人の割合 | 到達率の指標 |
| フリークエンシー | 接触した人の平均接触回数 | 接触頻度の指標 |
GRPデータの前処理
import pandas as pd
import numpy as np
# ビデオリサーチ等からのGRPデータ読み込み
grp_daily = pd.read_csv("tv_grp_daily.csv", parse_dates=["date"])
# 日次→週次に集約
grp_daily["week"] = grp_daily["date"].dt.to_period("W").apply(
lambda r: r.start_time
)
# エリア別GRPの場合、加重平均で全国値を算出
# 関東:関西:中部 = 40%:25%:15% (人口比ベース)
area_weights = {"kanto": 0.40, "kansai": 0.25, "chubu": 0.15,
"other": 0.20}
weekly_grp = grp_daily.groupby("week").agg({
"grp_kanto": "sum",
"grp_kansai": "sum",
"grp_chubu": "sum",
}).reset_index()
weekly_grp["grp_national"] = (
weekly_grp["grp_kanto"] * area_weights["kanto"] +
weekly_grp["grp_kansai"] * area_weights["kansai"] +
weekly_grp["grp_chubu"] * area_weights["chubu"]
)
print(f"週次GRP統計:\n{weekly_grp['grp_national'].describe()}")
GRP vs 費用:どちらをMMMに入力すべきか
| 入力 | メリット | デメリット | 推奨 |
|---|---|---|---|
| GRP | 実際の到達量を反映 | 費用→ROI変換に追加ステップ | 推奨 |
| 費用 | ROI算出が容易 | 枠の質差を反映しない | 次善 |
| TRP | ターゲット到達を反映 | データ取得コスト高 | 理想的 |
実務上の推奨: 可能であればGRP(またはTRP)をメディア変数として使用し、費用データは別途保持してROI算出時に使います。これにより、「高単価・高視聴率枠」と「低単価・低視聴率枠」の効果差を正確に反映できます。