Unity analytics liveops
Skill tea-x-random/unity-game-skills/skills/unity-analytics-liveops
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.From its SKILL.md
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.
SKILL.md
8.5 KB, ~1.9k tokens by cl100k_base, 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.
What ships with it: 1 file
213 B alongside SKILL.md
agents/
- openai.yaml213 B