The Problem
Subscription revenue is the lifeblood of most iOS apps, but Apple doesn't provide a real-time revenue dashboard. You're left checking App Store Connect analytics with a 24-48 hour delay, or building custom infrastructure to process App Store Server Notifications yourself.
The Solution
Yeethook listens for all subscription-related App Store Server Notifications V2 and delivers them to your Slack #revenue channel:
- SUBSCRIBED — A new subscriber or re-subscriber.
- DID_RENEW — A successful renewal (recurring revenue confirmed).
- DID_CHANGE_RENEWAL_STATUS — A customer toggled auto-renew (churn signal).
- DID_CHANGE_RENEWAL_PREF — A customer upgraded or downgraded.
- DID_FAIL_TO_RENEW — A billing failure (involuntary churn risk).
- EXPIRED — A subscription ended.
- REFUND — Apple refunded a transaction.
Each event arrives in Slack as a formatted message with the event type and app name. With a p8 key, you also see the product name, price, and transaction details.
How to Set It Up
- Sign up at yeethook.com and create a team.
- Upload your p8 key to configure App Store Server Notifications automatically.
- Add your app — Yeethook registers the notification URL with Apple.
- Connect Slack — Route subscription events to your
#revenuechannel.
What You Can Monitor
- MRR signals: Track new subscriptions (SUBSCRIBED) and renewals (DID_RENEW) to gauge monthly recurring revenue.
- Churn signals: Watch for DID_CHANGE_RENEWAL_STATUS with AUTO_RENEW_DISABLED — this is your earliest warning.
- Billing health: Monitor DID_FAIL_TO_RENEW to catch payment processing issues.
- Refund rate: Track REFUND events relative to purchases.