個人で壁紙アプリを運用していると、広告収益は「設定して終わり」にはなりません。放っておくと、ある日の何気ない設定変更が静かに収益を削っていることがあります。先月の私がまさにそうでした。インタースティシャル広告の推定収益が目に見えて落ち、原因を突き止めるのに数日を要したのです。犯人は、自分が良かれと思って加えた一つの設定変更でした。この記事は、その復旧の過程で固まった「メディエーションのフロアをどう触るか」という判断軸の話です。
結論から言うと、いちばん効いたのは「フロアをOFFにしてはいけない」という一行のルールでした。一見すると、フロア(最低eCPM)を外せば在庫が売れやすくなって収益が増えそうに思えます。実際は逆でした。
フロアをOFFにして収益が崩れた話
メディエーションに新しい広告ネットワークを追加する準備として、AdMobのインタースティシャルのグループからeCPMフロアを一時的に全部外したことがあります。「フロアがあると新規ネットワークの入札が弾かれるかもしれない」と考えたのですが、これは誤りでした。
フロアをOFFにすると、Biddingを含むメディエーション全体に対する最低eCPMの歯止めが消えます。結果として、安い入札でも在庫が約定するようになり、表示は増えるのに単価が崩れて、推定収益はむしろ下がりました。フロアは「新規ネットワークを弾く壁」ではなく「全ネットワークに対して最低価格を主張する床」だったのです。気づいてからフロアを実勢ベースで復元し、収益は元の水準に戻りました。
公式ドキュメントには「フロアを設定できます」とは書いてありますが、「INTでフロアをOFFにすると何が起きるか」までは書かれていません。ここは実際に踏んでみて初めて分かった落とし穴でした。
フロアは実勢eCPMの50〜60%に置く
では、いくらに設定するのか。私が42グループを運用しながら固めた目安は、INTフロア = 直近30日の実勢eCPM × 50〜60% です。
たとえば実勢eCPMが$16前後の地域なら、フロアは$8.5あたりに置きます。実勢$10の地域なら$5〜$6。フロアと実勢eCPMの比率が65%を超えてきたら、フロアが高すぎてマッチ率を圧迫している可能性があるので見直します。逆に40%を切るほど低ければ、もう少し攻めても取りこぼしは少ないと判断できます。
実際の運用で手元に置いている早見表は、おおよそ次のようなものです。地域ごとに実勢eCPMは大きく違うので、固定額ではなく「比率」で考えるのが要点です。
| 地域の実勢eCPM(直近30日) | INTフロアの目安(50〜60%) | 運用メモ |
| $16前後(高単価地域) | $8.5前後 | 比率65%超でマッチ率を圧迫しやすい |
| $10前後(中単価地域) | $5〜$6 | 標準。±30%の範囲で微調整 |
| $4前後(低単価地域) | $2前後 | 比率40%を切るなら少し攻めてよい |
| バナー全般($0.10〜$0.30) | OFF | フロアを立てるとフィル率が落ちる |
ここで大事なのは、バナーには同じ理屈を当てはめないことです。バナーの実勢eCPMは$0.10〜$0.30と低く、フロアを立てるとフィル率が大きく落ちます。私はバナーは全グループでフロアをOFFにし、Googleの自動最適化に任せています。フォーマットごとに方針を変える、というのが実運用の現実解でした。
マッチ率80%を調査の境界にする
日々の健康診断は、マッチ率(match rate)を1つの指標として見ます。私の運用では、マッチ率が80%を下回ったグループを調査対象にしています。
- フロアが原因でマッチ率が落ちているなら、フロアを下げる
- フロアがOFFなのにマッチ率が低いなら、それはフロアの問題ではなく需要不足(地域やフォーマットの問題)
この切り分けができると、「とりあえずフロアを下げる」という反射的な対応を避けられます。マッチ率94%でフロア比率が高めのグループは、あえて据え置く判断もします。インプレッションが月20件未満のグループはデータが薄いので、数字に振り回されずスキップするのも大事です。
変更は一度に±30%まで
フロアを動かすときは、1回の変更幅を実勢eCPMに対して±30%以内に収めています。一気に倍にしたり半額にしたりすると、メディエーションの学習が乱れて、変更の良し悪しが評価できなくなるからです。
# フロア調整の判断フロー(擬似コード)
ratio = floor / ecpm_30d # フロア比率
if match_rate < 0.80:
if floor_is_on and ratio > 0.60:
floor = ecpm_30d * 0.55 # 高すぎ -> 実勢の55%へ
else:
investigate("demand") # 需要不足を疑う
elif ratio < 0.40:
floor = min(floor * 1.30, ecpm_30d * 0.55) # +30%上限で引き上げ
else:
hold() # 比率50-60%ならHOLD
この「比率を見て、±30%の範囲で、50〜60%に寄せる」というループを淡々と回すだけで、フロアは勝手に荒れなくなります。派手な最適化よりも、荒れさせない運用のほうが効きます。
Unity Adsのウォーターフォール終了に対応する
2026年に入って大きかったのは、AdMobメディエーションにおけるUnity Adsのウォーターフォール提供が2026年1月31日で終了したことです。これは入札(Bidding)への移行を促すもので、ウォーターフォールの枠は構造的に配信されなくなります。
私の場合、これに気づくのが遅れ、Android全20グループにUnity Adsのウォーターフォール行を残したまま運用していました。7日間で約85,000リクエストに対してフィルがほぼゼロ、という状態で初めて異常に気づき、調べてサポート終了を知ったという順番です。対応として全グループのウォーターフォール行を停止し、Unity AdsはBidding(入札)のみで監視する体制に切り替えました。
教訓は、メディエーションは「一度組んだら終わり」ではなく、各ネットワークの提供形態の変更を追い続ける必要がある、ということです。配信ゼロは収益ゼロに直結するのに、ダッシュボードの合計値だけ見ていると気づきにくい。ネットワーク別・フォーマット別にフィル状況を定期的に見る習慣が要ります。詳細はAdMob公式のUnity Adsメディエーション統合ドキュメントに記載があります。
ウォーターフォールの手動eCPMはフロアの代替にならない
もう1つ、運用していて誤解しやすかったのが「ウォーターフォールの手動eCPMをフロア代わりに使えるのでは」という発想です。これも効きませんでした。
ウォーターフォールの行に手動で設定するeCPMは、あくまでウォーターフォール内部の優先順位を決めるための値で、Biddingに対する最低価格(フロア)としては機能しません。つまり、Biddingが安い単価で約定してしまう問題は、ウォーターフォール側の数字をいくらいじっても止まらないのです。最低価格を主張したいなら、メディエーショングループのフロアを正面から設定するしかありません。
私はウォーターフォールに別ネットワークを追加するとき、参照価格の半分程度を手動eCPMの初期値にして最適化トグルをONにする、というやり方を取っていました。それ自体は優先順位の整理として有効でしたが、Unity Adsのウォーターフォール終了で参照価格そのものが消えると、この「半分ルール」も基準を失って意味をなくします。設定値は常に「何を基準にした数字か」とセットで覚えておかないと、土台が変わったときに気づけません。
月2回・15分のレビュー手順に落とす
最後に、ここまでの判断軸を定期作業に落とし込みます。私は月2回、次の手順でフロアを見直しています。1グループあたり1分、全体で15分ほどです。
- AdMobのレポートで「広告アクティビティ(メディエーション)」を過去30日で開く
- ディメンションをアプリ + メディエーショングループ、指標にインプレッション・マッチ率・推定収益を出す
- マッチ率80%未満のグループを抽出する
- 各グループのフロア比率(フロア ÷ 実勢eCPM)を確認する
- 比率が60%超かつマッチ率低下ならフロアを実勢の55%へ、±30%の範囲で調整する
この5ステップを淡々と回すだけで、42グループのフロアが実勢から乖離しなくなります。派手な最適化を一度打つよりも、毎月の地味な点検を欠かさないほうが、個人開発の広告収益はずっと安定します。私自身、フロアを触りたくなる衝動をこらえて「比率を見るだけ」で終える月もありますが、その我慢が結局いちばん効いている実感があります。
次の月初めに、まずはマッチ率が80%を切っているグループだけを抽出してみてください。それだけで、いま手を入れるべき場所がはっきりします。