Unity analytics liveops
Skill tea-x-random/unity-game-skills/skills/unity-analytics-liveops
Claude Agent Skills for building casual iOS games in Unity 6 — orchestration, MCP Editor control, generative 2D/3D/audio assets, graphics, UI, monetization, QA & release.
npx -y skills add tea-x-random/unity-game-skills --skill unity-analytics-liveopsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Instrument, measure, and live-tune Unity iOS games. Use for D1/D7/D30 retention, session and onboarding funnels, ARPDAU/ad-ARPDAU, IAP and rewarded-ad conversion, KPIs, soft launches, remote config, feature flags, A/B experiments, difficulty/paywall/ad-cadence tuning, crash reporting, attribution, ATT, SKAdNetwork/AdAttributionKit conversion values, privacy manifests, Unity Gaming Services Analytics, GameAnalytics, Firebase, Crashlytics, or Unity Cloud Diagnostics. Pair with unity-monetization, unity-gameplay-systems, and unity-qa-release so product changes are driven by measured retention and revenue rather than fixed guesses.
SKILL.md
8.5 KB, as published. Nobody here has run it
Unity analytics & liveops
The levers that turn a playable casual game into a retentive and monetizable one are mostly measurement and iteration, not more features. A game ships, you watch D1/D7/D30 retention and ARPDAU, and you tune the difficulty curve, onboarding, and ad cadence against real numbers. This skill covers how to instrument that loop in a Unity casual iOS game and how to act on it.
You cannot improve what you do not measure. Retention is largely set before user acquisition — by whether players find the fun, get guided to it, and hit low onboarding friction (Solsten — D1/D7/D30 retention). Instrument the first session first.
Doctrine
- Instrument before you tune. Don't guess at difficulty or ad frequency — wire analytics, ship a soft launch, read the funnel, then change one thing.
- Gate tunables behind remote config. Difficulty constants, ad cadence, onboarding variants, and paywall copy should be server-driven so you can change them without an App Store resubmission (review takes days; a config flip is instant).
- Change one variable at a time (A/B). Attribute a retention/ARPDAU move to a single change or you learn nothing.
- Measure ad frequency against retention + ARPDAU. Over-serving ads hurts BOTH retention and eCPM, so "more ads ≠ more revenue" (Tap-Nation — hybrid-casual KPIs). Tune cadence empirically; do not hardcode a "correct" number.
- Privacy is a build gate on iOS. Every analytics/attribution SDK adds data-collection that must be declared in the privacy manifest and respect ATT. Wire this with
unity-qa-release, not as an afterthought.
What to measure (the casual KPI set)
Wire these events/metrics from day one. Benchmarks are targets to converge toward, not guarantees.
| Metric | Why it matters | Hybrid-casual reference |
|---|---|---|
| D1 / D7 / D30 retention | The core health signal; set pre-acquisition | D7 ~20%, D30 ~10% (hypercasual D30 ≈ 0) (Gamigion 2025) |
| Onboarding / first-session funnel | Where new players drop before "the fun" | Instrument each step; find-the-fun is the #1 D1 lever |
| Session length & sessions/day | Engagement depth | Track trend, not an absolute |
| ARPDAU (total) | Revenue health per active user | Compare across A/B arms |
| Ad ARPDAU + impressions/DAU | Ad-revenue intensity vs. fatigue | Watch retention as you raise frequency |
| IAP conversion % | Share of payers | Only ~1.8% of F2P players ever buy IAP (Game Growth Advisor) — so hybrid (ads + IAP) is the default model |
| Rewarded engagement (opt-in rate, completions/DAU) | Rewarded video is the core casual format | Highest-eCPM format; design natural rewarded placements (TopOn H1 2025) |
Treat published eCPM dollar figures and "X ads per session" rules as unreliable — they vary by quarter, geo, network, and report scope. Measure your own.
Pick your stack (one each, don't double-count)
For a Unity casual iOS game, choose one analytics + one crash + one remote-config/A-B provider and avoid wiring two analytics SDKs that double-count sessions.
- Analytics: Unity Gaming Services Analytics (native to Unity), GameAnalytics (free, casual-games-focused, built-in funnels), or Firebase Analytics (broad ecosystem).
- Crash/diagnostics: Firebase Crashlytics or Unity Cloud Diagnostics.
- Remote config + A/B: Unity Remote Config (+ Game Overrides/A-B) or Firebase Remote Config + A/B Testing.
- Attribution (only if running paid UA): AppsFlyer, Adjust, Singular, or Tenjin — these own the SKAdNetwork/AdAttributionKit postback handling.
See references/sdk-integration.md for Unity import, asmdef/EDM4U, and iOS wiring notes.
Remote config + A/B workflow
- Externalize tunables. Move difficulty constants, ad-cadence parameters (the values consumed by
unity-monetization's cadence policy), onboarding flags, and paywall strings out of code into remote config keys with safe in-code defaults (so the game works offline / before first fetch). - Fetch early, apply safely. Fetch on launch; fall back to the bundled defaults if the fetch fails. Never block the first session on a network call.
- Run one experiment at a time. Define a hypothesis ("variant B's gentler early difficulty raises D1"), split users server-side, and read the one KPI it should move. Keep a holdout.
- Promote or kill. Roll the winning arm to 100% via config; no client update needed.
Soft-launch before global
Validate retention and ARPDAU in a small, representative geo before scaling user acquisition:
- Ship to a limited region with full analytics wired.
- Read D1/D7, onboarding funnel, ARPDAU, and crash-free rate.
- Fix the biggest funnel drop and the biggest retention leak first (usually onboarding / find-the-fun), tuning via remote config where possible.
- Only scale UA once retention clears your bar — acquiring users for a leaky funnel burns spend.
iOS measurement specifics
- ATT prompt timing. Show the App Tracking Transparency prompt at a sensible moment (after the player has seen value), with a clear pre-prompt. Opt-in is low on iOS, which has shifted ad revenue toward Android — so don't depend on IDFA-based measurement (Tenjin 2026).
- SKAdNetwork / AdAttributionKit. Configure conversion values to encode early-funnel signal (e.g. tutorial complete, first purchase) for privacy-preserving install attribution. Your attribution SDK handles the postbacks; you choose what the conversion values mean.
- Privacy manifest. Each analytics/attribution SDK collects data that must be declared in
PrivacyInfo.xcprivacy(data types + required-reason APIs). Coordinate withunity-qa-release› App Store readiness; a missing declaration is an App Store rejection.
Where this sits
unity-monetizationowns ad/IAP wiring; this skill measures whether that wiring is actually earning without hurting retention, and feeds the ad-cadence policy real numbers.unity-gameplay-systemsbuilds onboarding / the core loop; instrument its first-session funnel here.unity-qa-releaseowns the privacy manifest, ATT, and store submission; analytics SDKs add requirements there.unity-game-directorsets the retention/monetization targets this skill measures against.
Field notes & lessons
- Retention is set before acquisition — the first-session onboarding funnel is the highest-leverage thing to instrument; fix the biggest drop before adding features.
- "More ads ≠ more revenue": raising ad frequency past a point lowers both retention and eCPM, so the right cadence is the one your ARPDAU-vs-retention data supports, not a number copied from a blog.
- Keep every tunable that you might want to change after launch behind remote config with a safe default — App Store review latency makes client-side constants expensive to fix.
- Wire privacy-manifest disclosures the moment you add an analytics/attribution SDK, not at submission time, or the iOS build gets rejected late.