Analytics for Android
No SDK to add to your build. One OkHttp call reports a screen or a conversion, and it lands beside your web traffic in the same dashboard.
One function
fun track(path: String, name: String = "pageview") {
val body = JSONObject(mapOf(
"siteId" to yourSiteId,
"name" to name,
"path" to path,
"client" to JSONObject(mapOf("platform" to "android", "device" to "mobile")),
)).toString().toRequestBody("application/json".toMediaType())
client.newCall(Request.Builder().url("https://app.stepmetrics.co/v1/collect").post(body).build())
.enqueue(/* fire and forget */)
} Call it when a screen appears and when something worth counting happens. Put the app
version and build in props; there are no dedicated fields, because a field the
server accepted and then dropped would be worse than none.
Why the client field matters
Send it. Bot filtering reads the user agent and assumes a browser wrote it; a mobile HTTP
stack often sends none, which on the web is a crawler. Declaring client tells
the server to judge the request as an app. Without it your traffic is filed as automated
and disappears from every default view.
What is different from the web
- No API key in the app. The endpoint is write-only and the site id is public, exactly as in the browser. Never ship a read key in an app.
- No automatic screen tracking. Call it from your navigation code. The web tracker hooks the History API; an app has no equivalent to hook.
- Web and app share a site. App traffic is filed under the platform as its operating system, so it segments beside web traffic instead of forming a second vocabulary.
- Browser shows as Unknown. An app is not a browser, and inventing a name for it would put a guess where a fact belongs.
Every field an app can send is in the docs.
Read it from your editor
Connect Claude Code, Cursor or any MCP client with a read-only key, and ask in words: which pages lost traffic this week, where mobile visitors drop out of signup, whether Tuesday's spike was a crawler. The agent gets the same numbers as the dashboard.
claude mcp add --transport http stepmetrics https://app.stepmetrics.co/mcp \
--header "Authorization: Bearer dak_..." Try it on your site.
Add your first site for free. See where visitors come from, what they look at, and how many take the next step.
No credit card required.