Google / Yahoo JP / Meta / Microsoft の 4 媒体を日次で BigQuery に集約する SaaS を実戦比較。最終結論: Windsor.ai Basic $23/月 が小〜中規模 (月広告費 ~¥50M) の最適解。Supermetrics は高機能だが $299/月〜で過剰、Databeat は安いが Yahoo JP 接続不安定、自前 API は Yahoo の仕様変更追従コストが重い。325 コネクタ・SQL JOIN 直結・BigQuery Google 公式 Connector で、"見えるべき数字を毎朝出す" という目的に一番素直。
なぜ統合 SaaS が必要なのか
Google / Yahoo JP / Meta / Microsoft の 4 媒体を日次で BigQuery に集約する SaaS 6 本を実戦比較し、Windsor.ai Basic $23/月 が月広告費 ¥50M 規模の最適解と結論。Supermetrics は機能過多、Databeat は Yahoo 接続不安定、自前 API は Yahoo 仕様変更の保守コストが重い。
mixednuts 配下で 5 クライアント案件 × 平均 3 媒体 = 15 媒体アカウントを運用しています。これを毎朝レビューしようとすると:
- Google Ads は自前 API (業界標準、Python google-ads ライブラリ)
- Meta Ads は Facebook Marketing API
- Yahoo JP は Yahoo! 広告 API (QPS 5/sec、OAuth トークンが数時間で失効)
- Microsoft Ads は Bing Ads API
それぞれ認証方式・データ構造・レート制限が違う。15 アカウント × 4 媒体 = 延べ 60 の API 呼び出しを毎日安定稼働させるのは、個人レベルでは難しい。SaaS に委ねるべき領域です。
候補 6 本を実戦比較
| SaaS | 価格 | コネクタ数 | Yahoo JP | 接続安定度 | 日本語ドキュメント |
|---|---|---|---|---|---|
| Windsor.ai Basic | $23/月 | 325 | ✅ | ◎ | ❌ (英語のみ) |
| Supermetrics | $299/月〜 | 150+ | ✅ | ◎ | △ |
| Databeat | ¥5,000/月〜 | 30 | ✅ | △ | ◎ |
| Porter Metrics | $29/月〜 | 20 | ❌ | ◯ | ❌ |
| Improvado | $1,500/月〜 | 500+ | ✅ | ◎ | ❌ |
| 自前 API | コード工数 | 無限 | ✅ (自前実装) | ○ | — |
Supermetrics (却下)
機能は最強。だが最小プラン $299/月は、mixednuts 規模では コスト構造が見合わない。月広告費 ¥50M 規模のクライアントが 2 〜 3 社程度なら、統合 SaaS の予算は $100 以内に収めたい。
Databeat (検討後却下)
日本語ドキュメントが充実しているのは強み。だが Yahoo JP コネクタの接続が数日に一度切れる 報告を運用会社から受けており、安定性が不安。小規模案件では許容範囲だが、複数クライアントに横展開する基盤には不向き。
Porter Metrics (却下)
価格は魅力だが Yahoo JP 非対応。日本市場で Yahoo JP を無視はできない。
Improvado (却下)
エンタープライズ向け。月 $1,500〜 は mixednuts 規模では論外。
自前 API (一部採用)
Google Ads は自前で実装済みで安定稼働。Meta も実装コストは低い。詰まるのは Yahoo JP:
- エラーコード 0003 = QPS 5/sec 超過。大量バックフィルで即エラー
- OAuth トークンが大きいクエリで数時間で失効する (Yahoo 側の謎挙動)
/yahoo_japanendpoint がselect_accounts+date_from/date_to非対応 (月次 endpoint しかない)
Yahoo 仕様変更が頻繁で、自前実装の保守コストが他媒体の 3 倍ほどかかる見積もり。
Windsor.ai Basic (採用)
決定打は 4 点:
- 価格: $23/月 (小規模プラン)
- Yahoo JP を含む 325 コネクタ: Meta / Microsoft / Yahoo / TikTok / LINE もあり横展開余地
- BigQuery 公式 Connector: Google 公式の Data Transfer Service (既存の GCP Free 枠で動く)
- Destination SQL JOIN: データを BigQuery に落とすだけなので、既存の SQL / BI と即接続
Free 30 日トライアル → 本契約 Basic $23/月、という順で導入。
実装 — scripts/integrations/windsor/windsor_sync.py の構成
mixednuts では Windsor.ai の REST API を直接叩かず、BigQuery データセット経由でデータ取得 する設計にしました。理由:
- Windsor.ai → BigQuery は 1 時間おきに自動 sync されるので、こちら側は BigQuery を
SELECTするだけ - BigQuery にデータが溜まっていれば、他のマーケ分析にも即再利用できる
- Windsor の API を叩くと 1 リクエストずつカウントされるが、BigQuery は Free 枠内で大量クエリ可能
# scripts/integrations/windsor/windsor_sync.py (抜粋, 450 行中の核)
from google.cloud import bigquery
from google.oauth2 import service_account
def fetch_daily(client_id: str, channel: str, start_date: str, end_date: str):
"""Windsor.ai が BigQuery に落とした広告データを取得"""
creds = service_account.Credentials.from_service_account_file(
'_secrets/google-service-account.json',
scopes=['https://www.googleapis.com/auth/bigquery'],
)
client = bigquery.Client(credentials=creds, project="ai-agent-mixednuts")
query = f"""
SELECT
date, campaign_name, adgroup_name,
cost, imps, clicks, conv_value, conv, adgroup_id
FROM `windsor_ai.{channel}_{client_id}`
WHERE date BETWEEN '{start_date}' AND '{end_date}'
ORDER BY date DESC
"""
return [dict(row) for row in client.query(query).result()]さらに、client 別 Raw Sheet に追記する関数 (append_to_raw_sheet) を組み合わせて、最終的に Meta + Yahoo + Microsoft のデータが mixednuts ダッシュボードの統合シートに自動追記 される構造に。
windsor_sync.py の実行ログ例 (2026-04-24 のバッチ):
- EC クライアント: +4,694 行 (Bing 2,574 + Meta 2,120)
- D2C クライアント: +3,731 行 (Meta のみ)
- EC クライアント: +3,047 行 (Bing 2,725 + Meta 322)
Yahoo JP の Monthly Backfill モード
Yahoo JP だけは日次 API が不安定だったので、月次 endpoint を使ったバックフィルモードを別途実装:
def yahoo_monthly_backfill(client_id: str, months_back: int = 12):
"""Yahoo JP の月次 endpoint で 12ヶ月遡及、Sheet に追記"""
for m in range(months_back):
target_month = (datetime.now() - relativedelta(months=m)).strftime("%Y-%m")
data = windsor_api_call(
endpoint="yahoo_japan",
date_preset=f"month_{target_month}", # date_from/to 非対応のための workaround
)
append_to_raw_sheet(client_id, "yahoo", data)月次の粒度でデータが揃っているだけで、日次モニタリングには物足りないが、中長期トレンド分析と予実対比には十分。日次の厳密なモニタリングは Google Ads に注力。
選定の判断軸 — 3 つのチェック
広告データ統合 SaaS を選ぶときに機械的に確認すべき 3 点:
Yahoo JP が使えるか
日本市場を無視しないなら必須。Porter Metrics や一部の欧米系は Yahoo JP 非対応。
BigQuery or Sheets への Destination があるか
データが UI 上でしか見られない SaaS は論外。SQL or Sheets に落とせることで、既存の BI / 分析基盤と統合できる。
料金が 「月広告費の 0.05%〜0.1%」 に収まるか
経験則として、広告費の 0.05–0.1% が運用ツールの妥当予算。月広告費 ¥50M なら $250〜$500/月まで。Windsor Basic $23/月は余裕。Supermetrics $299 も範囲内だが、機能過多で mixednuts には Basic で十分。
FAQ
Q. Windsor.ai の日本語サポートは? A. 2026-04 時点でゼロ。ドキュメントとサポートは英語のみ。ただし UI はシンプルで、Google Translate で十分読める。
Q. BigQuery の代わりに Google Sheets に落とすこともできるか? A. できます。Windsor.ai の Destination 一覧に Google Sheets があり、30 分ごと更新の設定が可能。Sheets 派生の運用なら、BigQuery を挟まず直接 Sheets で完結する選択肢もアリ。
Q. Meta Ads の Conversion Value が Windsor 経由だと Google Ads の値と合わない場合の対処は? A. これは SaaS の問題ではなく Meta Pixel / Conversion API の計測設定の問題。Windsor は「Meta の API から返ってきた値」をそのまま渡すだけ。乖離があれば Meta 側で確認。
Q. Yahoo JP の OAuth トークン失効への自動対応は? A. Windsor.ai 側で自動再認証される (refresh token 管理は Windsor が負う)。自前実装だとここの保守が辛い部分を Windsor が肩代わりしてくれる。
Q. データ遅延はどのくらい? A. Windsor → BigQuery の sync は 1 時間間隔。Meta / Google の API 自体が当日データの確定に 2–6 時間かかるので、当日午後の時点で朝イチの数値が見られる くらいの粒度。日次レビュー用途には十分。
Q. 乗換コストは?
A. BigQuery スキーマが Windsor 標準に合っているので、他社 SaaS からの移行は INSERT INTO ... SELECT ベースで可能。Supermetrics[1] → Windsor は 1 日仕事。
参考文献 / Sources
Windsor.ai 公式:
- Windsor.ai 公式サイト
- Windsor.ai vs Supermetrics 比較ページ
- Windsor.ai Pricing — Basic $23/月〜
比較記事 (英語):
競合 SaaS:
Yahoo JP 広告 API:
- Yahoo!広告 API リファレンス
- Yahoo広告 API エラーコード一覧 — エラー 0003 = QPS 超過
BigQuery 連携: