⊕ Adoption & Engagement
hover any card for definition
Daily active users
New vs Returning
Daily active users by platform
Loading…
Top events
Loading…
Country (top 15)
Loading…
Platform / device
Loading…
PRO / subscription split
Adoption funnel
Loading…
⚙ Version Adoption
hover any card for definition
Active users by app version (stacked) — vertical lines = release dates
Versions by users
Loading…
Host OS versions (GA4)
Mixed host versions. Relayed Watch events carry the iPhone OS; Watch OS is reported separately below.
Loading…
Hardware & Watch
Host hardware models
GA4 totalUsers by model, grouped by family. A user can appear on multiple rows. Watch relay events describe the iPhone host. Unknown hardware has its own distinct user count.
Loading…
Watch models
User property watch_model · users reporting a paired Watch, not a count of watches. Verified model names come from Xcode device profiles; other identifiers stay raw.
Loading…
Watch OS
User property watch_os · users reporting a paired Watch, not a count of watches.
Loading…
Watch display sizes
watch_layout event · category in points, mapped to case size. Users can report multiple sizes. This event report works before Watch user properties are registered.
Loading…
Product Usage — feature mix across platforms
⚠ Data Quality
device + mode dim coverage on success events
Loading…
Loading…
Loading…
◆ Headline KPIs
post-install engagement signals
📱 Platform & Mode mix
where features are used (success events only)
Daily users per platform
Platform mix (users)
Mode share (users)
Platform × Mode heatmap
Loading…
⚙ Tech adoption
what users pick: providers, models, voices, locale
LLM providers (success events)
Loading…
Top models
Loading…
TTS engines
Loading…
Languages (success events)
Loading…
🔗 Engagement & entry points
how users find & navigate features
Tab tapped
Loading…
Entry points
Loading…
Tips engagement
Loading…
HA usage (compact)
Loading…
📝 Notes
where, what and how Notes is used
Notes
Gate by device, lane and result
Loading…
Tool turns by device and lane
Loading…
Mutations by action and result
Loading…
Sync by trigger
Loading…
Loading…
TV Sync — Apple TV ↔ iPhone pairing
Daily TV sync failures
Errors by error_type
Loading…
Status codes
Errors by device
Loading…
◆ Telemetry health (GA4 vs bridge D1)
Loading…
Watch — bridge D1 (authoritative)
All platforms — GA4 (approximate)
Behavior & Funnels
🔔 Notifications
do our nudges work?
Permission grant rate
Notification funnel (shown → tap · CTR)
Loading…
🎯 Trial friction & conversion
where FREE hits the wall → what converts
Trial limit hit (by mode)
Conversion surfaces
Loading…
⚡ Managed activation
the 22%-never-query problem
Managed subscription runtime
Loading…
💳 Purchase fulfilment
did the entitlement actually arrive?
Fulfilment events
Loading…
Loading…
🎛 Feature adoption
what people turn on
Feature toggles (users)
🧭 Setup & provider
activation drop-off
Onboarding / wizard depth
Loading…
Provider / BYOK setup
Loading…
📱 Usage by surface
which surfaces get used
CarPlay
Loading…
Home Assistant
Loading…
Comparison
Loading…
Watch / macOS / clipboard
Loading…
Templates
Loading…
😕 Friction & failures
where it hurts · where users ask for help
Where it hurts
Loading…
Support & user voice
Loading…
🔍 Event Explorer
every logged event — if we log it, it shows here
All events (–)
Loading…
Apple Ads ROAS — spend × GA4 revenue
Spend = Apple Search Ads Reporting API (synced by push-asa-spend.py). Revenue basis:
GA4 estimate = purchaseRevenue by first-touch campaign (gross,
pre-Apple-commission, ATT/threshold-limited, first-touch → directional).
Net proceeds (D1) = authoritative Apple net, reconciled per product class from
revenue_ledger × apple_proceeds_daily — ties out to App Store
Connect, attributable only for purchases made after the attribution app build ships (older →
(unattributed)).
Revenue basis:
◆ Headline
Apple Ads campaigns, selected window
👥 Apple Ads vs organic
GA4 revenue by acquisition source (user-scoped)
Loading…
📊 Per-campaign ROAS
spend vs GA4 revenue, joined on campaign id