メインコンテンツへスキップ
実践ガイド

MMMのためのデータ収集チェックリスト:広告プラットフォーム別完全ガイド

MMMの精度はデータの品質で決まります。Google Ads、Meta、Yahoo!広告、LINE広告、テレビCMなど、主要プラットフォーム別に取得すべき指標・取得方法・注意点をチェックリスト形式で網羅的にまとめた実務ガイドです。

MMM Lab 編集部2026/3/110分で読める8

はじめに:MMMの精度はデータの質で8割決まる

マーケティング・ミックス・モデリング(MMM)の結果の信頼性は、入力データの品質に大きく依存します。「ゴミを入れればゴミが出る(Garbage In, Garbage Out)」という原則は、MMMにおいて特に顕著です。

本記事では、MMMに必要なデータを広告プラットフォーム別に整理し、すぐに使えるチェックリストを提供します。データ収集は地味な作業ですが、MMMプロジェクトの成功を左右する最も重要なフェーズです。


共通ルール:全プラットフォームで統一すべき項目

データを統合するために、以下のルールを事前に決めておきましょう。

日付の粒度

粒度推奨ケースメリットデメリット
日次データが2年以上ある場合精度が高い、季節変動を捉えやすいデータ量が多い、ノイズが多い
週次最も一般的(推奨)ノイズが平滑化される、扱いやすい短期的な効果を見逃す可能性
月次データが少ない場合データ量が少なくて済む精度が低い、年間12データポイントのみ

推奨: 週次(月曜始まり)を基本とし、最低2年分(104週)以上を確保してください。

通貨・単位の統一

  • 広告費: 全てを同一通貨(例:日本円、税抜)に統一する
  • インプレッション: 千単位(000)か実数かを統一する
  • 売上: 税抜/税込を統一する。可能であれば数量(ユニット数)も取得する

プラットフォーム別データ収集ガイド

1. Google Ads

取得すべき指標

指標カラム名例重要度備考
費用google_ads_spend必須税抜で統一
インプレッションgoogle_ads_impressions推奨検索/ディスプレイを分離
クリック数google_ads_clicks推奨
コンバージョンgoogle_ads_conversions任意ラストクリックCV
表示回数シェアgoogle_ads_impression_share任意競合分析に有用

取得方法

方法A:管理画面からダウンロード

  1. Google Ads管理画面 → 「レポート」タブ
  2. カスタムレポート作成 → 期間・セグメント設定
  3. CSVまたはExcelでダウンロード

方法B:Google Ads API

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage("google-ads.yaml")

query = """
    SELECT
        segments.date,
        campaign.name,
        metrics.cost_micros,
        metrics.impressions,
        metrics.clicks
    FROM campaign
    WHERE segments.date BETWEEN '2023-01-01' AND '2024-12-31'
    ORDER BY segments.date
"""

response = client.get_service("GoogleAdsService").search_stream(
    customer_id="1234567890",
    query=query
)

方法C:BigQuery連携(推奨)

Google AdsとBigQueryを連携させると、日次のレポートが自動的にBigQueryに蓄積されます。大量データの処理に最適です。

注意点

  • 検索広告とディスプレイ広告は分離する:効果のメカニズムが異なるため、別チャネルとして投入する
  • ブランド検索とノンブランド検索を分離する:ブランド検索は内生性の問題が生じやすい
  • 費用は cost_micros(マイクロ単位)で返るため、/ 1,000,000 して円に変換する

2. Meta(Facebook / Instagram)Ads

取得すべき指標

指標カラム名例重要度備考
費用meta_spend必須
インプレッションmeta_impressions推奨
リーチmeta_reach推奨ユニークユーザー数
クリック数meta_clicks推奨リンククリックを使用
動画再生3秒meta_video_3s_views任意動画広告の場合

取得方法

方法A:Ads Manager

  1. Meta Ads Manager → 「レポート」
  2. 列のカスタマイズで必要な指標を選択
  3. 分析の軸に「日」を設定
  4. エクスポート → CSV

方法B:Marketing API

import requests

access_token = "YOUR_ACCESS_TOKEN"
account_id = "act_123456789"

