Retailers: maximize margin per impression on a retail media network

A retailer's site, app, and partner inventory become a retail media network where every impression is priced to net margin, endemic brands buy outcome-based packages, and the retailer's own ad server stays the system of record.

Your five steps

StepWhat you doYour choices
1 Add Brand ElementsAccount, brand kit, verify all domains and apps, connect the catalog with margin fields (see Create your Business Account on Brand Control Center (BCC), Set your brand identity: name, logo, colors, and voice, and Connect your website, app, and podcast feed). Roles for Retail Media, Merchandising, Ad Ops, Engineering (see Invite your team and assign roles).Two-factor authentication required
2 Launch Media NetworkModel: Retail Media (see Choose your network model: Owned, Extended, Commerce, or Retail). Import the grid from your ad server and site templates; context from your product taxonomy (see Register your placements on the Hierarchical Grid). Shoppable everywhere, Shorts on editorial (see Pick your first player experience).Placement floors by target net margin
3 Publish CommunitiesGroups by top-level category. Studio generates product videos from the catalog; accept endemic brands' content into category groups (see Upload your videos or connect your social profile, Launch your first community: your owned-and-operated space, and Accept partner content into your ecosystem). Launch (see Launch your first community: your owned-and-operated space); post to the hub first and syndicate (see Post to your hub, then curate and schedule to other platforms); distribute product-category feeds with sponsorships wrapped (see Distribute your feeds across 7K+ apps and sites).Canvas Monetization fleet
4 Add UsersSSO with loyalty ID hashed for the ID graph (see Bring your audience in with auto login and SSO). Brand safety profile and Strict moderation (see Set moderation, roles, and brand safety). Invite endemic brands as partners; connect your partner ad server; list in Marketplace and AdCP (see Add brand partners and demand partners).Offline purchase file for attribution
5 Sign ContractEnterprise plan, commerce media schedule with attribution windows and margin reporting (see Plans explained: Free, Self-serve, and Enterprise and Choose your monetization agreement). E-sign, ads.txt for every domain and app, advertiser blocklists and competitive exclusions (see Sign your agreement and authorize sellers). Switch on partners, programmatic through your ad server, commerce to your checkout (see Activate monetization and see your first revenue).AdCP discovery for agentic buyers

Done in 30 days

Reports → Margin showing revenue per impression and net margin per placement, endemic-brand packages sold with RAR and net-margin-on-ad-spend forecasts, programmatic filling through your ad server with blocklists enforced, and attribution closing the loop to online and offline sales.

How it runs

This playbook runs as a sequence of proposals, one per step, ordered for your company type; you confirm each one and the 30-day outcome is reported against the plan.

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.

CallPurpose
POST /brands/{brandId}/placements:importImport the grid from an ad server's ad units or an inventory map
POST /brands/{brandId}/partners:inviteInvite a partner with direction, permissions, groups, and split or price
POST /brands/{brandId}/sponsorshipsPaid Partner Post or Takeover: offer, budget, CPM, dates, placements
GET /reports/marginRevenue per impression and net margin on ad spend
POST /accounts/{accountId}/agreementsDraft the agreement for the model (revenue share, platform, managed, commerce, buyer)
js
js
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.placements.import(brandId, { source: 'gam', rows });
await genuin.partners.invite(brandId, { brand, direction: 'inbound', split: 0.6 });
await genuin.sponsorships.create(brandId, { partnerId, kind: 'takeover', budget });

Live today: Add a Genuin placement to your website · Embed the Genuin Web SDK on your website · Serve your first ad · Receive engagement events in your own analytics.

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.

TRUST AND COMPLIANCE

© 2026 Genuin Inc.

Genuin Footer