Player experiences: Shorts, Shoppable, Community, and Live
A player experience is the kind of video interaction a placement renders; Genuin ships four, every placement can allow more than one, and Maya picks between the allowed ones per viewer. Reading time about 6 minutes.
Shorts (vertical feed) – a swipe feed of clips ranked for the page context and the viewer. Best default for content-first pages: articles, episode pages, homepages. Supports captions, follow, share, and in-feed Paid Partner Posts.
Shoppable (commerce carousel) – each video carries one or more products from your catalog with price, availability, and a buy or add-to-cart action that calls your commerce API through the SDK. Best for PDPs, category pages, and brand homepages. Supports dynamic in-video linkouts (see Dynamic in-video linkouts and affiliate commerce) and catalog sync (see Connect your website, app, and podcast feed).
Community (UGC wall) – a wall of creator and member posts organized by group, with reactions, replies, pinned posts, and Quests (see Creator programs and Quests). Best for fan, member, and support experiences. Requires auto login for posting (see Bring your audience in with auto login and SSO).
Live & Q&A – a scheduled live player with questions, polls, and replay, hosted by a creator with the Host tier (see Invite creators, hosts, and contributors). Best for drops, AMAs, events, and launches. Live sessions become Shorts clips automatically through Studio.
Choosing per placement
| Page type | Recommended experiences |
|---|---|
| Homepage | Shorts + Shoppable |
| Article or episode page | Shorts |
| Product detail page | Shoppable |
| Category page | Shoppable + Shorts |
| Member or fan area | Community + Live & Q&A |
| App home feed | Shorts + Community |
What every experience shares
Brand kit (see Set your brand identity: name, logo, colors, and voice), the card footprint spec (Player card sizes and IAB footprint spec: a 2 px padding outside the declared IAB size), accessibility defaults, consent handling (see Privacy and VPPA: the two-channel data flow), and the same impression and watch-time events (see Measure engagement: watch time, lift, and cohorts). Switching an experience never changes the embed snippet.
How it runs
What this article describes is built from your brand context and the crawl, shown rendered, and applied on your confirmation; later changes arrive as proposals in the same shape.
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 |
|---|---|
| PUT /placements/{placementId}/experiences | Allowed player experiences per placement (Shorts, Shoppable, Community, Live) |
| PUT /placements/{placementId}/settings | Player controls, feed settings, sticky mini-player, keywords, mode |
| GET /placements/{placementId}/feed | Server-side render of the ranked feed for a page context (SSR and native apps) |
| GET /sdk/config | Runtime configuration the Web and mobile SDKs fetch on init (placements, experiences, kit) |
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.placements.experiences.update(placementId, ['shorts', 'shoppable']);
await genuin.placements.settings.update(placementId, { sticky: true });
await genuin.placements.feed(placementId, { context });Live today: Embed the Genuin Web SDK on your website · Add a Genuin placement to your website · Customize the Genuin video player · Integrate the Genuin iOS SDK.
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.

