The Hierarchical Grid: one spine for inventory, layout, and reporting
The Hierarchical Grid is a single tree of Network → Property → Page type → Placement that inventory registration, feed layout, and Relevance OS reporting all read from, so there is exactly one definition of "where video appears" in your network. Reading time about 5 minutes.
Why one spine
Most ad stacks keep three lists: an ad server's placements, a CMS's templates, and an analytics tool's dimensions, and they drift. On Genuin the grid is the only list. When you add a placement, it appears in the embed snippet, in Maya's context map, in Marketplace packages, and in every report row at the same moment.
The four levels
- Network – one per Business Account and model (see Choose your network model: Owned, Extended, Commerce, or Retail).
- Property – a verified domain or app (see Connect your website, app, and podcast feed). Extended O&O destinations appear here as properties you do not own but have been granted.
- Page type – a template or screen class (
Home,Article,PDP,App feed). Context attaches here: topics, categories, or product taxonomy. - Placement – a slot with a size (see Player card sizes and IAB footprint spec), allowed player experiences (see Player experiences: Shorts, Shoppable, Community, and Live), floor price, and brand safety profile. Each has a
placementId.
Rules the grid enforces
- A placement cannot exist without a page type; a page type cannot exist without a property.
- Context inherits downward and can be narrowed, never widened, at the placement level.
- Reports can be rolled up at any level and always sum correctly, because a view is recorded against exactly one placement.
- Deleting a level archives it; historical reports keep their rows.
Bulk operations
Import and export the whole grid as CSV from Network → Grid → Import/Export; the same CSV is what Marketplace listings and partner ad server line items are generated from (see Programmatic: Genuin Ad Server or your partner ad server and Marketplace: list packages and transact with demand partners).
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 |
|---|---|
| GET /brands/{brandId}/page-types | Page types on the Hierarchical Grid per property |
| GET /brands/{brandId}/placements | Placements with size, allowed experiences, context, and placementId |
| POST /brands/{brandId}/placements:import | Import the grid from an ad server's ad units or an inventory map |
| POST /brands/{brandId}/placements:publish | Approve and publish the grid; issues placementIds |
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.pageTypes.list(brandId);
await genuin.placements.list(brandId);
await genuin.placements.import(brandId, { source: 'gam', rows });Live today: Add a Genuin placement to your website · Embed the Genuin Web SDK on your website.
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.

