IntegrationIntegration Preview
Audience Signals
Attach permissioned first-party segment signals and consent information to decision requests.
Preview
Segment naming conventions and consent object fields are illustrative; the final schema is shared in your account-specific documentation.
Audience signals are segment IDs the publisher derives from its own permissioned first-party data. ReinoAds uses them only for matching and policy evaluation; it neither accepts nor expects raw personal data.
Never send raw personal data
Names, e-mail addresses, phone numbers, national ID numbers, precise location or hashed versions of any of these (such as hashed e-mails) must never be sent as audience signals. Use only segment IDs that do not directly identify a person.
| Example segment | Meaning |
|---|---|
| premium | User with a paid subscription or premium membership |
| age_25_34 | User's self-declared age range |
| club_affinity:<id> | User with an affinity for a specific club; <id> is the publisher's club ID |
| engaged_30d | User active within the last 30 days |
consent object
kvkkbooleanrequiredWhether the user has completed the required KVKK (Turkish data protection law) notice and explicit consent flow.
personalized_adsbooleanrequiredConsent for personalized ads. When false, segment signals are ignored and only contextual matching is used.
sourcestringoptionalWhere consent was collected, e.g. cmp, onboarding, settings.
updated_atstringoptionalWhen consent was last updated, in ISO 8601 format.
const decision = await reinoAds.requestAd({
placement: "match_end_native",
policy: "brand-safe",
audience: {
segments: ["premium", "club_affinity:gs", "engaged_30d"]
},
consent: {
kvkk: true,
personalized_ads: true,
source: "cmp",
updated_at: "2026-09-30T10:15:00Z"
}
});Without consent
When personalized_ads is false the request is not rejected; the Decision Engine makes a contextual, policy-based decision without segments. Update the SDK with the current consent object whenever the user's choice changes.
