Attribution you can argue with.

A mobile measurement platform for teams who need to know not just where an install came from, but how confident that answer is.

Mobile attribution has a credibility problem. The platforms are accurate often enough to be useful, and opaque enough that you cannot tell which results to act on.

You get an install, a source and a model name. You do not get whether this match was a direct signal or a guess made nine days after the click.

Budget moves on numbers nobody can audit, and when they are wrong there is no way to find out why.

Every decision keeps its receipt.

Every attribution scores 0 to 100 and keeps its derivation: method, signals, click-to-install time, penalties, and the candidate clicks that lost.

When a result looks wrong you can open it and find out whether it is. That is the whole product.

attributions.confidence_score70 + 8 + 0 − 0 − 0 = 78, clamped to 0–100 and stored as an integer.

Illustrative install ins_5c02. Field names are the worker’s own; the values are invented. Read the full working

method
ad_id
matched_click
clk_8f3a · Meta
device_uniqueness_bonus
+8
time_delta_hours
2.6
shared_ip_penalty
0
high_fraud_penalty
0
rejected_candidates
clk_2b91 unresolvedclk_4e77 Google · 5.1 d beforeclk_61c0 TikTok · 53 h before
reason
GAID exactly matched click clk_8f3a; most recent of 3 candidate(s) in 7-day window

Track what matters.
Not everything.

Every extra field is another thing to secure, to explain to a regulator, and to leak. We measure what changes a decision and decline the rest.

Four commitments.

  1. Show the reasoning

    A number without its derivation is asking for trust it has not earned. Every attribution stores the method, the signals, the score and the candidates it rejected. You can disagree with a decision because you can see it.

  2. Refuse to guess

    A match below the reportable floor is downgraded to organic rather than claimed. It makes our attributed share look smaller. A smaller honest number is worth more than a larger one you cannot rely on.

  3. Build for the network people actually have

    The SDK batches, compresses, waits for Wi-Fi by default and holds back on low battery. Not micro-optimisations: the difference between an SDK you can ship to a prepaid data user and one you cannot.

  4. Collect less

    Every IP is truncated to its network block before it touches the database, so no raw end user IP exists anywhere here. No hardware identifier is ever read: no ANDROID_ID, no IMEI, no MAC, no serial. Data you never wrote down cannot leak.

Built in Abuja, Nigeria.

Growth runs through WhatsApp threads, USSD strings, printed QR codes and influencer links as much as through paid networks. A platform that only understands Meta and Google measures a fraction of what is happening.

Every one of these is a first class channel here. One short link behaves the same pasted into a message, printed on a poster or served in an ad, and it survives the store install.

The SDK follows the same reasoning. wifiOnlyMode = true · MeasuraConfig.ktMobile data costs your users money. Turn it off per app if you need to., aggressive batching, gzip and a maxOfflineQueueSize · MeasuraConfig.ktUp to 10,000 events batched on disk, so a dropped connection never loses one. are decisions about data cost, not engineering trivia.

  • WhatsApp
  • USSD
  • QR code
  • SMS
  • Email
  • Meta
  • Google
  • TikTok
  • Influencer
  • Organic

Where we are right now

Measura is early, and working with a small number of teams before opening up. Evaluating us means direct access to the people building it.

Our changelog records what has shipped, and live service status is public.

Measura is operated by Safli Technologies Ltd.