Comprehensive business metrics overview
Business Metrics Dashboard
Loading metrics…
💰 Advertising Spend
Meta Ads (30d)
—
— impressions · — clicks
Reddit Ads (30d)
—
— impressions · — clicks
Total Ad Spend
—
Combined 30-day spend
📊 Traffic & Engagement
Site Visits (30d)
—
— unique devices
Accounts Created (30d)
—
— all-time
Stories Played (30d)
—
Audio playback count
Stories Generated
—
— fresh · — cached
Cache Hit Rate
—
Cost savings from cache
📱 App Downloads
Apple (iOS)
—
App Store downloads
Web App
—
PWA installations
Total Downloads
—
Apple + web (Play downloads unavailable)
💳 Purchases & Revenue (30d)
Apple Purchases
—
Revenue: —
Android Purchases
—
Revenue: —
Stripe Purchases
—
Revenue: —
Total Revenue
—
— total purchases
📈 App Store Analytics
Recent Sales
—
— units · —
Impressions (30d)
—
App Store Discovery and Engagement
Product Page Views (30d)
—
App Store product page
Active Subscriptions
—
— free trials · — billing issues
Churn (Today)
—
Report: —
⚙️ Integration Status
Setup Required: Some metrics require API configuration in environment variables.
- Meta Ads: Set
META_ACCESS_TOKENandMETA_AD_ACCOUNT_ID - Reddit Ads: Set
REDDIT_CLIENT_ID,REDDIT_CLIENT_SECRET,REDDIT_REFRESH_TOKEN, andREDDIT_AD_ACCOUNT_ID - App Downloads: Requires App Store Connect API integration. Google Play download counts are hidden until Play Console reporting is available.
- Android Purchases: Requires Google Play Console API integration
- Stripe: Set
STRIPE_SECRET_KEYfor web purchase tracking
See src/services/advertising.service.ts and src/services/analytics.service.ts for implementation details.
Performance Diagnostics
Collecting telemetry…
Avg Gen
—
p95 —
Requests
—
— fresh
Cache Hit
—
— cached
API p95
—
errors —
Inventory
—
audio —
Fresh Cost
—
token + TTS proxy
Runtime
—
timeouts/errors
Auth Fail
—
401/403 signals
Generation Timeline
Slow Endpoints
Endpoint Errors
Vercel Runtime (Observability)
Loading Vercel runtime metrics…
Recent Runtime Errors
Inventory Growth
Story Mix
Runtime Health
Auth Health
Operational Impact
Most Played
Most Bookmarked
Top Cache Earners
Manual Story Generation Test
Trigger the same story endpoint used by the mobile apps. Use cache normally, bypass cache for a fresh generation, or force a cached story only.
Fixtures cover landmark, city, state, and county-style test locations.
Resolved through an admin-only Google geocode helper, then submitted to the mobile story endpoint.
Ready.
Result
Run a manual story generation to see latency, cache status, database fields, story text, and audio.