CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-05-23上級

Claude Code で App Store Connect と AdMob の売上を毎朝集計するパイプライン — 壁紙アプリ 4 本で 8 週運用した実装ノート

App Store Connect API と AdMob Reporting API のレスポンス揺れを Claude Code で吸収しながら、4 本の iOS 壁紙アプリの売上・AdMob 収益・サブスク継続率を毎朝 7:00 JST に統合集計する運用を 8 週間続けた、設計と実装と落とし穴の記録です。

Claude Code198App Store Connect APIAdMob13個人開発110収益分析iOS24

プレミアム記事

朝の 7:00 に Slack を開くと、4 本の壁紙アプリの前日の売上・AdMob 収益・サブスク継続率が 1 枚のサマリで届いている — そんな状態にようやくたどり着くまでに、約 8 週間を費やしました。

2014 年から個人で iOS アプリを開発し、累計 5,000 万ダウンロードを超えた今でも、毎朝のように App Store Connect と AdMob と Firebase の管理画面を順番に開いて、数字を Google スプレッドシートに転記する作業を続けていました。地味で間違えやすい仕事です。土日も忘れずに開かないと月曜の朝に 3 日分の作業が積み上がります。

このルーチンを完全に手放すために、Claude Code に「毎朝 7:00 JST に App Store Connect API と AdMob Reporting API を叩いて、4 アプリ分を JST 基準で結合してダッシュボードに書き戻す Python パイプライン」を組んでもらうことにしました。書き上げるだけなら 1 日でいけますが、本番運用で安定するまでに 8 週間かかりました。途中で詰まった具体的な落とし穴と、Claude Code がどこで効いたかを残しておきます。同じように複数アプリを個人で運営している方に届けば嬉しいです。

なぜ「公式ダッシュボードを見ればいい」では駄目だったのか

App Store Connect も AdMob も Firebase も、立派なダッシュボードを提供しています。それでも自前パイプラインを組んだ理由は 3 つあります。

1 つ目は タイムゾーンの不一致 です。App Store Connect のレポートは US Pacific 基準 (UTC-8) で日次集計され、AdMob はアカウント設定によりますが私の場合は Pacific Time (UTC-8) のまま運用されており、Firebase Analytics はプロジェクト設定で JST にしているものとそうでないものが混在していました。「2026 年 5 月 22 日の売上」を比較しようとすると、3 つのダッシュボードでカバーする時間帯が微妙にずれます。個人で 4 本のアプリを並行運用していると、このズレを頭の中で補正し続けるのは現実的ではありませんでした。

2 つ目は 過去 90 日しか自由に遡れない ことです。AdMob のレポートは GUI 上で過去 2 年分まで取れますが、毎週同じ集計を取り直すなら自前で蓄積したほうが圧倒的に早いです。8 週間運用したいま、180 日分の日次データが手元の SQLite に溜まっており、新しい施策を打ったときに「過去 6 ヶ月の同曜日比」をその場で出せるようになりました。

3 つ目は 複数アプリを横断した「気づき」の遅延 です。4 本のアプリの売上・eCPM・継続率を別々に眺めていると、「壁紙アプリ A だけ AdMob 単価が金曜から急落している」のような小さなシグナルを見落とします。1 枚に統合したダッシュボードがあれば、土日のうちに Slack 通知で気づけます。実際にこの 8 週間で、AdMob のリワード広告ユニットの 1 つで eCPM が水曜から木曜にかけて 38% 下がっていたことを朝の Slack 通知で発見し、別のメディエーション設定に切り替えて回復させた経験があります。

全体構成 — 何を取って、どこに置くか

最初に Claude Code と決めたのは、保存先と粒度です。個人開発の規模感を考えると、Cloud SQL や BigQuery を即採用するのは過剰だと判断しました。

[毎朝 06:30 JST]                              [毎朝 07:00 JST]
  asc_fetcher.py  ──┐                          ┌──> dashboard_sync.py
  admob_fetcher.py ─┤  ──> raw_*.csv (S3) ──>  │     (Google Sheets書き込み)
  fbase_fetcher.py ─┘                          ├──> slack_digest.py
                                               │     (前日比 + 異常検知)
                          merger.py             └──> revenue.db (SQLite)

                            └──>  daily_summary テーブル

S3 を中間置き場にしているのは、API 呼び出しと集計を完全に分離するためです。API 側のレート制限や認証エラーで失敗しても、生 CSV さえ残っていれば集計層は何度でも再実行できます。Claude Code に「失敗ポイントを後で原因切り分けしやすいように、API 取得・整形・配信を 3 段階に分けたい」と最初に伝えたのが、後から効いてきました。

集計は SQLite で十分でした。8 週分でも 200 KB 程度です。手元のターミナルから sqlite3 で気軽に叩けるのが、データの粒度を見直したいときに便利です。

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

この記事の続きを読む

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

この記事で得られること
App Store Connect API の JWT 認証と Sales/Trends Report 取得を Claude Code で安定化させる Python スクリプトと、レート制限・タイムゾーン・空レポート日の落とし穴の具体的な吸収方法
AdMob Reporting API v1beta の eCPM・インプレッション・推定収益を国別/フォーマット別に取得し、ASC 売上と JST 7:00 で結合する SQL とジョブ設計
8 週間運用して見えた『売上が前日比で 25% 以上動いたら Slack 通知』『新規施策の eCPM 改善 14.3%』など実数値ベースの判断ルール 6 つ
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Claude Code2026-07-06
同意ダイアログより先に広告SDKを初期化していた — Claude Code で ATT と AdMob の順序を直す
起動と同時に広告SDKを開始すると、ATT の同意が取れる前に IDFA が空のまま初期化され、フィルレートは正常なのに計測だけが薄くなります。散らばった初期化順序を Claude Code で洗い出し、ATT の解決を待ってから広告を開始する形へ直した実装を共有します。
Claude Code2026-07-08
自コードの Required Reason API 申告漏れを Claude Code で棚卸しする
PrivacyInfo.xcprivacy の理由コードは、依存ライブラリだけでなく自分のコードにも必要です。個人開発の壁紙アプリで申告漏れを見つけた経験から、Swift ソースを走査して該当 API と理由コードを突き合わせる Claude Code ワークフローをまとめます。
Claude Code2026-06-30
新型 iPhone で壁紙がぼやける問題を Claude Code で直す — 端末別解像度の振り分けを安全に増やす
新しい iPhone が出るたびに壁紙アプリで画像がぼやけたり余白が出たりする原因と、散らばった端末分岐を一枚のテーブルに集約して安全に拡張する方法を、Claude Code を使った実際のリファクタリング工程として共有します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →