Inventory data model

Updated:

Publisher inventory: ad units, placements, sites, apps, zones or channels

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
namestringNo
typeenumNoValues: AD_UNIT, PLACEMENT, SITE, APP, ZONE, CHANNEL, OTHER
parent_idstringNo
statusenumNoValues: UNSPECIFIED, ACTIVE, PAUSED, ARCHIVED, DRAFT, SCHEDULED_FOR_DELETION, PROCESSING, PROCESSING_FAILED
sizesAdsSize[]No
sizes[].widthnumberYes
sizes[].heightnumberYes
metadataAdsMetadata[]No
metadata[].idstringNo
metadata[].slugstringNo
metadata[].valueobjectNo
metadata[].namespacestringNo
metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo

TypeScript

TypeScript
export type AdsInventory = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	name?: string;
	type?: 'AD_UNIT' | 'PLACEMENT' | 'SITE' | 'APP' | 'ZONE' | 'CHANNEL' | 'OTHER';
	parent_id?: string;
	status?: 'UNSPECIFIED' | 'ACTIVE' | 'PAUSED' | 'ARCHIVED' | 'DRAFT' | 'SCHEDULED_FOR_DELETION' | 'PROCESSING' | 'PROCESSING_FAILED';
	sizes?: [];
	metadata?: [];
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodAdsInventory = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	name: z.string().optional(),
	type: z.enum("AD_UNIT", "PLACEMENT", "SITE", "APP", "ZONE", "CHANNEL", "OTHER").optional(),
	parent_id: z.string().optional(),
	status: z.enum("UNSPECIFIED", "ACTIVE", "PAUSED", "ARCHIVED", "DRAFT", "SCHEDULED_FOR_DELETION", "PROCESSING", "PROCESSING_FAILED").optional(),
	sizes: z.array().optional(),
	metadata: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class AdsInventoryType(str, Enum):
	AD_UNIT = 'AD_UNIT'
	PLACEMENT = 'PLACEMENT'
	SITE = 'SITE'
	APP = 'APP'
	ZONE = 'ZONE'
	CHANNEL = 'CHANNEL'
	OTHER = 'OTHER'

@dataclasses.dataclass
class AdsInventoryStatus(str, Enum):
	UNSPECIFIED = 'UNSPECIFIED'
	ACTIVE = 'ACTIVE'
	PAUSED = 'PAUSED'
	ARCHIVED = 'ARCHIVED'
	DRAFT = 'DRAFT'
	SCHEDULED_FOR_DELETION = 'SCHEDULED_FOR_DELETION'
	PROCESSING = 'PROCESSING'
	PROCESSING_FAILED = 'PROCESSING_FAILED'

@dataclasses.dataclass
class AdsInventory:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	name: Optional[str]
	type: Optional[AdsInventoryType]
	parent_id: Optional[str]
	status: Optional[AdsInventoryStatus]
	sizes: Optional[PropertyAdsInventorySizes]
	metadata: Optional[PropertyAdsInventoryMetadata]
Are we missing anything? Let us know
Was this page helpful?