Unique identifier for the product
Human-readable product name
Detailed description of the product and its inventory
Publisher properties covered by this product. Buyers fetch actual property definitions from each publisher's adagents.json and validate agent authorization. Selection patterns mirror the authorization patterns in adagents.json for consistency.
OptionalchannelsAdvertising channels this product is sold as. Products inherit from their properties' supported_channels but may narrow the scope. For example, a product covering YouTube properties might be sold as ['ctv'] even though those properties support ['olv', 'social', 'ctv'].
Array of supported creative format IDs - structured format_id objects with agent_url and id
OptionalplacementsOptional array of specific placements within this product. When provided, buyers can target specific placements when assigning creatives.
OptionalexclusivityAvailable pricing models for this product
OptionalforecastOptionaloutcome_Optionaldelivery_Measurement provider and methodology for delivery metrics. The buyer accepts the declared provider as the source of truth for the buy. When absent, buyers should apply their own measurement defaults.
Measurement provider(s) used for this product (e.g., 'Google Ad Manager with IAS viewability', 'Nielsen DAR', 'Geopath for DOOH impressions')
Optionalnotes?: stringAdditional details about measurement methodology in plain language (e.g., 'MRC-accredited viewability. 50% in-view for 1s display / 2s video', 'Panel-based demographic measurement updated monthly')
Optionalreporting_Optionalcreative_Optionalis_Whether this is a custom product
Optionalproperty_Whether buyers can filter this product to a subset of its publisher_properties. When false (default), the product is 'all or nothing' - buyers must accept all properties or the product is excluded from property_list filtering results.
Optionaldata_Data provider signals available for this product. Buyers fetch signal definitions from each data provider's adagents.json and can verify agent authorization.
Optionalsignal_Whether buyers can filter this product to a subset of its data_provider_signals. When false (default), the product includes all listed signals as a bundle. When true, buyers can target specific signals.
Optionalcatalog_Catalog types this product supports for catalog-driven campaigns. A sponsored product listing declares ["product"], a job board declares ["job", "offering"]. Buyers match synced catalogs to products via this field.
Optionalmetric_Metric optimization capabilities for this product. Presence indicates the product supports optimization_goals with kind: 'metric'. No event source or conversion tracking setup required — the seller tracks these metrics natively.
Metric kinds this product can optimize for. Buyers should only request metric goals for kinds listed here.
Optionalsupported_reach_units?: ReachUnit[]Reach units this product can optimize for. Required when supported_metrics includes 'reach'. Buyers must set reach_unit to a value in this list on reach optimization goals — sellers reject unsupported values.
Optionalsupported_view_durations?: number[]Video view duration thresholds (in seconds) this product supports for completed_views goals. Only relevant when supported_metrics includes 'completed_views'. When absent, the seller uses their platform default. Buyers must set view_duration_seconds to a value in this list — sellers reject unsupported values.
Optionalsupported_targets?: ("cost_per" | "threshold_rate")[]Target kinds available for metric goals on this product. Values match target.kind on the optimization goal. Only these target kinds are accepted — goals with unlisted target kinds will be rejected. When omitted, buyers can set target-less metric goals (maximize volume within budget) but cannot set specific targets.
Optionalmax_Maximum number of optimization_goals this product accepts on a package. When absent, no limit is declared. Most social platforms accept only 1 goal — buyers sending arrays longer than this value should expect the seller to use only the highest-priority (lowest priority number) goal.
Optionalmeasurement_Optionalconversion_Conversion event tracking for this product. Presence indicates the product supports optimization_goals with kind: 'event'. Seller-level capabilities (supported event types, UID types, attribution windows) are declared in get_adcp_capabilities.
Optionalaction_sources?: ActionSource[]Action sources relevant to this product (e.g. a retail media product might have 'in_store' and 'website', while a display product might only have 'website')
Optionalsupported_targets?: ("cost_per" | "per_ad_spend" | "maximize_value")[]Target kinds available for event goals on this product. Values match target.kind on the optimization goal. cost_per: target cost per conversion event. per_ad_spend: target return on ad spend (requires value_field on event sources). maximize_value: maximize total conversion value without a specific ratio target (requires value_field). Only these target kinds are accepted — goals with unlisted target kinds will be rejected. A goal without a target implicitly maximizes conversion count within budget — no declaration needed for that mode. When omitted, buyers can still set target-less event goals.
Optionalplatform_managed?: booleanWhether the seller provides its own always-on measurement (e.g. Amazon sales attribution for Amazon advertisers). When true, sync_event_sources response will include seller-managed event sources with managed_by='seller'.
Optionalcatalog_When the buyer provides a catalog on get_products, indicates which catalog items are eligible for this product. Only present for products where catalog matching is relevant (e.g., sponsored product listings, job boards, hotel ads).
Optionalmatched_gtins?: string[]GTINs from the buyer's catalog that are eligible on this product's inventory. Standard GTIN formats (GTIN-8 through GTIN-14). Only present for product-type catalogs with GTIN matching.
Optionalmatched_ids?: string[]Item IDs from the buyer's catalog that matched this product's inventory. The ID type depends on the catalog type and content_id_type (e.g., SKUs for product catalogs, job_ids for job catalogs, offering_ids for offering catalogs).
Optionalmatched_count?: numberNumber of catalog items that matched this product's inventory.
Total catalog items evaluated from the buyer's catalog.
Optionalbrief_Explanation of why this product matches the brief (only included when brief is provided)
Optionalexpires_Expiration timestamp. After this time, the product may no longer be available for purchase and create_media_buy may reject packages referencing it.
Optionalproduct_Optional standard visual card (300x400px) for displaying this product in user interfaces. Can be rendered via preview_creative or pre-generated.
Asset manifest for rendering the card, structure defined by the format
Optionalproduct_Optional detailed card with carousel and full specifications. Provides rich product presentation similar to media kit pages.
Asset manifest for rendering the detailed card, structure defined by the format
OptionalcollectionsCollections available in this product. Each entry references collections declared in an adagents.json by domain and collection ID. Buyers resolve full collection objects from the referenced adagents.json.
Optionalcollection_Whether buyers can target a subset of this product's collections. When false (default), the product is a bundle — buyers get all listed collections. When true, buyers can select specific collections in the media buy.
OptionalinstallmentsSpecific installments included in this product. Each installment references its parent collection via collection_id when the product spans multiple collections. When absent with collections present, the product covers the collections broadly (run-of-collection).
Optionalenforced_Registry policy IDs the seller enforces for this product. Enforcement level comes from the policy registry. Buyers can filter products by required policies.
Optionaltrusted_Trusted Match Protocol capabilities for this product. When present, the product supports real-time contextual and/or identity matching via TMP. Buyers use this to determine what response types the publisher can accept and whether brands can be selected dynamically at match time.
Whether this product supports Context Match requests. When true, the publisher's TMP router will send context match requests to registered providers for this product's inventory.
Optionalidentity_match?: booleanWhether this product supports Identity Match requests. When true, the publisher's TMP router will send identity match requests to evaluate user eligibility.
Optionalresponse_types?: TMPResponseType[]What the publisher can accept back from context match.
Optionaldynamic_brands?: booleanWhether the buyer can select a brand at match time. When false (default), the brand must be specified on the media buy/package. When true, the buyer's offer can include any brand — the publisher applies approval rules at match time. Enables multi-brand agreements where the holding company or buyer agent selects brand based on context.
Optionalproviders?: { agent_url: string; context_match?: boolean; identity_match?: boolean }[]TMP providers integrated with this product's inventory. Each entry identifies a provider by agent_url (from the registry) and declares what match types it supports for this product. The product-level context_match and identity_match booleans declare what the product supports overall; the per-provider booleans declare which provider handles each match type. Enables buyer discovery: 'find products where a specific provider does context matching.'
Optionalmaterial_Instructions for submitting physical creative materials (print, static OOH, cinema). Present only for products requiring physical delivery outside the digital creative assignment flow. Buyer agents MUST validate url and email domains against the seller's known domains (from adagents.json) before submitting materials. Never auto-submit without human confirmation.
Optionalurl?: stringHTTPS URL for uploading or submitting physical creative materials
Optionalemail?: stringEmail address for creative material submission
Optionalinstructions?: stringHuman-readable instructions for material submission (file naming conventions, shipping address, etc.)
Optionalext?: ExtensionObjectOptionalext
Represents available advertising inventory