Know when an install came from Search.
Your MMP says “Google Ads.” It doesn’t say which surface. PPC Bridge reads the Play install referrer and answers one question — did this install come from the Search surface, the traffic that converts better and retains longer.
Three steps, no SDK.
PPC Bridge is a single HTTP endpoint. You keep your app, your MMP, and your data pipeline exactly as they are.
Capture the referrer
A few lines of Kotlin against the Play Install Referrer API at first launch — or replay referrers server-side from your MMP’s raw-data exports. No release needed if your exports already carry them.
POST it as-is
Send the raw string to /v1/detect with your key. Percent-encoded,
double-encoded, or a full click URL — we normalize Play’s quirks for you.
Route on the decision
You get search: true/false with a confidence and a versioned mapping.
Log it next to your MMP’s attribution and see which “Google Ads” installs were
actually Search.
Search installs are the premium installs.
Experienced PPC teams keep reporting the same thing: app installs from Google’s
Search surface convert better and hold their LTV. The signal that identifies them —
gad_source=1 —
is sitting in your install referrer today, unread.
Runs next to the MMP you already trust.
PPC Bridge is not an attribution provider. It classifies one string per install and hands you the answer — a second column in the reporting you already have, not a second source of truth to reconcile.
What we won’t tell you.
Android & web only
iOS has no install referrer, so there is nothing honest to detect. If you send an iOS install, we say unsupported_platform instead of guessing.
Google owns the signal
gad_source is not officially documented and its values can drift. Our mapping is versioned data, promoted only when the evidence corroborates it — never a hardcoded guess.
Surface, not campaign
search: true proves the click surface was Search. It is not campaign-level control, and we won’t sell it as that.
When we’re not sure, we say false.
One endpoint. Bring a referrer, leave with an answer.
Bearer-key auth, JSON in, JSON out, fails closed. Everything below works with a free key — 100,000 requests a month while we validate.
curl# classify one install referrer curl https://ppcbridge.com/v1/detect \ -H "Authorization: Bearer dtk_live_…" \ -d '{"referrer": "utm_source%3Dgoogle-play%26gad_source%3D1"}' # → { "search": true, "network": "search", "confidence": "high", … }
Kotlin — capture at first launchreferrerClient.installReferrer.let { api.post("/v1/detect", body = mapOf( "referrer" to it.installReferrer, "platform" to "android")) } // off your critical path — fire and forget
Privacy by default: we store decisions, not identifiers. gclid
and raw signals are echoed back in the response and dropped — never persisted unless you
opt in for debugging, and then only for 30 days. Decision logs purge after 90.
Start reading the signal you already have.
Sign in, create a key, and classify your first referrer in the next five minutes.
Get an API key