Core concepts

Concepts

Quick answer

Use client_id to load project context, then choose the Server API, Script Tag, or advanced SDK based on where your app owns rendering and orchestration.

The default backend path creates a placement, the browser path can add activation, the hosted renderer mounts a decision, and rendered slots emit beacons.

The API surface is organized around a small set of stable runtime concepts. Read these first if you want the wire model clear before you choose Script Tag, Server API, or the advanced SDK.

The shortest mental model is: client_id loads project defaults, the default backend path creates a placement, the browser path can add activation, the hosted renderer mounts the decision, and rendered slots emit beacons.

client_id

The stable public identifier for a project. Browser and server integrations use it to load project defaults, non-secret config, and routing context without exposing a secret key.

Browser activation

The publishable-key exchange that binds browser traffic to allowed origins. Script Tag and advanced browser integrations use this before calling protected runtime routes.

Activation is why publishable keys stay browser-safe only when allowed origins are enforced. See API configuration.

API configuration

Placement

The default Server API response from POST /v1/placements. It combines job creation with the first slot decision and includes placement.render when a fill should be mounted by the hosted renderer.

New Server API integrations should start here: one backend call to /v1/placements, then render.js handles the browser surface.

Job

The advanced compatibility unit of work for one monetization opportunity. A job creates one or more slot IDs and brackets the decision and beacon lifecycle for clients that intentionally orchestrate polling.

Jobs remain available for integrations that intentionally need slot IDs and manual decision polling. They are no longer the shortest default onboarding path.

Hosted renderer

The render.js browser surface that mounts placement.render.frame_url in one iframe, applies declared dimensions, and manages turn lifecycle and beacons for the default Server API flow.

Decision

The latest sponsor result for a slot. A decision can be a fill or a no-fill, and it carries the structured creative payload or stable no-fill reason codes.

Beacon

A lifecycle event recorded after rendering, visibility, or clip playback. Beacons turn ad delivery into auditable evidence for billing and diagnostics.

For proof and billing context behind these events, see proof integrity.

proof integrity

Project config

The non-secret runtime configuration exposed to browser renderers and debug tooling. This includes format hints, disclosure labels, and consent-related defaults.

Need rollout review?

Start with the Server API. Use contact only when you need rollout review, enterprise coordination, or non-standard integration help.

Contact the team