Apple three piece analytics
Skill wei18/apple-dev-skills/apple-dev-skills/skills/apple-three-piece-analytics
Reusable Claude Code skills for AI-agent-driven Swift / Apple-platform development — composable via git submodule; aggregates other specialist skill repos
npx -y skills add wei18/apple-dev-skills --skill apple-three-piece-analyticsAssembled 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
Default analytics stack for solo / small Apple-platform Apps — App Store Connect Analytics + MetricKit + Game Center (for games), no third-party tracking SDK by default, PrivacyInfo.xcprivacy mandatory. Invoke when starting a new project, deciding analytics SDK (vs Firebase / TelemetryDeck / Amplitude), writing PrivacyInfo, or when asked "should I integrate Firebase / Mixpanel / TelemetryDeck".
SKILL.md
3.8 KB, as published. Nobody here has run it
Apple Three-Piece Analytics
When to invoke
- Starting a new App and deciding on an analytics SDK.
- Evaluating Firebase / TelemetryDeck / Mixpanel / Amplitude / Sentry.
- Writing
PrivacyInfo.xcprivacy. - User asks "what metrics should I track", "what can I see without a third-party SDK".
Default decisions
v1 uses the Apple three-piece set
| Source | What it provides | Where to view |
|---|---|---|
| App Store Connect Analytics | Downloads, sessions, active devices, retention, sources, store conversion | App Store Connect web |
MetricKit (MXMetricPayload, MXDiagnosticPayload) | Performance & diagnostics: crash / hang / launch time / jank / energy / memory | The App receives them → persist to log / optionally upload later |
macOS caveat: MetricKit on macOS yields a reduced payload set compared to iOS (some payload types are iOS-only, e.g.
MXAppLaunchMetric). For mac-heavy apps, lean more on App Store Connect Analytics + targetedOSSignpostertraces. | Game Center (if it's a game) | Leaderboards / achievement completion / peer-player comparison | Game Center API / Game Center app |
Privacy / Manifest
PrivacyInfo.xcprivacyis a required deliverable (hard App Store submission requirement).- Because no third-party SDK, no IDFA, no PII are collected, the manifest content is very minimal.
- No ATT prompt needed (no IDFA use case).
- CloudKit / Game Center's user-facing privacy notices are handled at the system layer by Apple; the App only needs to declare data usage in PrivacyInfo.
What's not covered (explicitly accepted)
- Micro-behaviour streams like "which button was tapped" or "how long was spent on a screen" are not covered by the three-piece set.
- Confirm v1 doesn't need to answer these questions; deviate if it does.
Rationale
- At solo / small-team scale, the three pieces cover most key questions (installs / retention / performance / crashes / player comparisons).
- No third-party SDK → no ATT, no PrivacyInfo additions, small build size, and the privacy claim is verifiable by readers via grep on
import. - Positive for a public-repo showcase ("no third-party tracking" is a credible commitment).
Deviation considerations
Adopt TelemetryDeck (privacy-friendly first)
- Trigger: actually need the micro-behaviour stream of "which button, where do users get stuck".
- Priority: TelemetryDeck > Firebase (the latter has heavier privacy burden, needs ATT, and many PrivacyInfo entries).
- How to integrate: swap in the
TrackingSinkimplementation viatelemetry-facade-pattern; call sites change nothing.
Adopt Sentry / Crashlytics
- Trigger: MetricKit
MXDiagnosticPayloadpersistence still isn't enough for the incident workflow. - Cost: third-party SDK, extra PrivacyInfo entries, build size.
Verification checklist
PrivacyInfo.xcprivacyexists and passes App Store Connect validation.- No
import Firebase*/import Sentry/import Amplitude, etc. - MetricKit subscription is wired (
MXMetricManager.shared.add(...)). - Game Center entitlement aligns with leaderboard / achievement definitions (for games).
Related skills
telemetry-facade-pattern: the sink implementations for each piece.oslog-logger-defaults: MetricKit payloads persist via OSLog.apple-public-repo-security: "no PII / no third-party SDK" is one of the public-repo commitments.