Player card sizes and IAB footprint spec
A Genuin player card declares an IAB size and adds 2 px of padding outside the card, so the footprint on the page is the declared size plus 4 px per axis; reserve the footprint, not the declared size, to avoid layout shift.
| Declared size | Footprint | Typical use |
|---|---|---|
| 300 × 250 | 304 × 254 | Sidebar, in-article |
| 300 × 600 | 304 × 604 | Sidebar vertical video |
| 320 × 480 | 324 × 484 | Mobile vertical |
| 336 × 280 | 340 × 284 | In-article |
| 728 × 90 | 732 × 94 | Leaderboard carousel |
| 970 × 250 | 974 × 254 | Billboard carousel |
| 9:16 fluid | width + 4, height + 4 | Full-width Shorts feed |
| Fluid | container width + 4 | Grid and carousel layouts |
Rules
- A placement lists its allowed sizes; the element's
data-genuin-sizemust be one of them (see Embed configuration reference). - Fluid placements size to the container and report the rendered size in the impression event.
- Offsite tags (see Offsite: generate IAB-standard tags for your media plan) use the same footprint rule inside the buyer's slot.
How it runs
None of this has to be implemented by hand: the snippets, keys, tags, and calls are generated for your stack and opened as changes in your repository or CMS where connected, for your Developer to approve.
Support. Help is available 24/7 from Brand Control Center and from every page of these docs. Ask in plain language; when a person is needed, an account manager, developer, or Ops engineer joins the same thread and stays on it until it is resolved. Every Business Account owner has this on every plan (see 24/7 Octo-enabled support: how Octo brings in account managers, developers, and Ops).
API & SDK
Access: the calls in the table are the proposed Business Account API (see Business Account API: provisioning, OAuth, and the resource map), authenticated with a key scoped to the account and a role or an OAuth client acting for it; every confirmation in this article becomes a proposal you can approve by API (POST /proposals/{proposalId}:approve). Live today, the server API under /api/thirdparty authenticates with a gn-access-token (see Generate an access token), and Live API today and the Business Account API roadmap maps what is live to what is proposed.
| Call | Purpose |
|---|---|
| POST /brands/{brandId}/placements | Register a placement on a page type |
| PUT /placements/{placementId}/experiences | Allowed player experiences per placement (Shorts, Shoppable, Community, Live) |
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.placements.create(brandId, { pageType, size: '9:16', experiences: ['shorts'] });
await genuin.placements.experiences.update(placementId, ['shorts', 'shoppable']);Live today: Add a Genuin placement to your website · Embed the Genuin Web SDK on your website · Customize the Genuin video player.
SDKs: Web SDK 2.0.6 (see Embed the Genuin Web SDK on your website), iOS SDK 2.1.5 (see Integrate the Genuin iOS SDK), Android SDK 2.1.5 (see Integrate the Genuin Android SDK), React Native 3.0.3 (see Integrate the Genuin SDK with React Native apps), and Flutter (see Integrate the Genuin SDK with Flutter apps) render Genuin and sign members in; the Node (@genuin/sdk) and Python (genuin) server SDKs are proposed with Business Account API: provisioning, OAuth, and the resource map.

