RORK LABEN
FUNDING — Rorkが$15Mを調達。モバイル特化のノーコードAIという立ち位置に投資家の評価が集まっていますMAX-NATIVE — Rork MaxはAR/LiDAR・Metal 3D・ウィジェット・Dynamic Island・Live Activities・HealthKit・Core MLなど、React Nativeでは届かないネイティブ領域に対応MOBILE-FIRST — BoltやLovableがWebアプリ中心なのに対し、Rorkはモバイルアプリ専業。説明文から本番品質のアプリを生成しますWWDC — WWDC26が閉幕。AIがOSのコア機能となり、iOS 27世代へ。ウィジェットやLive Activitiesの価値がさらに上がる局面ですPRICING — Rorkは無料で開始でき有料$25/月〜、Rork Maxは$200/月。Expoで素早く検証し、必要に応じてMaxでネイティブ化する多段戦略が現実的ALL-APPLE — Rork MaxのSwift直接生成はiPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまでカバーしますFUNDING — Rorkが$15Mを調達。モバイル特化のノーコードAIという立ち位置に投資家の評価が集まっていますMAX-NATIVE — Rork MaxはAR/LiDAR・Metal 3D・ウィジェット・Dynamic Island・Live Activities・HealthKit・Core MLなど、React Nativeでは届かないネイティブ領域に対応MOBILE-FIRST — BoltやLovableがWebアプリ中心なのに対し、Rorkはモバイルアプリ専業。説明文から本番品質のアプリを生成しますWWDC — WWDC26が閉幕。AIがOSのコア機能となり、iOS 27世代へ。ウィジェットやLive Activitiesの価値がさらに上がる局面ですPRICING — Rorkは無料で開始でき有料$25/月〜、Rork Maxは$200/月。Expoで素早く検証し、必要に応じてMaxでネイティブ化する多段戦略が現実的ALL-APPLE — Rork MaxのSwift直接生成はiPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまでカバーします
記事一覧/ビジネス
ビジネス/2026-06-13上級

収益の「本当の数字」を掴む — AdMob・App Store・Google Play・Stripe を突き合わせる集計設計

ダッシュボードの売上と実際の入金額は一致しません。通貨・タイムゾーン・推定値と確定値のズレを吸収し、4つの収益ソースを突き合わせる集計パイプラインを、6本並行運用の実装と運用判断とともに整理しました。

収益管理AdMob61App Store Connect7Stripe16データ設計

プレミアム記事

ある月、AdMob のダッシュボードは前月比 12% 増を示していたのに、実際の入金は横ばいでした。最初はバグを疑いましたが、原因は単純で、ダッシュボードの「推定収益」と確定した入金額は別物だったのです。為替の確定タイミング、無効トラフィックの事後調整、支払いの最低額への到達——いくつもの要因で、画面の数字と銀行口座の数字はずれます。

個人開発でアプリを6本運用していると、収益は AdMob・App Store・Google Play・Stripe の4つから入ってきます。それぞれが別の通貨、別のタイムゾーン、別の「推定と確定」の概念を持っています。これらを素朴に足し算すると、毎月どこかで数字が合わなくなります。ここでは、4ソースを突き合わせて「本当の数字」を掴むために組んだ集計パイプラインを、正規化のスキーマと日次集計の実装、そして月次の帳尻合わせの手順とともに共有します。

なぜ数字がずれるのか — ソース別の性格

突き合わせを設計する前に、4つのソースがそれぞれどう嘘をつくかを理解する必要がありました。

AdMob の画面に出るのは推定収益です。無効トラフィックの控除や為替の確定により、月末に確定する金額は数%下振れします。私の実績では、推定と確定の差はおおむね 2〜6% の範囲に収まっていました。App Store Connect と Google Play は、画面の「販売」と、財務レポートの確定額、さらに実際の入金額(手数料控除後)の3層がそれぞれ違います。Stripe は比較的素直ですが、返金やチャージバックが後日マイナスで入るため、発生日と確定日を分けて持たないと月をまたいだときに合わなくなります。

つまり、どのソースも「今いくら稼いだか」を一意には教えてくれません。設計の出発点は、推定値と確定値を別の列として持つことだと最初に決めました。

正規化スキーマ — すべてを同じ形に直す

4ソースのデータ形式はバラバラなので、いったん共通の形に正規化します。私が使っているスキーマはこうです。

CREATE TABLE revenue_events (
  app_id        TEXT NOT NULL,        -- 6本のどれか
  source        TEXT NOT NULL,        -- admob / appstore / googleplay / stripe
  kind          TEXT NOT NULL,        -- ad / iap / subscription / refund
  occurred_on   DATE NOT NULL,        -- 発生日(UTC基準に統一)
  amount_minor  INTEGER NOT NULL,     -- 最小通貨単位(円なら1=1円, ドルなら1=1セント)
  currency      TEXT NOT NULL,        -- JPY / USD など
  status        TEXT NOT NULL,        -- estimated / finalized
  fx_to_jpy     REAL,                 -- 確定時の対円レート(estimated は NULL 可)
  PRIMARY KEY (app_id, source, kind, occurred_on, status)
);

肝は3つです。金額を浮動小数ではなく最小通貨単位の整数(amount_minor)で持つことで、丸め誤差が積み上がるのを防ぎます。status で推定と確定を明確に分け、同じ日・同じソースの行が二重に立つのを主キーで防ぎます。そして為替は「集計時の今のレート」ではなく「確定時のレート」を fx_to_jpy に保存し、後から再集計しても過去の数字が動かないようにします。

通貨換算をうっかり集計時のレートでやると、月初に見た数字と月末に見た数字が変わってしまい、信頼できないダッシュボードになります。これは一度やって痛い目を見ました。

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

この記事の続きを読む

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

この記事で得られること
推定値と確定入金額がなぜズレるのかを4ソース別に切り分け、突き合わせる集計の考え方
通貨・タイムゾーン・返金を吸収する正規化スキーマと、日次で集計する実装の骨格
ダッシュボードの数字を鵜呑みにせず、月次で入金と帳尻を合わせる運用手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

ビジネス2026-03-25
Rork アプリ自動収益化パイプライン完全設計 — 寝ている間に稼ぐ5つの自動化エンジン
Rorkで開発したアプリの収益を完全自動化する5つのパイプライン設計を網羅的に解説。サブスク自動更新・広告最適化・アプリ内購入の動的価格設定・自動カスタマーサポート・レビュー駆動型改善ループの実装手順とコードを提供します。
ビジネス2026-06-04
SDK を増やさず AdMob の入札需要を広げる — パートナー11社を申請して見えた「有効化≠配信」の境界
AdMob のビディングソースに SDK 不要のサーバーサイド入札パートナーを追加する作業を実際に進めた記録です。doc 型と form 型の申請フローの違い、reCAPTCHA の挙動、そして「パートナーシップ有効化」と「実配信可能」が別物だという落とし穴まで、個人開発者の視点でまとめました。
ビジネス2026-05-30
AdMobの広告ユニットを棚卸しする — App Open広告のクールダウン設計まで
報酬型とインタースティシャルが増えて、どのユニットがどの画面で使われているか分からなくなったときの棚卸し手順と、起動のたびに出てしまうApp Open広告に4時間のクールダウンを入れる設計を、累計5,000万DLの運用経験からまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →