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. 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

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.

API first, Script Tag second, SDK third

Back to API docsContact the team

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.