◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Expo SDK 58 が 10/15 に正式リリースされました(Beta は 09/15 から)。上げる前に依存の対応状況を確認しましょう●SDK 58 ISSUE — Android ウィジェットが定期更新されない、Stripe が静的リンクになるなど初期報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Expo SDK 58 が 10/15 に正式リリースされました(Beta は 09/15 から)。上げる前に依存の対応状況を確認しましょう●SDK 58 ISSUE — Android ウィジェットが定期更新されない、Stripe が静的リンクになるなど初期報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/ビジネス
⟐ ビジネス/2026-09-06上級

eCPM が下がった月の広告収益を、国の構成と単価に切り分けます

ブレンド eCPM は単価ではなく加重平均です。下がった原因が配信国の構成なのか単価なのかを、合計差分と誤差なく一致する形で切り分ける手順とスクリプトをまとめました。低単価の国を止める前に確かめることも書き残します。

AdMob73eCPM5収益分析個人開発221Rork594

✦ プレミアム記事

月初にダッシュボードを開いて、いちばん上の数字が前月より低いことに気づいた朝がありました。ブレンド eCPM が四分の一ほど下がっていました。

私はすぐ国別のレポートを開き、単価の低い順に並べ替えました。止める国を探していたのです。候補は数分で二つ見つかりました。

ところが同じ画面の下のほうで、見込みの収益額は前月より増えていました。

平均が下がっているのに、受け取る金額は増えています。どちらかが間違っているはずだと思って、二日かけてレポートを分解し直しました。間違っていたのは、私の読み方のほうでした。

ブレンド eCPM は単価ではなく、加重平均です

AdMob の管理画面に出るブレンド eCPM は、収益を表示回数で割って 1,000 を掛けた値です。式にすると、各国の eCPM を表示シェアで重み付けした平均になります。

つまりこの数字は、二つの別々の理由で動きます。

  1. 各国の単価そのものが動いたこと(レート要因)
  2. 各国の表示シェアが動いたこと(ミックス要因)

厄介なのは、2 番だけで平均が大きく動くことです。単価の低い国の表示が増えれば、どの国の単価も一切変わっていなくてもブレンド eCPM は下がります。そして表示が増えたぶん、収益は増えます。

私が並べ替えていたのは 1 番のつもりで、実際に起きていたのは 2 番だと気づいたのは、二日目の午後でした。個人開発でアプリを何本か並行して回していると、この取り違えは季節ごとに戻ってきます。オーガニックの流入が伸びる国は、たいてい単価の低い地域だからです。

単価は比べるための数字であって、止めるかどうかを決める数字ではありません。 この線引きを持たないまま国別レポートを開くと、収益を削る側の判断へまっすぐ歩いていきます。

差分を「構成」と「単価」に、誤差なく割ります

要因分解にはいくつも流儀がありますが、月次運用で使うなら「二つの効果を足すと合計差分にぴたり一致する」ことが条件だと私は考えています。残差が出る分解は、翌月にはもう信用されなくなるためです。

条件を満たす一番簡単な形が、対称平均を使う分解です。国 i の eCPM を r、表示シェアを w、前期を 0、当期を 1 とすると、こう書けます。

要因式読み方
レート要因Σ (r1 − r0) × (w0 + w1) / 2構成が動かなかったとしたら、単価の変化だけで平均はどれだけ動いたか
ミックス要因Σ (w1 − w0) × (r0 + r1) / 2単価が動かなかったとしたら、構成の変化だけで平均はどれだけ動いたか

この二つを足すと、ブレンド eCPM の差分と厳密に一致します。交差項をどちらかに押し付けるのではなく、半分ずつ両側に配る形になっているためです。

片方の期にしか存在しない国の扱いだけ、決めておく必要があります。新しく配信が始まった国には前期の単価がありません。ここは「単価は変わっていない」と置いて、寄与を丸ごとミックス側へ寄せるのが実務に合います。新規の国が平均を動かしたのは、単価が変わったからではなく、そこに表示が生まれたからです。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦ブレンド eCPM が動いたとき、配信国の構成が変わったのか単価そのものが変わったのかを、手元の国別レポートだけで切り分けられるようになります
✦単価の低い国への配信を止めるという判断に踏み切る前に、その国が平均を押し下げているだけなのか収益そのものを削っているのかを、数分で確かめられるようになります
✦国別 CSV から構成要因と単価要因を分解し、合計差分に誤差なく一致させる 60 行ほどのスクリプトを、そのまま自分のアプリの月次運用に組み込めるようになります
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⟐ ビジネス2026-05-21
Rork アプリで AdMob Bidding を本番投入した実装メモ — 5 AdNetwork 同時入札の eCPM 推移と運用設計
Rork で生成したアプリに AdMob Bidding を導入し、5 AdNetwork の同時入札を本番運用しています。ウォーターフォールから移行した eCPM 推移、fill rate の変化、Claude in Chrome での日次運用までを実装メモとして整理しました。
⟐ ビジネス2026-05-03
Rork で作ったアプリを AdMob で月10万円にするまで — 個人開発者の収益化実践戦略
Rork で作ったモバイルアプリを AdMob 広告で収益化し、月10万円ラインへ近づけるための実践的な設計をまとめました。ジャンル選定、ATT と初期化の順番、頻度制御の実装、ARPDAU での判断、app-ads.txt、複数アプリ運営までを扱います。
⟐ ビジネス2026-05-02
個人開発で月10万円を超えるアプリ収益化の実践戦略 — Rork で作って試した収益チューニングの全工程
個人開発のアプリで月10万円の壁を超えるための実践戦略。Rork で作ったアプリで実際に試した広告収益最大化、IAP 価格チューニング、サブスク継続率向上、ASO 強化までの全工程を、12 年間の収益化試行錯誤に基づく数値とコードで解説します。