The standard App Store playbook assumes a subscription business with accounts and an ad budget. You have neither: v1 is a one-time unlock, there are no accounts, sync is the user's own iCloud, and "your photos stay on your phone" is a selling point. So most of that playbook's machinery — grace periods, win-back offers, save rates, attribution windows — is not applicable yet, and pretending otherwise would have you building plumbing for a business you don't run.
The funnel order from the playbook holds, translated: depth → conversion → discovery → spend. Fix why people stop cataloguing before you optimise a screenshot, and don't spend a euro on ads until the first two are healthy.
Your app's whole trust argument is that it doesn't ship people's collections anywhere. An analytics SDK that phones home with object names would make that a lie, and it's the one lie a collector community would never forgive. So the rule is absolute and cheap to hold: you log that a thing happened and its shape, never what the thing was.
Bucket every count before it leaves the device — 1–9 / 10–49 / 50–99 / 100–249 / 250–999 / 1000+. A raw "4,187 objects, type: synths, FR" is close to identifying one person; a bucket answers the same question and can't. Same for durations and prices: buckets only, and prices only as ranges, only in v2.
Naming is noun_verb_past, always. One event per real user action — never one per screen, never one per tap. If you can't name the question an event answers, don't ship it: dead events cost you schema churn forever and answer nothing.
type (one of the fourteen slugs, or custom / mixed) · method (photo / barcode / manual / import) · objects_bucket · days_since_first_open · storefront · app_version · source_page · is_unlocked. Nothing free-text, ever — a free-text property is where PII leaks in six months, from a well-meaning line of code.
Review rule, borrowed and worth keeping: each cycle, find the funnel stage where you sit at your lowest benchmark percentile and fix that one. Don't optimise a stage you're already good at — the headroom is where you're worst. Benchmarks tell you where to look; your own cohorts tell you what to fix.
Attribution SDKs, conversion-value schemas, cohort dashboards, a data warehouse. With one-time purchases and no ad spend there's nothing to attribute and no budget to misallocate — App Analytics plus a weekly query against your own endpoint answers all nine numbers above. Revisit the moment you either run paid media or ship the v2 seller subscription; then the retention machinery — grace periods, save rates, win-back timing, the 85% proceeds tier past twelve months — becomes real, and worth a page of its own.
Two hygiene rules that save you a rewrite. Version the schema from event one (v: 1 on every payload) and never rename an event — add a new one and let the old die. And sample nothing: at your volumes a 10% sample means one usable number a month, and full-fidelity anonymous counts are cheaper to store than the meeting about whether the sample is representative.