One request. An ad back. Five languages.
Ask for a placement, pass the user you already know, and optionally a few traits. Meridian Ads returns a creative to render, or nothing. Auth, identifiers, and the HTTP contract live in the docs.
- 5 SDKs
- TypeScript through Android
- One request
- POST /v1/decision
- Fail closed
- Missing traits do not match
How an ad resolves without an auction.
No header-bidder cascade. The SDK asks once. Matching, review, and fill happen on that request. The long-form contract is in the docs, not on this page.
01 Ask for an ad
Ask for an ad
Your app names a placement, the user you already know, and any traits you already store.
One request
Same call in five languages
Ask for a placement, pass the user you already know, and optionally a few traits. Render what comes back, record the impression when it appears, and send clicks through the URL we give you.
import { MeridianAds } from '@meridianads/sdk'
const client = new MeridianAds({
appKey: process.env.MERIDIAN_ADS_APP_KEY,
secret: process.env.MERIDIAN_ADS_SECRET,
// baseUrl: 'http://localhost:8090'
})
const decision = await client.serve('home_banner', 'user-42', {
country: 'US',
plan: 'pro'
})
if (!decision) {
// HTTP 204: no paid or house fill
} else {
await client.recordImpression(decision)
}What you send
Traits you already have
A user id is required. New traits replace older values for the same keys. Do not put that id on the advertiser landing URL.
{
"placement": "home_banner",
"user_key": "user-42",
"context": {
"plan": "pro",
"country": "US"
}
}Runtime properties
- AuthSigned app request
- Rate limit100 asks per second per app
- No fillEmpty response
- User id on landingNever
What this release does not include
v1 is prepaid CPM serving with a review gate. These layers stay out, so you do not have to design around them.
- No auction
- Paid creatives compete on budget, pacing, priority, and caps. Not a real-time bid.
- No header bidding
- One request from the app. No extra wrappers on the page.
- No third-party tags
- Image banners and native text only. No HTML5 or third-party scripts.
- No click or conversion billing
- You pay when the ad is shown. Clicks are counted. Conversions are out of billing.
- No viewability standard
- An impression counts when the SDK fires as the ad renders. House ads can fill gaps.
- No tracking cookies
- Matching uses the profile and this request. No cookie graph.
Get started
Ready to integrate?
Start with the identifier contract, then pick an SDK. Open the console when you need keys.