Key Takeaways
- Onboarding SMS KPIs must split “user did not verify” from “the phone never sent.” Those are different teams.
- Time to inbox on a canary beats DLR-only dashboards. Delivered is not “they typed the code.”
- Keep OTP on a dedicated SIM pool so campaign volume cannot look like an activation cliff.
- Retries are a cost KPI. Three submits per signup will blow airtime and platform volume while unique users look fine.
- You bring the Android and operator credit. Platform pricing is devices plus send volume.
android sms gateway for saas onboarding teams usually instrument the auth service and forget the modem. Activation then “mysteriously” drops when OEM battery saver kills the app. Measure both sides.
Related: OTP, DLR, fintech architecture (same boxes). BYO phone and airtime. Devices plus volume.
Signup → code in inbox → verify
If the bar is high on accept and low on verify, look at TTL, Retriever hash, and spam — not only DLR.
What to measure (and what not to)
Measure clocks you own: API accept time, device send time if you log it, webhook DLR time, user verify time. Do not treat Google Analytics “session” as SMS truth. Do not average OTP latency with bulk campaign latency.
A 99% DLR with a 60% verify rate is not a great SMS vendor. It is a template, TTL, or product problem — or a canary you never opened.
Funnel table
| Step | KPI | If it breaks |
|---|---|---|
| Signup | OTP requested / signup | Product, not the radio |
| Accept | API 2xx / requested | Keys, payload, plan pause (Free/Developer allowance) |
| Radio | Device online, queue depth | Charger, OEM, pairing — app uptime |
| Network | DLR delivered / sent (where available) | Operator, credit, destination; DLR gaps exist |
| Inbox | Canary p95 to visible SMS | Spam folder, concat, encoding |
| Verify | Correct code before TTL | Expiry, retries, user UX, Retriever hash |
Separate radio health from product funnel
Page on device offline and OTP canary SLA, not on a blended “messages this week.” Incident: outage response. Spare phone on Starter. Multi-device.
OTP KPIs that do not lie
- Retries per successful verify (cost + fraud window).
- Duplicate live codes (you forgot to invalidate).
- Retriever auto-read rate on production-signed builds only.
Template math: OTP templates. DLR honesty: DLR overview. Webhooks: Developer Center.
Cost KPIs: two bills
Platform volume (our meter) vs operator invoice (theirs). Concat and retries inflate both. Free/Developer pause when the allowance is gone — that will look like an activation outage if you do not chart it. Starter and up do not use that pause for platform volume; devices and the carrier still can stop you.
Next steps
Add three charts: accept, canary inbox p95, verify. Canary every template change. Install the app. Use 300 lifetime SMS to prove the clocks before paid traffic.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- Android SMS gateway product guideDefinition, product, and how to buy
- download the Android gateway appGet the APK





