An app is measured with an SDK rather than a script tag. There is no page to put a snippet on.
Register the app first
Add the app in your dashboard. Skomi issues an app ID, which is a different thing from a site ID and belongs to a different key space. An app is its own entity, not a site with a different kind of visitor.
Add the SDK
There is one for each of eight platforms. Each is its own repository, with the source and a small demo app that reports itself, so you can see what the numbers look like before you touch your own code:
- Android
- iOS
- Flutter, installing
- React Native
- Kotlin Multiplatform
- Unity
- .NET, including MAUI
- Electron, installing
Each takes the app ID and one call to start. The SDK batches what it collects and keeps it if the device is offline, sending when there is a connection again. An app measured only when it has signal is an app measured only in cities.
Name your screens
This is the single most useful thing you can do while installing.
An app has no URL, so the screen name your SDK reports is what appears in every report. Names chosen consistently, and chosen once, are the difference between a readable dashboard and a list of near-duplicates. Skomi cannot infer them for you the way it can read a path from a web address.
What you get
Screens, sessions, visitors and retention, plus the two things that only make sense for software people install:
- Crash-free rate: the share of sessions that finished without a fatal error. Skomi never reports more than 100%, and where a crash happened before the app's first screen the figure errs slightly pessimistic. A stability number that flattered itself would be worth nothing.
- App version: carried on every screen and every error, so you can see whether a bad release is bad or whether the problem was already there.
The wire format is frozen
Version 1 of the format an SDK sends is fixed and will stay that way.
The reason is worth stating: you can change a site's script this afternoon and every visitor has the new one by tomorrow. You cannot make somebody update an app. A published build has to keep working, so the contract it was compiled against does not move.
When to use the snippet instead
If it renders in a browser, it is a site. Use the snippet. A React Native Web build is a site by this rule, whatever the rest of the project is written in, and so is anything running in an embedded web view you control.
Related: installing the snippet, how long Skomi keeps your data.