Brand safety

Use brand_safety to block advertiser categories and domains per request. You can also configure dashboard defaults under Settings → Brand Safety.

Blocking categories

blocked-categories.ts

typescript

CATEGORIES
const job = await client.createJob({  job_type: "chat",  brand_safety: {    blocked_categories: ["gambling", "tobacco", "crypto", "adult"],  },});

Common categories include gambling, tobacco, crypto, and adult. If you need a formal taxonomy, align these values to your IAB category mapping or internal policy list.

Blocking specific advertisers

blocked-domains.ts

typescript

DOMAINS
const job = await client.createJob({  job_type: "chat",  brand_safety: {    blocked_domains: ["competitor.com", "unwanted-brand.com"],  },});

Block advertiser landing domains when a broad category block would be too aggressive.

Priority rules

Dashboard defaults apply to every request from your project. If you pass blocked_categories or blocked_domains in the SDK request, those request values override the dashboard defaults instead of merging with them.

Ad formats

Your app can receive three ad formats. Banner is a fixed-dimension image creative. Clip is a short silent video. Native is a structured asset bundle containing title, image, description, CTA, and optional icon that the SDK renders to match your app's visual style.

allowed-formats.ts

typescript

FORMATS
const job = await client.createJob({  job_type: "chat",  slot_config: {    allowed_formats: ["banner", "native"],  },});

By default, wrappers should pass allowed_formats: ["banner"] when they want banner-only behavior. Native ads typically achieve higher CTRs because the SDK assembles them into the same chat-native surface as the rest of your UI.

Related docs: Configuration and Troubleshooting.

Choose hosted defaults or package control

Back to API docsContact the team

These pages document the package layer for teams that choose wavebird to control ad requests, decisions, rendering helpers, consent, and beacons directly. Use the API docs for hosted defaults, and use contact only when you want rollout review, enterprise coordination, or help with non-standard integration constraints. Beacon billing rules live in SDK Concepts.