url = f"https://graph.facebook.com/v18.0/{account_id}/insights"
params = {
    "access_token": access_token,
    "time_range": '{"since":"2023-01-01","until":"2024-12-31"}',
    "time_increment": 1,  # 日次
    "fields": "spend,impressions,reach,clicks",
    "level": "account",
}

response = requests.get(url, params=params)
data = response.json()

注意点

  • Meta広告はFacebookとInstagramの配信が自動最適化で混在するため、プラットフォーム別に分けるか統合するか事前に決定する
  • リーチ(ユニークユーザー数)はMeta独自の指標で、MMMのモデリングで有用
  • アトリビューションウィンドウ(1日クリック/7日クリックなど)はMMM自体が効果測定するため、気にしなくてよい

3. Yahoo!広告(日本)

取得すべき指標

指標カラム名例重要度備考
費用yahoo_spend必須検索/ディスプレイを分離
インプレッションyahoo_impressions推奨
クリック数yahoo_clicks推奨

取得方法

  1. Yahoo!広告管理画面 → 「レポート」→「パフォーマンスレポート」
  2. レポートタイプ:キャンペーン、期間:日次
  3. 「レポートのダウンロード」からCSVで取得

注意点

  • Yahoo!広告は検索連動型広告(YSA)とディスプレイ広告(YDA/旧YDN)で管理画面が分かれている
  • APIの利用には申請が必要で、レート制限が厳しい場合がある
  • 日本市場特有のプラットフォームであり、PCユーザー比率が高い傾向

4. LINE広告

取得すべき指標

指標カラム名例重要度備考
費用line_spend必須
インプレッションline_impressions推奨
クリック数line_clicks推奨
友だち追加line_friend_adds任意LINE特有のKPI

取得方法

  1. LINE Ads Platform管理画面 → 「レポート」
  2. レポートの種類・期間を設定
  3. CSVダウンロード

注意点

  • LINE広告は日本国内でのリーチが非常に広い(月間アクティブユーザー9,500万人以上)
  • 公式アカウントの友だち追加数もMMMの変数として検討可能
  • LINE広告のAPIは機能が限定的な場合がある

5. テレビCM

テレビCMのデータ取得はデジタル広告と比べて複雑です。

取得すべき指標

指標カラム名例重要度備考
GRPtv_grp必須延べ視聴率
出稿金額tv_spend必須
出稿本数tv_spots推奨15秒/30秒を区別
リーチtv_reach任意到達率

取得方法

データソース提供内容費用
ビデオリサーチ社GRPデータ(関東/関西/中京など地域別)有料契約
スイッチメディア全国個人視聴率、CM出稿データ有料契約
広告代理店レポート出稿実績・金額代理店経由
自社出稿記録CMスケジュール・金額社内データ

注意点

  • GRP(Gross Rating Point)は「延べ視聴率」であり、同じ人が2回見れば2カウントされる
  • 地域別にGRPが異なるため、全国一律の値は概算に過ぎない
  • テレビCMの効果は アドストック(残存効果) が長い傾向にある(2〜6週間)

6. YouTube / 動画広告

取得すべき指標

指標カラム名例重要度備考
費用youtube_spend必須
視聴回数youtube_views推奨
完全視聴率youtube_completion_rate任意動画品質の指標
CPVyoutube_cpv任意視聴単価

取得方法

  • Google Ads経由で配信している場合はGoogle Ads APIで取得可能
  • YouTube Studio の「アナリティクス」からオーガニックデータを取得

7. 新聞・雑誌

取得すべき指標

指標カラム名例重要度備考
出稿金額print_spend必須
掲載面積print_column_inches推奨段数
掲載紙名print_publication任意影響力の違い
推定リーチprint_estimated_reach任意発行部数ベース

取得方法

  • 広告代理店からの出稿レポート
  • 日本ABC協会の発行部数データ(リーチ推定用)

外部データ(コントロール変数)

MMMでは広告以外の売上影響要因をコントロール変数として投入することで、モデルの精度が向上します。

天気データ

import requests
import pandas as pd

# 気象庁API(無料、日次)
url = "https://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php"
# パラメータで地点・期間を指定

# Open-Meteo API(無料、REST API)
url = "https://api.open-meteo.com/v1/forecast"
params = {
    "latitude": 35.6762,  # 東京
    "longitude": 139.6503,
    "daily": "temperature_2m_max,temperature_2m_min,precipitation_sum",
    "start_date": "2023-01-01",
    "end_date": "2024-12-31",
    "timezone": "Asia/Tokyo"
}
response = requests.get(url, params=params)
weather_data = response.json()

祝日・イベントカレンダー

種類データソース取得方法
日本の祝日内閣府CSVダウンロード
大型セール自社カレンダー手動入力(楽天スーパーSALEなど)
競合イベント業界情報手動入力

経済指標

指標データソース粒度
GDP内閣府四半期
消費者物価指数(CPI)総務省統計局月次
消費者信頼感指数内閣府月次
有効求人倍率厚生労働省月次

データ統合のベストプラクティス

統合時の注意点

  1. 共通の日付キーを設定: date 列をISO 8601形式(YYYY-MM-DD)で統一する
  2. 週次集計の基準日を統一: 月曜始まりまたは日曜始まりに統一する
  3. 欠損値の処理方針を決める: 0埋めか線形補間か、チャネルごとに判断する
  4. 外れ値の確認: 大型セール日の売上急増などが外れ値でないことを確認する

統合のPythonコード例

import pandas as pd

# 各プラットフォームのデータを読み込み
google_ads = pd.read_csv("google_ads_weekly.csv", parse_dates=["date"])
meta_ads = pd.read_csv("meta_ads_weekly.csv", parse_dates=["date"])
tv_data = pd.read_csv("tv_grp_weekly.csv", parse_dates=["date"])
sales = pd.read_csv("sales_weekly.csv", parse_dates=["date"])

# 日付キーで結合(左外部結合で欠損を保持)
df = sales.copy()
df = df.merge(google_ads, on="date", how="left")
df = df.merge(meta_ads, on="date", how="left")
df = df.merge(tv_data, on="date", how="left")

# 欠損値の確認
print("欠損値の数:")
print(df.isnull().sum())

# 広告費の欠損は0で埋める(出稿がなかった = 費用0)
spend_columns = [col for col in df.columns if "spend" in col]
df[spend_columns] = df[spend_columns].fillna(0)

# 統合データの保存
df.to_csv("mmm_integrated_data.csv", index=False)
print(f"統合データ: {df.shape[0]}行 x {df.shape[1]}列")

総合チェックリスト

以下のチェックリストを使って、データ収集の漏れがないか確認しましょう。

#チェック項目状態
1日付粒度は統一されているか(週次推奨)[ ]
2通貨単位は統一されているか(円/税抜)[ ]
3最低2年分のデータがあるか[ ]
4Google Ads(検索/ディスプレイ別)を取得したか[ ]
5ブランド/ノンブランド検索を分離したか[ ]
6Meta広告データを取得したか[ ]
7Yahoo!広告データを取得したか(該当する場合)[ ]
8LINE広告データを取得したか(該当する場合)[ ]
9テレビCMデータ(GRP/出稿金額)を取得したか[ ]
10YouTube/動画広告データを取得したか[ ]
11新聞・雑誌データを取得したか(該当する場合)[ ]
12売上データ(金額+数量)を取得したか[ ]
13天気データを取得したか[ ]
14祝日・セール・イベントフラグを作成したか[ ]
15経済指標を取得したか(CPI、消費者信頼感など)[ ]
16全データが共通の日付キーで結合できるか[ ]
17欠損値の処理方針を決めたか[ ]
18外れ値の確認を行ったか[ ]

まとめ

データ収集はMMMプロジェクトの中で最も時間がかかるフェーズですが、ここでの手抜きはモデルの精度に直結します。本チェックリストを活用して、体系的かつ漏れのないデータ収集を心がけてください。特に、デジタル広告のブランド検索/ノンブランド検索の分離と、テレビCMのGRPデータの取得は、日本市場のMMMにおいて精度を大きく左右するポイントです。

MMMをもっと深く学びませんか?

理論から実践まで体系的に学べるコース・記事を多数ご用意。 無料プランでも基礎コンテンツにアクセスできます。

MMMの最新情報をお届けします

新着記事・コース更新をメールでお知らせ

関連記事