IntegrationIntegration Preview
Ad Decision
Send decision requests to the Decision Engine, understand request parameters and outcome types.
Preview
The endpoint path, field names and outcome values are illustrative; the exact schema is in your account-specific documentation.
Every ad impression starts with a decision request. The Decision Engine runs the request through policy, commercial, brand safety and source eligibility checks in order. If any step cannot reach a definitive result, the engine fails closed and serves nothing.
const decision = await reinoAds.requestAd({
placement: "rewarded",
audience: "premium-fans",
policy: "brand-safe"
});/v1/decisionsCreates an ad decision for a placement. Callable with a secret key (server) or a publishable key (SDK).Integration PreviewRequest body
placementstringrequiredPlacement ID or name, e.g. rewarded.
policystringoptionalName of the policy to apply. Defaults to the placement's default policy.
audienceobject | stringoptionalAudience signals. Either an object with a segments list or the name of an audience defined in the dashboard, e.g. premium-fans.
consentobjectrequiredKVKK and personalization consent flags. See Audience Signals.
contextobjectoptionalContextual information such as screen, game mode or content category.
formatsstring[]optionalAccepted formats: banner, native, interstitial, video, rewarded_video, sponsored_placement, branded_challenge, game_sponsorship, reward_sponsorship.
testbooleanoptionalWhen true, a test creative is returned and the impression is not billed.
curl https://api.reinoads.com/v1/decisions \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"placement": "match_end_banner",
"policy": "brand-safe",
"formats": ["banner", "native"],
"audience": { "segments": ["club_affinity:gs", "age_25_34"] },
"consent": { "kvkk": true, "personalized_ads": true },
"context": { "screen": "match_end", "content_category": "sports" }
}'| outcome | Meaning | Recommended handling |
|---|---|---|
| served | An ad that passed every check was selected. | Render the creative and report impression and click events. |
| house_ad | No eligible ad; the placement's house ad was returned. | Render the house ad; it generates no revenue. |
| no_fill | Neither an eligible ad nor a house ad was found. | Hide or collapse the slot. |
| blocked_by_policy | The request was blocked by a policy, commercial rule or kill switch. | Hide the slot and log the reason field. |
Check order
reason.stage tells you where the block happened: policy_check, commercial_check, brand_safety or source_eligibility. Blocks caused by a kill switch return the code kill_switch_active.
