Developers & engineering: questions and answers
The engineer who installs the SDK, wires identity, and keeps the integration healthy. 15 questions, grouped by stage.
Set up
What is the minimum integration?
One async script in the head and one div per placement. No build step, no SDK initialization code, no backend. React, Next.js, and mobile packages exist with the same attributes.
Read: Post to your hub, then curate and schedule to other platforms · Web SDK: install and configure · Mobile SDKs: iOS, Android, React Native, and Flutter
How do I get API keys and which environments exist?
A sandbox key is issued at account creation under Settings → Developers; a live key is issued at go-live. Sandbox data is isolated and keeps working for staging after launch. Keys are scoped to a Business Account and a role and rotate with a 24-hour grace period.
Read: Create your Business Account on Brand Control Center (BCC) · REST API: authentication and keys · Distribute your feeds across 7K+ apps and sites
How do I verify a domain or an app?
Domains verify by DNS TXT record or a meta tag in the head; subdomains inherit. Apps verify on the first SDK call from a registered bundle ID.
Read: Connect your website, app, and podcast feed · Mobile SDKs: iOS, Android, React Native, and Flutter
Build
How do I pass page context so the feed matches the page?
Set data-genuin-context on the placement element with key:value pairs (category, product IDs, topics). Context narrows the page type's grid context; it never widens it.
Read: Post to your hub, then curate and schedule to other platforms · Embed configuration reference · Onsite: contextual placements across homepage, category, and product pages
How do I avoid layout shift?
Reserve the card footprint: the declared IAB size plus 4 px on each axis. Fluid placements report their rendered size in the impression event. Lazy rendering is on by default.
Read: Player card sizes and IAB footprint spec · Embed configuration reference
How does auto login work and what does Genuin see?
Your server signs a short-lived JWT with your user ID and the claims you choose; the SDK exchanges it for a Genuin session. Genuin never sees passwords or your user table. SSO providers can be registered so their tokens validate directly.
Read: Bring your audience in with auto login and SSO · Auto login and token exchange · Unified identity: auto login, SSO, and the ID graph
How do I track conversions and send events to my analytics?
Subscribe to player events (impression, play, watch milestones, follow, post, linkoutClick, conversion) on the client, and send purchases through the server-side conversion API or the SDK track call. Webhooks deliver the same events signed to your endpoint.
Read: Web SDK: install and configure · Attribution: closed-loop commerce and conversion forecasts · Webhooks and events
Can I render the player in a mobile app or React Native?
Yes: iOS, Android, React Native, and Flutter SDKs render the same four experiences with native scrolling, using the same placement, context, and auto login names.
Read: Mobile SDKs: iOS, Android, React Native, and Flutter · Player experiences: Shorts, Shoppable, Community, and Live
How do I get Genuin data into our warehouse?
Use the Intelligence SDK for typed queries of engagement, revenue, attribution, and margin by grid dimension, webhooks for events, and CSV exports or scheduled reports from BCC.
Read: Intelligence SDK: bring Genuin signals into your own stack · Webhooks and events · Revenue reporting, payouts, and the Creator Wallet
How does consent and privacy work in the embed?
The SDK reads the CMP consent string by default (consent: auto); you can set granted or denied yourself. Viewing history and identity are kept in separate channels and joined only under consent and your agreement.
Read: Web SDK: install and configure · Privacy and VPPA: the two-channel data flow · Unified identity: auto login, SSO, and the ID graph
Can AI agents call Genuin, and how do buyer agents reach our inventory?
Octo's capabilities are available through the Intelligence SDK, and the REST API exposes sandbox AdCP endpoints (get_products, create_media_buy) so buyer-agent developers can test discovery against your listed packages.
Read: Octo: the orchestration and generative commerce layer · Intelligence SDK: bring Genuin signals into your own stack · AdCP: make your inventory discoverable to AI buyer agents · REST API: authentication and keys
Does Octo change our code, and who approves it?
Where you connect a repository or CMS, Octo opens embeds, SDK updates, auto login, and ads.txt changes as pull requests or CMS changes for your developer to approve; it never deploys on its own. Without a connection it hands your developer the exact snippet and page.
Read: Octo Autonomy and Approvals · Web SDK: install and configure · Bring your audience in with auto login and SSO
Launch
What changes when we switch from sandbox to live?
The live key replaces the sandbox key in the loader, the preview ribbon disappears, and reports stop being labelled sandbox. Nothing else in the markup changes.
Read: Distribute your feeds across 7K+ apps and sites · REST API: authentication and keys
Troubleshoot
The player renders a preview ribbon or nothing at all. What do I check?
In order: the domain is verified (yellow badge means not yet), the loader has the right brand ID, the placement ID exists on the published grid, the size on the element is allowed for that placement, and the page is not blocked by your CSP. Sandbox keys always show the ribbon.
Read: Connect your website, app, and podcast feed · Register your placements on the Hierarchical Grid · Embed configuration reference · Support, status, and SLAs
How do I know when the API or SDK changes?
Major versions live in the URL or package and are supported 18 months after the next major ships; additive changes are announced in the changelog and by email to the Developer role. The status page covers incidents.

