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
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
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. Nativeis 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
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.
API first, Script Tag second, SDK third
These pages are the advanced package layer for teams that intentionally choose @csl/wrapper-sdk. Primary onboarding still lives in the API docs, and browser-first installs should start with the Script Tag. Use contact only when you want rollout review, enterprise coordination, or help with non-standard integration constraints. Beacon billing rules live in SDK Concepts.