Your mobile analytics, verified on the device.
Verivent checks every event against your tracking plan inside the app. Real values, and nothing leaves the phone.
Plan in the web.
Verdict on the phone.
Write the plan with your team
Name, channel, when it fires and its properties. Every save is a revision; publish a version when the draft is ready.
Hand the JSON to the app
Load the published version from code, or paste it into the inspector on the device. The library never calls home.
verivent-plan-0.3.0.jsonInspector.loadTrackingPlan(json)See the verdict as it fires
Each event breaks or matches the plan right in the timeline, on the device that sent it.
The same verdict, in the web
Export the session and check it again in your browser, against the published plan or a draft.
playlist_idRequired, but not sent12 of 12sourceNot an allowed value12 of 12screen_nameDoesn't match the pattern ^[a-z_]+$3 of 18What you get that a dashboard can't give you.
The verdict happens on the device
Real values are checked where they are produced. Nothing is uploaded to get an answer, so it works on a test phone, a device farm or offline.
Values, not just names
Types, required fields, allowed values and formats like a country code or an ID. Each problem says what the plan expects and never repeats what was sent.
source · expects search, library or radioAnalytics and network, one timeline
The request that fed an event sits next to the event. When a property is missing, the response that should have carried it is one row away.
17:42:33GET /v1/me/playlists · 20017:42:34add_to_playlist✕ 2Android and iOS, the same rules
One Kotlin Multiplatform validator, so an event that breaks on one platform breaks the same way on the other, with the same words.
An open-source library.
The Android and iOS library is Apache-2.0. It ships in debug builds only, and a no-op twin keeps it out of release.
dependencies {
debugImplementation("io.github.asanre:verivent:<version>")
releaseImplementation("io.github.asanre:verivent-no-op:<version>")
}.package(url: "https://github.com/asanre/verivent-swift", from: "<version>")