Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.
Timeseries only. Adds each row's count of this outcome type from the advertiser's uploaded measurement records, and the cost per outcome. Requires campaignId or mediaBuyId, and startDate and endDate no more than 90 days apart. A record's value counts its own window, not a running total, and only records whose window is a single day are counted, on that day.
Response format: "summary" for hierarchical advertiser/campaign/media-buy/package breakdown, "timeseries" for flat rows with one entry per (advertiser → campaign → media buy → package) × day
ISO-4217 currency for the consolidated (FX-converted) cross-advertiser rollup. Defaults to the buyer home currency when the advertisers share one; must be a platform-supported currency. Summary view only. The converted figures are display estimates, never billing inputs
Aggregated totals across all advertisers, exact and native. Money metrics are present only when every advertiser shares one currency (totalsCurrency); when currencies mix they are null — see the consolidated block for the converted rollup
Coverage of totals.spend and totals.conversionValue. When partial or unavailable, those money totals and money-derived rates are null rather than a lower number that treats a missing report as zero.
FX-converted cross-advertiser rollup in the display currency (explicit displayCurrency, or the buyer home currency when resolvable). Omitted when no conversion applies (single-currency buyer viewing natively). Display estimate only — never a billing input
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Apostra","colors":{"primary":"#7513D4","light":"#ED7139","dark":"#7513D4"},"logo":{"light":"https://mintcdn.com/agentic2/A5rx0kFcKxq4RfQe/logo-apostra/apostra-black-purple-logo.svg?fit=max\u0026auto=format\u0026n=A5rx0kFcKxq4RfQe\u0026q=85\u0026s=d9788f7a39ebea19b202324e702d3178","dark":"https://mintcdn.com/agentic2/A5rx0kFcKxq4RfQe/logo-apostra/apostra-white-purple-logo.svg?fit=max\u0026auto=format\u0026n=A5rx0kFcKxq4RfQe\u0026q=85\u0026s=9a8b8881bd62ccac198ddd54caa21ba3"},"favicon":"https://mintcdn.com/agentic2/f0_a8sarwuUWvF9a/logo-apostra/apostra-icon-purple.svg?fit=max\u0026auto=format\u0026n=f0_a8sarwuUWvF9a\u0026q=85\u0026s=8e125c217964e76c49a47c64baa01a3d","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","python","javascript"],"prefill":true},"mdx":{"auth":{"method":"bearer"},"server":"https://api.apostra.com/api/v2"}},"navbar":{"primary":{"type":"button","label":"Install Apostra","href":"/v3/quickstart"}},"footer":{"socials":{"twitter":"https://twitter.com/scope3data","github":"https://github.com/apostra-public/apostra","linkedin":"https://linkedin.com/company/scope3"},"links":[{"header":"Legal","items":[{"label":"Terms of Service","href":"https://apostra.com/agreements/terms-of-service"},{"label":"Privacy Policy","href":"https://apostra.com/agreements/privacy-policy"}]}]},"seo":{"metatags":{"canonical":"https://docs.apostra.com","og:type":"website","og:site_name":"Apostra API"},"indexing":"all"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"agentic2","hasAudioNarration":false,"actualSubdomain":"agentic2","customDomains":["docs.apostra.com"],"gitSource":{"type":"github","owner":"scope3data","repo":"agentic-api","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aef5058ec2091b7c464ea19","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Build software","count":746},{"language":"default","tag":"Buyer API reference","count":306},{"language":"default","tag":"Seller API reference","count":218},{"language":"default","tag":"Manage ads","count":190},{"language":"default","tag":"Account","count":108},{"language":"default","tag":"Sell media","count":107},{"language":"default","tag":"Task Reference","count":92},{"language":"default","tag":"Storefront","count":83},{"language":"default","tag":"Buy media","count":76},{"language":"default","tag":"Seller operations","count":60}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v2/buyer-api-reference/reporting/get-reporting","slug":"/v2/buyer-api-reference/reporting/get-reporting","pageMetadata":{"title":"Get reporting","description":"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /reporting/metrics","href":"/v2/buyer-api-reference/reporting/get-reporting","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get reporting","description":"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /reporting/metrics","href":"/v2/buyer-api-reference/reporting/get-reporting","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getReportingMetrics","summary":"Get reporting","description":"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.","tags":["Reporting"],"security":["c018b909-949f-4843-9a23-b1ee7223343a"],"parameters":["f0c3d98e-be52-46d1-914d-b32f3c8049b8","396691e0-494a-45b9-b14c-7af89e9bc12e","342e2b5e-0edb-4b60-b9e1-656091a9911b","cedfef95-649a-4de8-b8bf-53cfac7cd086","2303617d-b5f4-48bd-a45b-eba25ddab8b5","afac0606-e800-46d2-b53a-7e3ed45a114c","c8f0feb4-038c-4c16-b6c9-e9b578806050","434c2fef-3fcd-4b6a-a8c9-8f0799b01686","15f4556a-325a-43f7-8147-4e0a1ae77e59","c591447c-11ff-4b90-aa9c-50fbda2e2b47","8e18455c-23e8-4440-b542-a81706cea4f5","af7eec24-bf74-45da-87cd-d29a7ee254b6"],"responses":{"200":"4b035b31-0b34-4ee5-b8fe-2667b3502e99","400":"cd639428-010c-453e-a6a8-719a832298cd","401":"a8aac971-078c-4a8c-8ffd-d40bdb777730","500":"8da4a253-8633-4086-a39c-ac6b159611c3"},"method":"get","type":"path","servers":["79f891a6-2e76-48a5-99c9-7c181bc851d3"],"path":"/reporting/metrics","baseUrlOptions":["https://api.apostra.com/api/v2/buyer"],"title":"Get reporting","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[]},"dependencies":{"parameters":{"f0c3d98e-be52-46d1-914d-b32f3c8049b8":{"in":"query","name":"advertiserId","schema":{"description":"Filter to campaigns on this advertiser","type":"string","uniqueKey":"","typeLabel":"string"},"description":"Filter to campaigns on this advertiser"},"396691e0-494a-45b9-b14c-7af89e9bc12e":{"in":"query","name":"campaignId","schema":{"description":"Filter to a specific campaign. If advertiserId is also provided, the campaign must belong to that advertiser","type":"string","uniqueKey":"","typeLabel":"string"},"description":"Filter to a specific campaign. If advertiserId is also provided, the campaign must belong to that advertiser"},"342e2b5e-0edb-4b60-b9e1-656091a9911b":{"in":"query","name":"channelGroupId","schema":{"description":"Filter to media buys in one campaign channel group. May be combined with advertiserId or campaignId to assert the expected parent scope","type":"string","minLength":1,"maxLength":128,"uniqueKey":"","typeLabel":"string"},"description":"Filter to media buys in one campaign channel group. May be combined with advertiserId or campaignId to assert the expected parent scope"},"cedfef95-649a-4de8-b8bf-53cfac7cd086":{"in":"query","name":"mediaBuyId","schema":{"description":"Filter to a specific media buy owned by the authenticated buyer. May be combined with advertiserId or campaignId to assert the expected parent scope","type":"string","uniqueKey":"","typeLabel":"string"},"description":"Filter to a specific media buy owned by the authenticated buyer. May be combined with advertiserId or campaignId to assert the expected parent scope"},"2303617d-b5f4-48bd-a45b-eba25ddab8b5":{"in":"query","name":"startDate","schema":{"description":"Start date in ISO format (YYYY-MM-DD)","example":"2025-01-01","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"","typeLabel":"string"},"description":"Start date in ISO format (YYYY-MM-DD)"},"afac0606-e800-46d2-b53a-7e3ed45a114c":{"in":"query","name":"endDate","schema":{"description":"End date in ISO format (YYYY-MM-DD)","example":"2025-01-31","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"","typeLabel":"string"},"description":"End date in ISO format (YYYY-MM-DD)"},"c8f0feb4-038c-4c16-b6c9-e9b578806050":{"in":"query","name":"days","schema":{"default":7,"description":"Number of days to include (default: 7, max: 90). Use 0 for the full campaign timeframe.","example":7,"type":"integer","minimum":0,"maximum":90,"uniqueKey":"","typeLabel":"integer"},"description":"Number of days to include (default: 7, max: 90). Use 0 for the full campaign timeframe."},"434c2fef-3fcd-4b6a-a8c9-8f0799b01686":{"in":"query","name":"outcomeType","schema":{"description":"Timeseries only. Adds each row's count of this outcome type from the advertiser's uploaded measurement records, and the cost per outcome. Requires campaignId or mediaBuyId, and startDate and endDate no more than 90 days apart. A record's value counts its own window, not a running total, and only records whose window is a single day are counted, on that day.","example":"signup","type":"string","minLength":1,"maxLength":128,"uniqueKey":"","typeLabel":"string"},"description":"Timeseries only. Adds each row's count of this outcome type from the advertiser's uploaded measurement records, and the cost per outcome. Requires campaignId or mediaBuyId, and startDate and endDate no more than 90 days apart. A record's value counts its own window, not a running total, and only records whose window is a single day are counted, on that day."},"15f4556a-325a-43f7-8147-4e0a1ae77e59":{"in":"query","name":"view","schema":{"default":"summary","description":"Response format: \"summary\" for hierarchical advertiser/campaign/media-buy/package breakdown, \"timeseries\" for flat rows with one entry per (advertiser → campaign → media buy → package) × day","type":"string","enum":["summary","timeseries"],"uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"Response format: \"summary\" for hierarchical advertiser/campaign/media-buy/package breakdown, \"timeseries\" for flat rows with one entry per (advertiser → campaign → media buy → package) × day"},"c591447c-11ff-4b90-aa9c-50fbda2e2b47":{"in":"query","name":"displayCurrency","schema":{"description":"ISO-4217 currency for the consolidated (FX-converted) cross-advertiser rollup. Defaults to the buyer home currency when the advertisers share one; must be a platform-supported currency. Summary view only. The converted figures are display estimates, never billing inputs","example":"EUR","type":"string","pattern":"^[A-Za-z]{3}$","uniqueKey":"","typeLabel":"string"},"description":"ISO-4217 currency for the consolidated (FX-converted) cross-advertiser rollup. Defaults to the buyer home currency when the advertisers share one; must be a platform-supported currency. Summary view only. The converted figures are display estimates, never billing inputs"},"8e18455c-23e8-4440-b542-a81706cea4f5":{"in":"query","name":"download","schema":{"description":"When true, generates a CSV file and returns a signed download URL instead of JSON data","default":false,"type":"boolean","uniqueKey":"","typeLabel":"boolean"},"description":"When true, generates a CSV file and returns a signed download URL instead of JSON data"},"af7eec24-bf74-45da-87cd-d29a7ee254b6":{"in":"query","name":"demo","schema":{"description":"When true, returns auto-generated demo data instead of querying real data sources","default":false,"type":"boolean","uniqueKey":"","typeLabel":"boolean"},"description":"When true, returns auto-generated demo data instead of querying real data sources"}},"responses":{"4b035b31-0b34-4ee5-b8fe-2667b3502e99":{"description":"Get reporting","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Hierarchical reporting response: advertiser → campaign → media buy → package","required":["advertisers","totals","totalsCurrency","moneyCoverage","periodStart","periodEnd"],"properties":{"advertisers":{"type":"array","items":{"type":"object","properties":{"advertiserId":{"type":"string","description":"Advertiser identifier","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].advertiserId","typeLabel":"string"},"advertiserName":{"type":"string","description":"Advertiser name","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].advertiserName","typeLabel":"string"},"currency":{"type":"string","description":"ISO-4217 currency used for money under this advertiser (the advertiser's locked primary currency); source delivery spend is normalized to it when an applicable FX rate is available","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].currency","typeLabel":"string"},"metrics":{"type":"object","properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.impressions","typeLabel":"integer"},"spend":{"type":"number","minimum":0,"description":"Total spend, denominated in the advertiser's primary currency (every campaign and buy is stamped in that currency; USD only for USD advertisers). On BUYER surfaces spend is GROSS (fee-inclusive): seller-reported net delivered spend is grossed up at read time at each buy's own pinned terms (a buy without pinned terms reports net as stored). On STOREFRONT surfaces spend stays NET as the seller reported it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.spend","typeLabel":"number"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.videoCompletions","typeLabel":"integer"},"conversionValue":{"type":"number","minimum":0,"description":"Total conversion value (advertiser-attributed revenue from conversions), denominated the same as spend. Unlike spend, conversion value is never grossed up on buyer surfaces — it is advertiser revenue, not marketplace spend, so it carries no platform fee.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.conversionValue","typeLabel":"number"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics.roas","typeLabel":"number | null"}},"required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"additionalProperties":false,"description":"Raw and calculated reporting metrics","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].metrics","typeLabel":"object"},"campaigns":{"type":"array","items":{"type":"object","properties":{"campaignId":{"type":"string","description":"Campaign identifier","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].campaignId","typeLabel":"string"},"campaignName":{"type":"string","description":"Campaign name","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].campaignName","typeLabel":"string"},"management":{"type":"string","description":"Management state of this campaign: \"tracked\" (a campaign the platform did not set up, mirrored read-only from a connected provider account) or \"managed\" (authored or adopted through the platform). Buyer reporting currently includes managed campaigns only — tracked mirror delivery is excluded from this surface — so aggregates never silently mix the two states.","enum":["tracked","managed"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].management","typeLabel":"enum\u003cstring>"},"metrics":{"type":"object","properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.impressions","typeLabel":"integer"},"spend":{"type":"number","minimum":0,"description":"Total spend, denominated in the advertiser's primary currency (every campaign and buy is stamped in that currency; USD only for USD advertisers). On BUYER surfaces spend is GROSS (fee-inclusive): seller-reported net delivered spend is grossed up at read time at each buy's own pinned terms (a buy without pinned terms reports net as stored). On STOREFRONT surfaces spend stays NET as the seller reported it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.spend","typeLabel":"number"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.videoCompletions","typeLabel":"integer"},"conversionValue":{"type":"number","minimum":0,"description":"Total conversion value (advertiser-attributed revenue from conversions), denominated the same as spend. Unlike spend, conversion value is never grossed up on buyer surfaces — it is advertiser revenue, not marketplace spend, so it carries no platform fee.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.conversionValue","typeLabel":"number"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics.roas","typeLabel":"number | null"}},"required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"additionalProperties":false,"description":"Raw and calculated reporting metrics","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].metrics","typeLabel":"object"},"mediaBuys":{"type":"array","items":{"type":"object","properties":{"mediaBuyId":{"type":"string","description":"Media buy identifier","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].mediaBuyId","typeLabel":"string"},"name":{"type":"string","description":"Media buy name","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].name","typeLabel":"string"},"status":{"type":"string","description":"Media buy status","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].status","typeLabel":"string"},"budget":{"oneOf":[{"description":"Total allocated budget for this media buy (sum of product budgets), GROSS (fee-inclusive — stored budgets are the buyer denomination since the gross-budgets flip). Legacy media buys created before fee terms were locked report their stored legacy (net) amount instead. Null if no budget set","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].budget.oneOf.0","typeLabel":"number"},{"description":"Total allocated budget for this media buy (sum of product budgets), GROSS (fee-inclusive — stored budgets are the buyer denomination since the gross-budgets flip). Legacy media buys created before fee terms were locked report their stored legacy (net) amount instead. Null if no budget set","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].budget.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].budget","typeLabel":"number | null"},"metrics":{"type":"object","properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.impressions","typeLabel":"integer"},"spend":{"type":"number","minimum":0,"description":"Total spend, denominated in the advertiser's primary currency (every campaign and buy is stamped in that currency; USD only for USD advertisers). On BUYER surfaces spend is GROSS (fee-inclusive): seller-reported net delivered spend is grossed up at read time at each buy's own pinned terms (a buy without pinned terms reports net as stored). On STOREFRONT surfaces spend stays NET as the seller reported it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.spend","typeLabel":"number"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.videoCompletions","typeLabel":"integer"},"conversionValue":{"type":"number","minimum":0,"description":"Total conversion value (advertiser-attributed revenue from conversions), denominated the same as spend. Unlike spend, conversion value is never grossed up on buyer surfaces — it is advertiser revenue, not marketplace spend, so it carries no platform fee.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.conversionValue","typeLabel":"number"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics.roas","typeLabel":"number | null"}},"required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"additionalProperties":false,"description":"Raw and calculated reporting metrics","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].metrics","typeLabel":"object"},"packages":{"type":"array","items":{"type":"object","properties":{"packageId":{"type":"string","description":"Package identifier","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].packageId","typeLabel":"string"},"productId":{"oneOf":[{"description":"Product identifier for this package","type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].productId.oneOf.0","typeLabel":"string"},{"description":"Product identifier for this package","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].productId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].productId","typeLabel":"string | null"},"productName":{"oneOf":[{"description":"Human-readable product name for this package","type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].productName.oneOf.0","typeLabel":"string"},{"description":"Human-readable product name for this package","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].productName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].productName","typeLabel":"string | null"},"metrics":{"type":"object","properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.impressions","typeLabel":"integer"},"spend":{"type":"number","minimum":0,"description":"Total spend, denominated in the advertiser's primary currency (every campaign and buy is stamped in that currency; USD only for USD advertisers). On BUYER surfaces spend is GROSS (fee-inclusive): seller-reported net delivered spend is grossed up at read time at each buy's own pinned terms (a buy without pinned terms reports net as stored). On STOREFRONT surfaces spend stays NET as the seller reported it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.spend","typeLabel":"number"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.videoCompletions","typeLabel":"integer"},"conversionValue":{"type":"number","minimum":0,"description":"Total conversion value (advertiser-attributed revenue from conversions), denominated the same as spend. Unlike spend, conversion value is never grossed up on buyer surfaces — it is advertiser revenue, not marketplace spend, so it carries no platform fee.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.conversionValue","typeLabel":"number"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics.roas","typeLabel":"number | null"}},"required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"additionalProperties":false,"description":"Raw and calculated reporting metrics","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].metrics","typeLabel":"object"},"sellerPackageId":{"oneOf":[{"description":"The seller's own id for this package: the value a {PACKAGE_ID} macro the seller fills arrives with on landing pages and trackers. Join site data on packageId or sellerPackageId, whichever the URL carries. Equals packageId when the package is booked on an inventory source Apostra runs, because Apostra is then the seller. Null when a third-party seller's own id is not known.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].sellerPackageId.oneOf.0","typeLabel":"string"},{"description":"The seller's own id for this package: the value a {PACKAGE_ID} macro the seller fills arrives with on landing pages and trackers. Join site data on packageId or sellerPackageId, whichever the URL carries. Equals packageId when the package is booked on an inventory source Apostra runs, because Apostra is then the seller. Null when a third-party seller's own id is not known.","type":"null","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].sellerPackageId.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX].sellerPackageId","typeLabel":"string | null"}},"required":["packageId","productId","productName","metrics"],"additionalProperties":false,"description":"Package-level reporting metrics","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages.items.[INDEX]","typeLabel":"object"},"description":"Package-level breakdown","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].packages","typeLabel":"object[]"},"channelGroup":{"oneOf":[{"description":"Campaign channel group that compiled into this media buy, or null for a legacy or ungrouped buy.","type":"object","properties":{"channelGroupId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].channelGroup.oneOf.0.channelGroupId","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].channelGroup.oneOf.0.name","typeLabel":"string"}},"required":["channelGroupId","name"],"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].channelGroup.oneOf.0","typeLabel":"object"},{"description":"Campaign channel group that compiled into this media buy, or null for a legacy or ungrouped buy.","type":"null","properties":{"channelGroupId":{"type":"string"},"name":{"type":"string"}},"required":["channelGroupId","name"],"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].channelGroup.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].channelGroup","typeLabel":"object | null"},"deliveryFxConversion":{"oneOf":[{"description":"FX conversion applied to delivery spend when the source reported in a different currency from the advertiser primary currency. Null when no conversion was needed.","type":"object","properties":{"fromCurrency":{"type":"string","description":"ISO-4217 currency the delivery spend was denominated in: the currency the source reported, or — when the reported label contradicts an FX lock or booked spread-ledger leg — the currency the source settles in","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.0.fromCurrency","typeLabel":"string"},"rate":{"type":"number","description":"Multiplier applied to source spend to produce advertiser-currency spend (QUOTE per BASE, e.g. ZAR per USD)","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.0.rate","typeLabel":"number"},"asOfDate":{"oneOf":[{"description":"UTC calendar date of the FX rate used. Null when source is settlement: identity denomination looks up no rate, so there is no rate date","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.0.asOfDate.oneOf.0","typeLabel":"string"},{"description":"UTC calendar date of the FX rate used. Null when source is settlement: identity denomination looks up no rate, so there is no rate date","type":"null","pattern":"^\\d{4}-\\d{2}-\\d{2}$","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.0.asOfDate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.0.asOfDate","typeLabel":"string | null"},"source":{"type":"string","enum":["booked","snapshot","settlement"],"description":"booked: rate locked in the spread ledger at buy time; snapshot: fx_rate_snapshots fallback on buy creation date; settlement: the source reported a currency it is not paid in, so the spend is denominated by its settlement currency (rate is always 1)","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.0.source","typeLabel":"enum\u003cstring>"}},"required":["fromCurrency","rate","asOfDate","source"],"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.0","typeLabel":"object"},{"description":"FX conversion applied to delivery spend when the source reported in a different currency from the advertiser primary currency. Null when no conversion was needed.","type":"null","properties":{"fromCurrency":{"type":"string","description":"ISO-4217 currency the delivery spend was denominated in: the currency the source reported, or — when the reported label contradicts an FX lock or booked spread-ledger leg — the currency the source settles in"},"rate":{"type":"number","description":"Multiplier applied to source spend to produce advertiser-currency spend (QUOTE per BASE, e.g. ZAR per USD)"},"asOfDate":{"oneOf":[{"description":"UTC calendar date of the FX rate used. Null when source is settlement: identity denomination looks up no rate, so there is no rate date","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"description":"UTC calendar date of the FX rate used. Null when source is settlement: identity denomination looks up no rate, so there is no rate date","type":"null","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}]},"source":{"type":"string","enum":["booked","snapshot","settlement"],"description":"booked: rate locked in the spread ledger at buy time; snapshot: fx_rate_snapshots fallback on buy creation date; settlement: the source reported a currency it is not paid in, so the spend is denominated by its settlement currency (rate is always 1)"}},"required":["fromCurrency","rate","asOfDate","source"],"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].deliveryFxConversion","typeLabel":"object | null"},"goalProgress":{"oneOf":[{"type":"object","description":"Delivery judged against this buy's goal commitment (or the campaign goal when the buy predates commitments). Absent when the campaign has no goal and the buy no commitment.","required":["goal","askedTarget","answeredTarget","commitment","commitmentSource","actual","verdict","judgedAgainst","verdictWithheld","basis","freshness","pace"],"properties":{"goal":{"oneOf":[{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"object","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.subject","typeLabel":"string"},"eventTypes":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.eventTypes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.eventTypes","typeLabel":"string[]"},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.0","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.1","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.2","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target","typeLabel":"object · object · object · object · null"},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendor","typeLabel":"object"},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricId","typeLabel":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel","typeLabel":"object"}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0","typeLabel":"object"},{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"null","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"]},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal."},"eventTypes":{"type":"array","items":{"type":"string"}},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"]}},"additionalProperties":false},{"type":"null"}]},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string"},"brandId":{"type":"string"}},"required":["domain"],"additionalProperties":false},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it."},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"]}},"additionalProperties":false},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name."},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string"}},"additionalProperties":false}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.goal","typeLabel":"object | null"},"askedTarget":{"oneOf":[{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.askedTarget","typeLabel":"object · object · object · object · null"},"answeredTarget":{"oneOf":[{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.answeredTarget","typeLabel":"object · object · object · object · null"},"commitment":{"oneOf":[{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"string","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.commitment.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"null","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.commitment.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.commitment","typeLabel":"enum\u003cstring> | null"},"commitmentSource":{"oneOf":[{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"string","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.commitmentSource.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"null","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.commitmentSource.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.commitmentSource","typeLabel":"enum\u003cstring> | null"},"actual":{"oneOf":[{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"object","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.value","typeLabel":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.units","typeLabel":"number"},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.denominatorUnits.oneOf.0","typeLabel":"number"},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.denominatorUnits.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.denominatorUnits","typeLabel":"number | null"},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.perUnits.oneOf.0","typeLabel":"enum\u003cnumber>"},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.perUnits.oneOf.1","typeLabel":"enum\u003cnumber>"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.perUnits","typeLabel":"enum\u003cnumber>"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.currency","typeLabel":"string | null"}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0","typeLabel":"object"},{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"null","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"]},"value":{"type":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression."},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count."},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0}]},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1]},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000]}]},"currency":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.actual","typeLabel":"object | null"},"verdict":{"oneOf":[{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"string","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"null","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.verdict","typeLabel":"enum\u003cstring> | null"},"judgedAgainst":{"oneOf":[{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"string","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.judgedAgainst.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"null","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.judgedAgainst.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.judgedAgainst","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"string","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"null","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.verdictWithheld","typeLabel":"enum\u003cstring> | null"},"basis":{"oneOf":[{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind"],"properties":{"kind":{"type":"string","enum":["seller_attested"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.0.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.0","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","impressions"],"properties":{"kind":{"type":"string","enum":["advertiser_measured"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricId","typeLabel":"string"},"impressions":{"type":"number","minimum":0,"description":"Impressions delivered on the days the advertiser's measurement records cover, the rate's denominator.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.impressions","typeLabel":"number"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","measurableImpressions","coverage"],"properties":{"kind":{"type":"string","enum":["vendor_attested"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricId","typeLabel":"string"},"measurableImpressions":{"type":"number","minimum":0,"description":"Impressions the vendor measured across the values judged.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.measurableImpressions","typeLabel":"number"},"coverage":{"oneOf":[{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.coverage.oneOf.0","typeLabel":"number"},{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"null","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.coverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.coverage","typeLabel":"number | null"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.3","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.basis","typeLabel":"object · object · object · null"},"freshness":{"type":"object","properties":{"dataThrough":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.dataThrough.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.dataThrough.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.dataThrough","typeLabel":"string | null"},"reportingPeriodEnd":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.reportingPeriodEnd.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.reportingPeriodEnd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.reportingPeriodEnd","typeLabel":"string | null"},"nextExpectedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.nextExpectedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.nextExpectedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.nextExpectedAt","typeLabel":"string | null"},"notificationType":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.notificationType.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.notificationType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.notificationType","typeLabel":"string | null"},"sequenceNumber":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.sequenceNumber.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.sequenceNumber.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.sequenceNumber","typeLabel":"number | null"},"awaitingLaterReport":{"type":"boolean","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.awaitingLaterReport","typeLabel":"boolean"},"missingMetrics":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.missingMetrics.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness.missingMetrics","typeLabel":"string[]"}},"required":["dataThrough","reportingPeriodEnd","nextExpectedAt","notificationType","sequenceNumber","awaitingLaterReport","missingMetrics"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.freshness","typeLabel":"object"},"pace":{"oneOf":[{"type":"object","description":"How the money is pacing against the flight, judged separately from the goal itself, so \"$200 a day at 80% viewable\" reads as two answers. Null when the surface does not know this scope's budget and flight.","required":["flightElapsed","measuredFraction","expectedSpend","actualSpend","ratio","spendPerDay","budgetPerDay","currency","verdict","verdictWithheld"],"properties":{"flightElapsed":{"oneOf":[{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.flightElapsed.oneOf.0","typeLabel":"number"},{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.flightElapsed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.flightElapsed","typeLabel":"number | null"},"measuredFraction":{"oneOf":[{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.measuredFraction.oneOf.0","typeLabel":"number"},{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.measuredFraction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.measuredFraction","typeLabel":"number | null"},"expectedSpend":{"oneOf":[{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.expectedSpend.oneOf.0","typeLabel":"number"},{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.expectedSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.expectedSpend","typeLabel":"number | null"},"actualSpend":{"oneOf":[{"description":"The delivered spend the expectation is compared against.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.actualSpend.oneOf.0","typeLabel":"number"},{"description":"The delivered spend the expectation is compared against.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.actualSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.actualSpend","typeLabel":"number | null"},"ratio":{"oneOf":[{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.ratio.oneOf.0","typeLabel":"number"},{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.ratio.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.ratio","typeLabel":"number | null"},"spendPerDay":{"oneOf":[{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.spendPerDay.oneOf.0","typeLabel":"number"},{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.spendPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.spendPerDay","typeLabel":"number | null"},"budgetPerDay":{"oneOf":[{"description":"The daily rate an even pace across the whole flight implies.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.budgetPerDay.oneOf.0","typeLabel":"number"},{"description":"The daily rate an even pace across the whole flight implies.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.budgetPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.budgetPerDay","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.currency","typeLabel":"string | null"},"verdict":{"oneOf":[{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"string","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"null","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdict","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"string","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"null","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdictWithheld","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0.pace","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX].goalProgress","typeLabel":"object | null"}},"required":["mediaBuyId","name","status","budget","metrics","packages"],"additionalProperties":false,"description":"Media buy-level reporting metrics with package breakdown","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys.items.[INDEX]","typeLabel":"object"},"description":"Media buy-level breakdown","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].mediaBuys","typeLabel":"object[]"},"goalProgress":{"oneOf":[{"type":"object","description":"Delivery across the campaign's buys judged against its primary goal, with the weakest commitment across those buys. Absent when the campaign has no goal and no buy carries a commitment.","required":["goal","askedTarget","answeredTarget","commitment","commitmentSource","actual","verdict","judgedAgainst","verdictWithheld","basis","freshness","pace"],"properties":{"goal":{"oneOf":[{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"object","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.subject","typeLabel":"string"},"eventTypes":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.eventTypes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.eventTypes","typeLabel":"string[]"},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.0","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.1","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.2","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.target","typeLabel":"object · object · object · object · null"},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendor","typeLabel":"object"},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricId","typeLabel":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0.metricLabel","typeLabel":"object"}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.0","typeLabel":"object"},{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"null","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"]},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal."},"eventTypes":{"type":"array","items":{"type":"string"}},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"]}},"additionalProperties":false},{"type":"null"}]},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string"},"brandId":{"type":"string"}},"required":["domain"],"additionalProperties":false},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it."},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"]}},"additionalProperties":false},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name."},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string"}},"additionalProperties":false}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.goal","typeLabel":"object | null"},"askedTarget":{"oneOf":[{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.askedTarget","typeLabel":"object · object · object · object · null"},"answeredTarget":{"oneOf":[{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.answeredTarget","typeLabel":"object · object · object · object · null"},"commitment":{"oneOf":[{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"string","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.commitment.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"null","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.commitment.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.commitment","typeLabel":"enum\u003cstring> | null"},"commitmentSource":{"oneOf":[{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"string","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.commitmentSource.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"null","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.commitmentSource.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.commitmentSource","typeLabel":"enum\u003cstring> | null"},"actual":{"oneOf":[{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"object","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.value","typeLabel":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.units","typeLabel":"number"},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.denominatorUnits.oneOf.0","typeLabel":"number"},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.denominatorUnits.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.denominatorUnits","typeLabel":"number | null"},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.perUnits.oneOf.0","typeLabel":"enum\u003cnumber>"},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.perUnits.oneOf.1","typeLabel":"enum\u003cnumber>"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.perUnits","typeLabel":"enum\u003cnumber>"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0.currency","typeLabel":"string | null"}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.0","typeLabel":"object"},{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"null","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"]},"value":{"type":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression."},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count."},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0}]},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1]},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000]}]},"currency":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.actual","typeLabel":"object | null"},"verdict":{"oneOf":[{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"string","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"null","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.verdict","typeLabel":"enum\u003cstring> | null"},"judgedAgainst":{"oneOf":[{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"string","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.judgedAgainst.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"null","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.judgedAgainst.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.judgedAgainst","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"string","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"null","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.verdictWithheld","typeLabel":"enum\u003cstring> | null"},"basis":{"oneOf":[{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind"],"properties":{"kind":{"type":"string","enum":["seller_attested"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.0.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.0","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","impressions"],"properties":{"kind":{"type":"string","enum":["advertiser_measured"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricId","typeLabel":"string"},"impressions":{"type":"number","minimum":0,"description":"Impressions delivered on the days the advertiser's measurement records cover, the rate's denominator.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.impressions","typeLabel":"number"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.1","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","measurableImpressions","coverage"],"properties":{"kind":{"type":"string","enum":["vendor_attested"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricId","typeLabel":"string"},"measurableImpressions":{"type":"number","minimum":0,"description":"Impressions the vendor measured across the values judged.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.measurableImpressions","typeLabel":"number"},"coverage":{"oneOf":[{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.coverage.oneOf.0","typeLabel":"number"},{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"null","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.coverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.coverage","typeLabel":"number | null"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.2","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis.oneOf.3","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.basis","typeLabel":"object · object · object · null"},"freshness":{"type":"object","properties":{"dataThrough":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.dataThrough.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.dataThrough.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.dataThrough","typeLabel":"string | null"},"reportingPeriodEnd":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.reportingPeriodEnd.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.reportingPeriodEnd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.reportingPeriodEnd","typeLabel":"string | null"},"nextExpectedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.nextExpectedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.nextExpectedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.nextExpectedAt","typeLabel":"string | null"},"notificationType":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.notificationType.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.notificationType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.notificationType","typeLabel":"string | null"},"sequenceNumber":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.sequenceNumber.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.sequenceNumber.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.sequenceNumber","typeLabel":"number | null"},"awaitingLaterReport":{"type":"boolean","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.awaitingLaterReport","typeLabel":"boolean"},"missingMetrics":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.missingMetrics.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness.missingMetrics","typeLabel":"string[]"}},"required":["dataThrough","reportingPeriodEnd","nextExpectedAt","notificationType","sequenceNumber","awaitingLaterReport","missingMetrics"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.freshness","typeLabel":"object"},"pace":{"oneOf":[{"type":"object","description":"How the money is pacing against the flight, judged separately from the goal itself, so \"$200 a day at 80% viewable\" reads as two answers. Null when the surface does not know this scope's budget and flight.","required":["flightElapsed","measuredFraction","expectedSpend","actualSpend","ratio","spendPerDay","budgetPerDay","currency","verdict","verdictWithheld"],"properties":{"flightElapsed":{"oneOf":[{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.flightElapsed.oneOf.0","typeLabel":"number"},{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.flightElapsed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.flightElapsed","typeLabel":"number | null"},"measuredFraction":{"oneOf":[{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.measuredFraction.oneOf.0","typeLabel":"number"},{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.measuredFraction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.measuredFraction","typeLabel":"number | null"},"expectedSpend":{"oneOf":[{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.expectedSpend.oneOf.0","typeLabel":"number"},{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.expectedSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.expectedSpend","typeLabel":"number | null"},"actualSpend":{"oneOf":[{"description":"The delivered spend the expectation is compared against.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.actualSpend.oneOf.0","typeLabel":"number"},{"description":"The delivered spend the expectation is compared against.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.actualSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.actualSpend","typeLabel":"number | null"},"ratio":{"oneOf":[{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.ratio.oneOf.0","typeLabel":"number"},{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.ratio.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.ratio","typeLabel":"number | null"},"spendPerDay":{"oneOf":[{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.spendPerDay.oneOf.0","typeLabel":"number"},{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.spendPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.spendPerDay","typeLabel":"number | null"},"budgetPerDay":{"oneOf":[{"description":"The daily rate an even pace across the whole flight implies.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.budgetPerDay.oneOf.0","typeLabel":"number"},{"description":"The daily rate an even pace across the whole flight implies.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.budgetPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.budgetPerDay","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.currency","typeLabel":"string | null"},"verdict":{"oneOf":[{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"string","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"null","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdict","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"string","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"null","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0.verdictWithheld","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0.pace","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX].goalProgress","typeLabel":"object | null"}},"required":["campaignId","campaignName","management","metrics","mediaBuys"],"additionalProperties":false,"description":"Campaign-level reporting metrics with media buy breakdown","uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns.items.[INDEX]","typeLabel":"object"},"description":"Campaign-level breakdown","isRequired":true,"uniqueKey":"oneOf.0.advertisers.items.[INDEX].campaigns","typeLabel":"object[]"}},"required":["advertiserId","advertiserName","currency","metrics","campaigns"],"additionalProperties":false,"description":"Advertiser-level reporting metrics with campaign breakdown","uniqueKey":"oneOf.0.advertisers.items.[INDEX]","typeLabel":"object"},"description":"Advertiser-level reporting data","isRequired":true,"uniqueKey":"oneOf.0.advertisers","typeLabel":"object[]"},"totals":{"type":"object","description":"Aggregated totals across all advertisers, exact and native. Money metrics are present only when every advertiser shares one currency (totalsCurrency); when currencies mix they are null — see the consolidated block for the converted rollup","required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.0.totals.impressions","typeLabel":"integer"},"spend":{"oneOf":[{"description":"Total spend (gross, fee-inclusive — the buyer denomination) in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.totals.spend.oneOf.0","typeLabel":"number"},{"description":"Total spend (gross, fee-inclusive — the buyer denomination) in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.totals.spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.spend","typeLabel":"number | null"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.0.totals.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.0.totals.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.0.totals.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.0.totals.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.0.totals.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.0.totals.videoCompletions","typeLabel":"integer"},"conversionValue":{"oneOf":[{"description":"Total conversion value in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.totals.conversionValue.oneOf.0","typeLabel":"number"},{"description":"Total conversion value in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.totals.conversionValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.conversionValue","typeLabel":"number | null"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.0.totals.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.totals.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.0.totals.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.totals.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.totals.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.totals.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.0.totals.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.0.totals.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.totals.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.totals.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.totals.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totals.roas","typeLabel":"number | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.totals","typeLabel":"object"},"totalsCurrency":{"oneOf":[{"description":"ISO-4217 currency the native totals are denominated in; null when the advertisers span multiple currencies (money metrics in totals are then null)","type":"string","isRequired":true,"uniqueKey":"oneOf.0.totalsCurrency.oneOf.0","typeLabel":"string"},{"description":"ISO-4217 currency the native totals are denominated in; null when the advertisers span multiple currencies (money metrics in totals are then null)","type":"null","isRequired":true,"uniqueKey":"oneOf.0.totalsCurrency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.totalsCurrency","typeLabel":"string | null"},"moneyCoverage":{"type":"object","description":"Coverage of totals.spend and totals.conversionValue. When partial or unavailable, those money totals and money-derived rates are null rather than a lower number that treats a missing report as zero.","required":["status","reason","missingDays"],"properties":{"status":{"type":"string","enum":["complete","partial","unavailable"],"description":"complete when no gap is proven between stored reporting days; partial when a stored reporting day is missing between two present days; unavailable when no reporting data is stored.","isRequired":true,"uniqueKey":"oneOf.0.moneyCoverage.status","typeLabel":"enum\u003cstring>"},"reason":{"oneOf":[{"description":"Why the money total is partial or unavailable. Null only when coverage is complete.","type":"string","enum":["missing_reporting_days","no_reporting_data"],"isRequired":true,"uniqueKey":"oneOf.0.moneyCoverage.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why the money total is partial or unavailable. Null only when coverage is complete.","type":"null","enum":["missing_reporting_days","no_reporting_data"],"isRequired":true,"uniqueKey":"oneOf.0.moneyCoverage.reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.moneyCoverage.reason","typeLabel":"enum\u003cstring> | null"},"missingDays":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Number of proven gaps between stored reporting days in the requested range.","isRequired":true,"uniqueKey":"oneOf.0.moneyCoverage.missingDays","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.moneyCoverage","typeLabel":"object"},"periodStart":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start of the reporting period (YYYY-MM-DD)","isRequired":true,"uniqueKey":"oneOf.0.periodStart","typeLabel":"string"},"periodEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End of the reporting period (YYYY-MM-DD)","isRequired":true,"uniqueKey":"oneOf.0.periodEnd","typeLabel":"string"},"synthetic":{"description":"Present only for synthetic demo data. The notice states that the data is unsuitable for commercial decisions.","type":"object","properties":{"scenarioId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.synthetic.scenarioId","typeLabel":"string"},"notice":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.synthetic.notice","typeLabel":"string"}},"required":["scenarioId","notice"],"additionalProperties":false,"uniqueKey":"oneOf.0.synthetic","typeLabel":"object"},"consolidated":{"oneOf":[{"type":"object","description":"FX-converted cross-advertiser rollup in the display currency (explicit displayCurrency, or the buyer home currency when resolvable). Omitted when no conversion applies (single-currency buyer viewing natively). Display estimate only — never a billing input","required":["totals","byAdvertiser","conversionInfo"],"properties":{"totals":{"type":"object","description":"Cross-advertiser totals in the display currency: counts summed natively, money converted per advertiser then summed; money-derived metrics are null when any advertiser could not be converted","required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.impressions","typeLabel":"integer"},"spend":{"oneOf":[{"description":"Total spend (gross, fee-inclusive — the buyer denomination) in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.spend.oneOf.0","typeLabel":"number"},{"description":"Total spend (gross, fee-inclusive — the buyer denomination) in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.spend","typeLabel":"number | null"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.videoCompletions","typeLabel":"integer"},"conversionValue":{"oneOf":[{"description":"Total conversion value in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.conversionValue.oneOf.0","typeLabel":"number"},{"description":"Total conversion value in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.conversionValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.conversionValue","typeLabel":"number | null"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals.roas","typeLabel":"number | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.totals","typeLabel":"object"},"byAdvertiser":{"type":"array","items":{"type":"object","properties":{"advertiserId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.byAdvertiser.items.[INDEX].advertiserId","typeLabel":"string"},"currency":{"type":"string","description":"The advertiser native currency this row converted from","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.byAdvertiser.items.[INDEX].currency","typeLabel":"string"},"spend":{"oneOf":[{"description":"This advertiser spend converted to the display currency; null when its pair had no rate","type":"number","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.byAdvertiser.items.[INDEX].spend.oneOf.0","typeLabel":"number"},{"description":"This advertiser spend converted to the display currency; null when its pair had no rate","type":"null","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.byAdvertiser.items.[INDEX].spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.byAdvertiser.items.[INDEX].spend","typeLabel":"number | null"}},"required":["advertiserId","currency","spend"],"additionalProperties":false,"uniqueKey":"oneOf.0.consolidated.oneOf.0.byAdvertiser.items.[INDEX]","typeLabel":"object"},"description":"Per-advertiser converted spend so the consolidated total is auditable row by row","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.byAdvertiser","typeLabel":"object[]"},"conversionInfo":{"type":"object","properties":{"displayCurrency":{"type":"string","description":"ISO-4217 currency the consolidated block is expressed in","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.displayCurrency","typeLabel":"string"},"asOf":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"UTC calendar day whose locked rate-of-the-day was applied (one rate across the whole window)","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.asOf","typeLabel":"string"},"rateSource":{"type":"string","enum":["fx_rate_snapshots"],"description":"Where the rates came from (the platform rate-of-day table)","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.rateSource","typeLabel":"enum\u003cstring>"},"rateBasis":{"type":"string","enum":["as-of"],"description":"Conversion basis: 'as-of' applies one current rate-of-the-day to the whole window (an estimate; a booked-rate basis is a later phase)","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.rateBasis","typeLabel":"enum\u003cstring>"},"rates":{"type":"array","items":{"type":"object","properties":{"pair":{"type":"string","description":"BASEQUOTE pair, e.g. USDZAR = ZAR per USD","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.rates.items.[INDEX].pair","typeLabel":"string"},"rate":{"type":"number","description":"QUOTE units per 1 BASE","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.rates.items.[INDEX].rate","typeLabel":"number"}},"required":["pair","rate"],"additionalProperties":false,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.rates.items.[INDEX]","typeLabel":"object"},"description":"Every rate applied in this conversion","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.rates","typeLabel":"object[]"},"unconverted":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.unconverted.items.[INDEX]","typeLabel":"string"},"description":"Native currencies that could NOT be converted (no rate available); their spend is excluded from the consolidated money totals rather than guessed","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.unconverted","typeLabel":"string[]"},"estimate":{"type":"boolean","enum":[true],"description":"Always true: the consolidated figures are display estimates, never billing or settlement inputs","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo.estimate","typeLabel":"enum\u003cboolean>"}},"required":["displayCurrency","asOf","rateSource","rateBasis","rates","unconverted","estimate"],"additionalProperties":false,"description":"How the consolidated (FX-converted) figures were produced","isRequired":true,"uniqueKey":"oneOf.0.consolidated.oneOf.0.conversionInfo","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0.consolidated.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.consolidated.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.consolidated","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Time-series reporting response: flat leaf × day rows (same hierarchy fields as the summary view, plus date)","required":["timeseries","totals","totalsCurrency","moneyCoverage","periodStart","periodEnd"],"properties":{"timeseries":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Reporting date (YYYY-MM-DD)","example":"2025-01-15","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].date","typeLabel":"string"},"advertiserId":{"type":"string","description":"Advertiser identifier","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].advertiserId","typeLabel":"string"},"advertiserName":{"type":"string","description":"Advertiser name","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].advertiserName","typeLabel":"string"},"currency":{"type":"string","description":"ISO-4217 currency that actually denominates the row's spend, eCPM, and CPC; normally the advertiser's locked primary currency, or the reported source currency when FX conversion is unavailable","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].currency","typeLabel":"string"},"campaignId":{"type":"string","description":"Campaign identifier","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].campaignId","typeLabel":"string"},"campaignName":{"type":"string","description":"Campaign name","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].campaignName","typeLabel":"string"},"management":{"type":"string","description":"Management state of the row's campaign: \"tracked\" (mirrored read-only from a connected provider account) or \"managed\" (authored or adopted through the platform). Rows without a campaign are managed.","enum":["tracked","managed"],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].management","typeLabel":"enum\u003cstring>"},"mediaBuyId":{"type":"string","description":"Media buy identifier","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].mediaBuyId","typeLabel":"string"},"mediaBuyName":{"type":"string","description":"Media buy name","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].mediaBuyName","typeLabel":"string"},"mediaBuyStatus":{"type":"string","description":"Media buy status","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].mediaBuyStatus","typeLabel":"string"},"packageId":{"type":"string","description":"Package identifier. Empty string when the media buy has no packages.","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].packageId","typeLabel":"string"},"productId":{"type":"string","description":"Product identifier for this package. Empty string when no package.","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].productId","typeLabel":"string"},"productName":{"type":"string","description":"Human-readable product name for this package. Empty string when no package.","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].productName","typeLabel":"string"},"metrics":{"type":"object","properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.impressions","typeLabel":"integer"},"spend":{"type":"number","minimum":0,"description":"Total spend, denominated in the advertiser's primary currency (every campaign and buy is stamped in that currency; USD only for USD advertisers). On BUYER surfaces spend is GROSS (fee-inclusive): seller-reported net delivered spend is grossed up at read time at each buy's own pinned terms (a buy without pinned terms reports net as stored). On STOREFRONT surfaces spend stays NET as the seller reported it.","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.spend","typeLabel":"number"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.videoCompletions","typeLabel":"integer"},"conversionValue":{"type":"number","minimum":0,"description":"Total conversion value (advertiser-attributed revenue from conversions), denominated the same as spend. Unlike spend, conversion value is never grossed up on buyer surfaces — it is advertiser revenue, not marketplace spend, so it carries no platform fee.","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.conversionValue","typeLabel":"number"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics.roas","typeLabel":"number | null"}},"required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"additionalProperties":false,"description":"Raw and calculated reporting metrics","isRequired":true,"uniqueKey":"oneOf.1.timeseries.items.[INDEX].metrics","typeLabel":"object"},"channelGroupId":{"oneOf":[{"description":"Campaign channel group identifier, or null when ungrouped.","type":"string","uniqueKey":"oneOf.1.timeseries.items.[INDEX].channelGroupId.oneOf.0","typeLabel":"string"},{"description":"Campaign channel group identifier, or null when ungrouped.","type":"null","uniqueKey":"oneOf.1.timeseries.items.[INDEX].channelGroupId.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.timeseries.items.[INDEX].channelGroupId","typeLabel":"string | null"},"channelGroupName":{"oneOf":[{"description":"Campaign channel group name, or null when ungrouped.","type":"string","uniqueKey":"oneOf.1.timeseries.items.[INDEX].channelGroupName.oneOf.0","typeLabel":"string"},{"description":"Campaign channel group name, or null when ungrouped.","type":"null","uniqueKey":"oneOf.1.timeseries.items.[INDEX].channelGroupName.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.timeseries.items.[INDEX].channelGroupName","typeLabel":"string | null"},"sellerPackageId":{"oneOf":[{"description":"The seller's own id for this package: the value a {PACKAGE_ID} macro the seller fills arrives with on landing pages and trackers. Join site data on packageId or sellerPackageId, whichever the URL carries. Equals packageId when the package is booked on an inventory source Apostra runs, because Apostra is then the seller. Null when a third-party seller's own id is not known. Null when the row has no package.","type":"string","uniqueKey":"oneOf.1.timeseries.items.[INDEX].sellerPackageId.oneOf.0","typeLabel":"string"},{"description":"The seller's own id for this package: the value a {PACKAGE_ID} macro the seller fills arrives with on landing pages and trackers. Join site data on packageId or sellerPackageId, whichever the URL carries. Equals packageId when the package is booked on an inventory source Apostra runs, because Apostra is then the seller. Null when a third-party seller's own id is not known. Null when the row has no package.","type":"null","uniqueKey":"oneOf.1.timeseries.items.[INDEX].sellerPackageId.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.timeseries.items.[INDEX].sellerPackageId","typeLabel":"string | null"},"outcomeCount":{"oneOf":[{"description":"Present when the query sets outcomeType. The row's count of that outcome from the advertiser's uploaded measurement records whose window is this single day and that name this media buy and package (or this media buy and no package, on a row with no package). Records from different sources and geos are added together. Null when no such record exists: not measured, which is different from a measured zero.","type":"number","uniqueKey":"oneOf.1.timeseries.items.[INDEX].outcomeCount.oneOf.0","typeLabel":"number"},{"description":"Present when the query sets outcomeType. The row's count of that outcome from the advertiser's uploaded measurement records whose window is this single day and that name this media buy and package (or this media buy and no package, on a row with no package). Records from different sources and geos are added together. Null when no such record exists: not measured, which is different from a measured zero.","type":"null","uniqueKey":"oneOf.1.timeseries.items.[INDEX].outcomeCount.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.timeseries.items.[INDEX].outcomeCount","typeLabel":"number | null"},"costPerOutcome":{"oneOf":[{"description":"Present when the query sets outcomeType. metrics.spend divided by outcomeCount, in the row's currency. Null when outcomeCount is null or zero.","type":"number","uniqueKey":"oneOf.1.timeseries.items.[INDEX].costPerOutcome.oneOf.0","typeLabel":"number"},{"description":"Present when the query sets outcomeType. metrics.spend divided by outcomeCount, in the row's currency. Null when outcomeCount is null or zero.","type":"null","uniqueKey":"oneOf.1.timeseries.items.[INDEX].costPerOutcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.timeseries.items.[INDEX].costPerOutcome","typeLabel":"number | null"},"outcomeSource":{"description":"Present when the query sets outcomeType. Where outcomeCount comes from: the advertiser's uploaded measurement records, never seller-reported conversions.","type":"string","enum":["measurement_records"],"uniqueKey":"oneOf.1.timeseries.items.[INDEX].outcomeSource","typeLabel":"enum\u003cstring>"}},"required":["date","advertiserId","advertiserName","currency","campaignId","campaignName","management","mediaBuyId","mediaBuyName","mediaBuyStatus","packageId","productId","productName","metrics"],"additionalProperties":false,"description":"One row of metrics for a single (advertiser → campaign → media buy → package) leaf on a single day","uniqueKey":"oneOf.1.timeseries.items.[INDEX]","typeLabel":"object"},"description":"Flat rows: one entry per (advertiser → campaign → media buy → package) × day, sorted by date ascending","isRequired":true,"uniqueKey":"oneOf.1.timeseries","typeLabel":"object[]"},"totals":{"type":"object","description":"Aggregated totals across the entire period. Money metrics are null when the emitted rows span currencies","required":["impressions","spend","clicks","views","completedViews","conversions","leads","videoCompletions","conversionValue","viewability","ecpm","cpc","ctr","completionRate","cpa","roas"],"properties":{"impressions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total impressions","isRequired":true,"uniqueKey":"oneOf.1.totals.impressions","typeLabel":"integer"},"spend":{"oneOf":[{"description":"Total spend (gross, fee-inclusive — the buyer denomination) in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.totals.spend.oneOf.0","typeLabel":"number"},{"description":"Total spend (gross, fee-inclusive — the buyer denomination) in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.totals.spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.spend","typeLabel":"number | null"},"clicks":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total clicks","isRequired":true,"uniqueKey":"oneOf.1.totals.clicks","typeLabel":"integer"},"views":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Content views as the seller counts them, per AdCP: a platform-defined video view (for example 30 seconds or the midpoint), an audio stream start, or the view event defined by the package's pricing model. This is the billable quantity for CPV pricing. It is not a count of viewable impressions and must not be used to calculate a viewability rate.","isRequired":true,"uniqueKey":"oneOf.1.totals.views","typeLabel":"integer"},"completedViews":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Video/audio completions (qualified by view_duration_seconds when set on the goal)","isRequired":true,"uniqueKey":"oneOf.1.totals.completedViews","typeLabel":"integer"},"conversions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total conversions","isRequired":true,"uniqueKey":"oneOf.1.totals.conversions","typeLabel":"integer"},"leads":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total leads","isRequired":true,"uniqueKey":"oneOf.1.totals.leads","typeLabel":"integer"},"videoCompletions":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total video completions","isRequired":true,"uniqueKey":"oneOf.1.totals.videoCompletions","typeLabel":"integer"},"conversionValue":{"oneOf":[{"description":"Total conversion value in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.totals.conversionValue.oneOf.0","typeLabel":"number"},{"description":"Total conversion value in the currency named by totalsCurrency; null when the returned data spans currencies or has no denomination","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.totals.conversionValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.conversionValue","typeLabel":"number | null"},"viewability":{"oneOf":[{"type":"object","description":"Seller-reported viewability in AdCP shape. Counted only from reports that include both viewable_impressions and measurable_impressions, measured under MRC or with no standard declared; other standards are excluded so standards are never mixed. At package level, reports split into daily warehouse rows are excluded because viewability has no per-day slot in the AdCP daily breakdown; an unsplit multi-day report contributes once. Null when no report in scope measured viewability. Not related to views.","required":["viewable_impressions","measurable_impressions"],"properties":{"viewable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.viewability.oneOf.0.viewable_impressions","typeLabel":"number"},"measurable_impressions":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.viewability.oneOf.0.measurable_impressions","typeLabel":"number"},"viewable_rate":{"type":"number","uniqueKey":"oneOf.1.totals.viewability.oneOf.0.viewable_rate","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.totals.viewability.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"oneOf.1.totals.viewability.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.totals.viewability.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.viewability","typeLabel":"object | null"},"ecpm":{"oneOf":[{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.ecpm.oneOf.0","typeLabel":"number"},{"description":"Effective CPM: (spend * 1000) / impressions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when impressions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.1.totals.ecpm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.ecpm","typeLabel":"number | null"},"cpc":{"oneOf":[{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.cpc.oneOf.0","typeLabel":"number"},{"description":"Cost per click: spend / clicks, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when clicks is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.1.totals.cpc.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.cpc","typeLabel":"number | null"},"ctr":{"oneOf":[{"description":"Click-through rate: clicks / impressions","type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.ctr.oneOf.0","typeLabel":"number"},{"description":"Click-through rate: clicks / impressions","type":"null","isRequired":true,"uniqueKey":"oneOf.1.totals.ctr.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.ctr","typeLabel":"number | null"},"completionRate":{"oneOf":[{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.completionRate.oneOf.0","typeLabel":"number"},{"description":"Completion rate: completedViews / impressions (completions per paid impression; impressions is the paid unit for CPM video)","type":"null","isRequired":true,"uniqueKey":"oneOf.1.totals.completionRate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.completionRate","typeLabel":"number | null"},"cpa":{"oneOf":[{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.cpa.oneOf.0","typeLabel":"number"},{"description":"Cost per acquisition: spend / conversions, derived from spend in this surface's denomination (gross fee-inclusive on buyer surfaces); null when conversions is 0","type":"null","isRequired":true,"uniqueKey":"oneOf.1.totals.cpa.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.cpa","typeLabel":"number | null"},"roas":{"oneOf":[{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.totals.roas.oneOf.0","typeLabel":"number"},{"description":"Return on ad spend: conversionValue / spend; null when spend is 0, or when there is no conversion signal at all (conversionValue and conversions are both 0). Reports a true 0 when conversions are real but attributed value is zero. conversionValue carries no platform fee while spend is gross fee-inclusive on buyer surfaces, so buyer ROAS reads lower than storefront ROAS for identical delivery — the same denomination difference that already separates buyer and storefront cpc/ecpm.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.totals.roas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totals.roas","typeLabel":"number | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.totals","typeLabel":"object"},"totalsCurrency":{"oneOf":[{"description":"ISO-4217 currency the returned-row totals are denominated in; null when there are no rows or emitted rows span multiple currencies","type":"string","isRequired":true,"uniqueKey":"oneOf.1.totalsCurrency.oneOf.0","typeLabel":"string"},{"description":"ISO-4217 currency the returned-row totals are denominated in; null when there are no rows or emitted rows span multiple currencies","type":"null","isRequired":true,"uniqueKey":"oneOf.1.totalsCurrency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.totalsCurrency","typeLabel":"string | null"},"moneyCoverage":{"type":"object","description":"Coverage of totals.spend and totals.conversionValue. When partial or unavailable, those money totals and money-derived rates are null rather than a lower number that treats a missing report as zero.","required":["status","reason","missingDays"],"properties":{"status":{"type":"string","enum":["complete","partial","unavailable"],"description":"complete when no gap is proven between stored reporting days; partial when a stored reporting day is missing between two present days; unavailable when no reporting data is stored.","isRequired":true,"uniqueKey":"oneOf.1.moneyCoverage.status","typeLabel":"enum\u003cstring>"},"reason":{"oneOf":[{"description":"Why the money total is partial or unavailable. Null only when coverage is complete.","type":"string","enum":["missing_reporting_days","no_reporting_data"],"isRequired":true,"uniqueKey":"oneOf.1.moneyCoverage.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why the money total is partial or unavailable. Null only when coverage is complete.","type":"null","enum":["missing_reporting_days","no_reporting_data"],"isRequired":true,"uniqueKey":"oneOf.1.moneyCoverage.reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.moneyCoverage.reason","typeLabel":"enum\u003cstring> | null"},"missingDays":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Number of proven gaps between stored reporting days in the requested range.","isRequired":true,"uniqueKey":"oneOf.1.moneyCoverage.missingDays","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.moneyCoverage","typeLabel":"object"},"periodStart":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start of the reporting period (YYYY-MM-DD)","isRequired":true,"uniqueKey":"oneOf.1.periodStart","typeLabel":"string"},"periodEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End of the reporting period (YYYY-MM-DD)","isRequired":true,"uniqueKey":"oneOf.1.periodEnd","typeLabel":"string"},"synthetic":{"description":"Present only for synthetic demo data. The notice states that the data is unsuitable for commercial decisions.","type":"object","properties":{"scenarioId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.synthetic.scenarioId","typeLabel":"string"},"notice":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.synthetic.notice","typeLabel":"string"}},"required":["scenarioId","notice"],"additionalProperties":false,"uniqueKey":"oneOf.1.synthetic","typeLabel":"object"},"goalProgress":{"description":"Goal progress over the whole period for every media buy and campaign in the rows, for buys with a goal commitment or campaigns with a goal.","type":"object","properties":{"mediaBuys":{"type":"array","items":{"type":"object","properties":{"mediaBuyId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].mediaBuyId","typeLabel":"string"},"campaignId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].campaignId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].campaignId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].campaignId","typeLabel":"string | null"},"progress":{"type":"object","properties":{"goal":{"oneOf":[{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"object","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.subject","typeLabel":"string"},"eventTypes":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.eventTypes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.eventTypes","typeLabel":"string[]"},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.0","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.1","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.2","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.target","typeLabel":"object · object · object · object · null"},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.vendor","typeLabel":"object"},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.metricId","typeLabel":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0.metricLabel","typeLabel":"object"}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.0","typeLabel":"object"},{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"null","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"]},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal."},"eventTypes":{"type":"array","items":{"type":"string"}},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"]}},"additionalProperties":false},{"type":"null"}]},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string"},"brandId":{"type":"string"}},"required":["domain"],"additionalProperties":false},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it."},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"]}},"additionalProperties":false},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name."},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string"}},"additionalProperties":false}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.goal","typeLabel":"object | null"},"askedTarget":{"oneOf":[{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.askedTarget","typeLabel":"object · object · object · object · null"},"answeredTarget":{"oneOf":[{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.answeredTarget","typeLabel":"object · object · object · object · null"},"commitment":{"oneOf":[{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"string","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.commitment.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"null","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.commitment.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.commitment","typeLabel":"enum\u003cstring> | null"},"commitmentSource":{"oneOf":[{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"string","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.commitmentSource.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"null","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.commitmentSource.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.commitmentSource","typeLabel":"enum\u003cstring> | null"},"actual":{"oneOf":[{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"object","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.value","typeLabel":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.units","typeLabel":"number"},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.denominatorUnits.oneOf.0","typeLabel":"number"},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.denominatorUnits.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.denominatorUnits","typeLabel":"number | null"},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.perUnits.oneOf.0","typeLabel":"enum\u003cnumber>"},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.perUnits.oneOf.1","typeLabel":"enum\u003cnumber>"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.perUnits","typeLabel":"enum\u003cnumber>"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0.currency","typeLabel":"string | null"}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.0","typeLabel":"object"},{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"null","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"]},"value":{"type":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression."},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count."},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0}]},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1]},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000]}]},"currency":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.actual","typeLabel":"object | null"},"verdict":{"oneOf":[{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"string","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"null","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.verdict","typeLabel":"enum\u003cstring> | null"},"judgedAgainst":{"oneOf":[{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"string","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.judgedAgainst.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"null","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.judgedAgainst.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.judgedAgainst","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"string","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"null","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.verdictWithheld","typeLabel":"enum\u003cstring> | null"},"basis":{"oneOf":[{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind"],"properties":{"kind":{"type":"string","enum":["seller_attested"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.0.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.0","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","impressions"],"properties":{"kind":{"type":"string","enum":["advertiser_measured"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.metricId","typeLabel":"string"},"impressions":{"type":"number","minimum":0,"description":"Impressions delivered on the days the advertiser's measurement records cover, the rate's denominator.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.impressions","typeLabel":"number"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.1","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","measurableImpressions","coverage"],"properties":{"kind":{"type":"string","enum":["vendor_attested"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.metricId","typeLabel":"string"},"measurableImpressions":{"type":"number","minimum":0,"description":"Impressions the vendor measured across the values judged.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.measurableImpressions","typeLabel":"number"},"coverage":{"oneOf":[{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.coverage.oneOf.0","typeLabel":"number"},{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"null","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.coverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.coverage","typeLabel":"number | null"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.2","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis.oneOf.3","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.basis","typeLabel":"object · object · object · null"},"freshness":{"type":"object","properties":{"dataThrough":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.dataThrough.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.dataThrough.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.dataThrough","typeLabel":"string | null"},"reportingPeriodEnd":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.reportingPeriodEnd.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.reportingPeriodEnd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.reportingPeriodEnd","typeLabel":"string | null"},"nextExpectedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.nextExpectedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.nextExpectedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.nextExpectedAt","typeLabel":"string | null"},"notificationType":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.notificationType.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.notificationType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.notificationType","typeLabel":"string | null"},"sequenceNumber":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.sequenceNumber.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.sequenceNumber.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.sequenceNumber","typeLabel":"number | null"},"awaitingLaterReport":{"type":"boolean","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.awaitingLaterReport","typeLabel":"boolean"},"missingMetrics":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.missingMetrics.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness.missingMetrics","typeLabel":"string[]"}},"required":["dataThrough","reportingPeriodEnd","nextExpectedAt","notificationType","sequenceNumber","awaitingLaterReport","missingMetrics"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.freshness","typeLabel":"object"},"pace":{"oneOf":[{"type":"object","description":"How the money is pacing against the flight, judged separately from the goal itself, so \"$200 a day at 80% viewable\" reads as two answers. Null when the surface does not know this scope's budget and flight.","required":["flightElapsed","measuredFraction","expectedSpend","actualSpend","ratio","spendPerDay","budgetPerDay","currency","verdict","verdictWithheld"],"properties":{"flightElapsed":{"oneOf":[{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.flightElapsed.oneOf.0","typeLabel":"number"},{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.flightElapsed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.flightElapsed","typeLabel":"number | null"},"measuredFraction":{"oneOf":[{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.measuredFraction.oneOf.0","typeLabel":"number"},{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.measuredFraction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.measuredFraction","typeLabel":"number | null"},"expectedSpend":{"oneOf":[{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.expectedSpend.oneOf.0","typeLabel":"number"},{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.expectedSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.expectedSpend","typeLabel":"number | null"},"actualSpend":{"oneOf":[{"description":"The delivered spend the expectation is compared against.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.actualSpend.oneOf.0","typeLabel":"number"},{"description":"The delivered spend the expectation is compared against.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.actualSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.actualSpend","typeLabel":"number | null"},"ratio":{"oneOf":[{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.ratio.oneOf.0","typeLabel":"number"},{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.ratio.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.ratio","typeLabel":"number | null"},"spendPerDay":{"oneOf":[{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.spendPerDay.oneOf.0","typeLabel":"number"},{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.spendPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.spendPerDay","typeLabel":"number | null"},"budgetPerDay":{"oneOf":[{"description":"The daily rate an even pace across the whole flight implies.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.budgetPerDay.oneOf.0","typeLabel":"number"},{"description":"The daily rate an even pace across the whole flight implies.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.budgetPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.budgetPerDay","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.currency","typeLabel":"string | null"},"verdict":{"oneOf":[{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"string","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"null","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.verdict","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"string","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"null","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0.verdictWithheld","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress.pace","typeLabel":"object | null"}},"required":["goal","askedTarget","answeredTarget","commitment","commitmentSource","actual","verdict","judgedAgainst","verdictWithheld","basis","freshness","pace"],"additionalProperties":false,"description":"How delivery compares with the buyer's goal: the goal and targets, the seller's commitment, the achieved value, a verdict only when the evidence supports one, who counted the number, and how fresh it is.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX].progress","typeLabel":"object"}},"required":["mediaBuyId","campaignId","progress"],"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.mediaBuys.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.mediaBuys","typeLabel":"object[]"},"campaigns":{"type":"array","items":{"type":"object","properties":{"campaignId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].campaignId","typeLabel":"string"},"progress":{"type":"object","properties":{"goal":{"oneOf":[{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"object","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.subject","typeLabel":"string"},"eventTypes":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.eventTypes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.eventTypes","typeLabel":"string[]"},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.0","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.1","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.2","typeLabel":"object"},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.target","typeLabel":"object · object · object · object · null"},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.vendor","typeLabel":"object"},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.metricId","typeLabel":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0.metricLabel","typeLabel":"object"}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.0","typeLabel":"object"},{"description":"The buyer's goal being judged: the commitment's asked goal, else the campaign's primary goal. Null when only a fixed outcome price is on record.","type":"null","properties":{"kind":{"type":"string","enum":["metric","event","vendor_metric"]},"subject":{"type":"string","description":"The metric name for a metric goal; the event type(s) joined with | for an event goal; `\u003cvendor domain>:\u003cmetric id>` for a vendor metric goal."},"eventTypes":{"type":"array","items":{"type":"string"}},"target":{"oneOf":[{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","description":"A goal target: a cost per unit, a minimum rate per impression, a minimum return on ad spend, or maximise with no number.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"]}},"additionalProperties":false},{"type":"null"}]},"vendor":{"description":"The measurement vendor that counts a vendor metric goal. Absent for any other goal.","type":"object","properties":{"domain":{"type":"string"},"brandId":{"type":"string"}},"required":["domain"],"additionalProperties":false},"metricId":{"description":"The vendor's metric id for a vendor metric goal. Absent for any other goal.","type":"string"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it."},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"]}},"additionalProperties":false},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name."},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string"}},"additionalProperties":false}},"required":["kind","subject","eventTypes","target"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.goal","typeLabel":"object | null"},"askedTarget":{"oneOf":[{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The target the buyer asked for, when the goal carries one.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.askedTarget","typeLabel":"object · object · object · object · null"},"answeredTarget":{"oneOf":[{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["cost_per"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.0.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.0","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["threshold_rate"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.1.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.1","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["per_ad_spend"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.2.value","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.2","typeLabel":"object"},{"type":"object","description":"The cost or return the seller's terms commit or aim at, from the media buy's goal commitment.","required":["kind"],"properties":{"kind":{"type":"string","enum":["maximize_value"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.3","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.answeredTarget","typeLabel":"object · object · object · object · null"},"commitment":{"oneOf":[{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"string","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.commitment.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The commitment kind on the media buy, or the weakest across a campaign; null when no buy carries one.","type":"null","enum":["guaranteed","best_effort","report_only"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.commitment.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.commitment","typeLabel":"enum\u003cstring> | null"},"commitmentSource":{"oneOf":[{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"string","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.commitmentSource.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Where a media buy commitment came from; null at campaign level, where buys may differ.","type":"null","enum":["proposal","campaign"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.commitmentSource.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.commitmentSource","typeLabel":"enum\u003cstring> | null"},"actual":{"oneOf":[{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"object","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.value","typeLabel":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.units","typeLabel":"number"},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.denominatorUnits.oneOf.0","typeLabel":"number"},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.denominatorUnits.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.denominatorUnits","typeLabel":"number | null"},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.perUnits.oneOf.0","typeLabel":"enum\u003cnumber>"},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.perUnits.oneOf.1","typeLabel":"enum\u003cnumber>"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.perUnits","typeLabel":"enum\u003cnumber>"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0.currency","typeLabel":"string | null"}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.0","typeLabel":"object"},{"description":"The achieved cost per unit (per thousand for impressions), rate over the metric's own denominator, or volume for the goal's metric, computed from the same delivery this response reports. Null when the metric was not reported or has no observations.","type":"null","properties":{"kind":{"type":"string","enum":["cost_per","threshold_rate","volume"]},"value":{"type":"number"},"unit":{"type":"string","enum":["impressions","clicks","views","completedViews","conversions","leads","viewableImpressions","vendorMetric"],"description":"The delivery count the value is in. vendorMetric is a vendor metric goal's own metric: the vendor's value per measured impression when sellers reported it, or the advertiser's measured outcomes per delivered impression."},"units":{"type":"number","minimum":0,"description":"The delivered count of the goal's unit the value was computed over; for a vendor metric goal, the impressions the vendor measured, or the outcomes the advertiser's records count."},"denominatorUnits":{"oneOf":[{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"number","minimum":0},{"description":"What a threshold_rate divided by: measurable impressions for a viewable rate or a vendor metric, impressions for every other rate. Null for a cost or a volume.","type":"null","minimum":0}]},"perUnits":{"oneOf":[{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1]},{"type":"number","description":"How many units a cost_per value prices: 1000 for impressions (a price per thousand, like CPM), 1 for every other unit.","enum":[1000]}]},"currency":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["kind","value","unit","units","denominatorUnits","perUnits","currency"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.actual","typeLabel":"object | null"},"verdict":{"oneOf":[{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"string","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivery compares with the target. Null whenever the evidence does not support a verdict; see verdictWithheld.","type":"null","enum":["on_track","behind","beat"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.verdict","typeLabel":"enum\u003cstring> | null"},"judgedAgainst":{"oneOf":[{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"string","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.judgedAgainst.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Which target the verdict compares against: the buyer's asked target, or the seller's answered price when the buyer stated none.","type":"null","enum":["asked","answered"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.judgedAgainst.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.judgedAgainst","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"string","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no verdict. metric_unsupported covers metrics delivery does not carry (reach, attention), event goals other than lead-only ones and return-on-ad-spend targets, which need event-scoped counts this surface does not have, and a cost target on a vendor metric goal, whose unit the vendor defines. It also covers vendor values reported under more than one qualifier, when the goal names none, or in windows that overlap without one containing the other. Too few observations means the metric is real but below the minimum count that makes a comparison meaningful.","type":"null","enum":["no_goal","no_target","metric_unsupported","metric_not_reported","too_few_observations"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.verdictWithheld","typeLabel":"enum\u003cstring> | null"},"basis":{"oneOf":[{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind"],"properties":{"kind":{"type":"string","enum":["seller_attested"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.0.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.0","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","impressions"],"properties":{"kind":{"type":"string","enum":["advertiser_measured"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.metricId","typeLabel":"string"},"impressions":{"type":"number","minimum":0,"description":"Impressions delivered on the days the advertiser's measurement records cover, the rate's denominator.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.impressions","typeLabel":"number"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.1","typeLabel":"object"},{"type":"object","description":"Who counted the number: seller_attested for the seller's own delivery counts, vendor_attested for a measurement vendor's values the seller reported under a vendor metric goal's vendor and metric id, advertiser_measured for the advertiser's own measurement records under that vendor and metric, which take precedence.","required":["kind","vendor","metricId","measurableImpressions","coverage"],"properties":{"kind":{"type":"string","enum":["vendor_attested"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"vendor":{"type":"object","properties":{"domain":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.vendor.domain","typeLabel":"string"},"brandId":{"type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.vendor.brandId","typeLabel":"string"}},"required":["domain"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.vendor","typeLabel":"object"},"metricId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.metricId","typeLabel":"string"},"measurableImpressions":{"type":"number","minimum":0,"description":"Impressions the vendor measured across the values judged.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.measurableImpressions","typeLabel":"number"},"coverage":{"oneOf":[{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.coverage.oneOf.0","typeLabel":"number"},{"description":"Share of delivered impressions the vendor measured, 0 to 1. Null when delivery reported no impressions to compare with.","type":"null","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.coverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.coverage","typeLabel":"number | null"},"vendorLabel":{"type":"object","description":"Display label for the measurement vendor beside it. Names are display only; the vendor domain stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The vendor's name from its brand.json, for example `Integral Ad Science`. The vendor's domain when the registry has no name for it.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.vendorLabel.name","typeLabel":"string"},"kind":{"description":"What brand.json says the vendor is: `measurement` when it lists a measurement agent. Absent when it lists none or the registry could not be read.","type":"string","enum":["measurement"],"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.vendorLabel.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.vendorLabel","typeLabel":"object"},"metricLabel":{"type":"object","description":"Display label for the vendor metric beside it, from the vendor's measurement catalog. The metric id stays the identifier.","required":["name"],"properties":{"name":{"type":"string","description":"The metric's id written as words, for example `Brand safety rate`. AdCP's measurement catalog carries no display name.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.metricLabel.name","typeLabel":"string"},"unit":{"description":"The unit the vendor's catalog declares for the metric, for example `percent` or `score`. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.metricLabel.unit","typeLabel":"string"},"description":{"description":"What the vendor's catalog says the metric measures. Absent when the catalog does not say.","type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.metricLabel.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2.metricLabel","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.2","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis.oneOf.3","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.basis","typeLabel":"object · object · object · null"},"freshness":{"type":"object","properties":{"dataThrough":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.dataThrough.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.dataThrough.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.dataThrough","typeLabel":"string | null"},"reportingPeriodEnd":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.reportingPeriodEnd.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.reportingPeriodEnd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.reportingPeriodEnd","typeLabel":"string | null"},"nextExpectedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.nextExpectedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.nextExpectedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.nextExpectedAt","typeLabel":"string | null"},"notificationType":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.notificationType.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.notificationType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.notificationType","typeLabel":"string | null"},"sequenceNumber":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.sequenceNumber.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.sequenceNumber.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.sequenceNumber","typeLabel":"number | null"},"awaitingLaterReport":{"type":"boolean","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.awaitingLaterReport","typeLabel":"boolean"},"missingMetrics":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.missingMetrics.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness.missingMetrics","typeLabel":"string[]"}},"required":["dataThrough","reportingPeriodEnd","nextExpectedAt","notificationType","sequenceNumber","awaitingLaterReport","missingMetrics"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.freshness","typeLabel":"object"},"pace":{"oneOf":[{"type":"object","description":"How the money is pacing against the flight, judged separately from the goal itself, so \"$200 a day at 80% viewable\" reads as two answers. Null when the surface does not know this scope's budget and flight.","required":["flightElapsed","measuredFraction","expectedSpend","actualSpend","ratio","spendPerDay","budgetPerDay","currency","verdict","verdictWithheld"],"properties":{"flightElapsed":{"oneOf":[{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.flightElapsed.oneOf.0","typeLabel":"number"},{"description":"Fraction of the WHOLE flight elapsed at the measured instant, 0 to 1. This says where the buy is in its life; it is not what expectedSpend is computed from on a windowed read.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.flightElapsed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.flightElapsed","typeLabel":"number | null"},"measuredFraction":{"oneOf":[{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.measuredFraction.oneOf.0","typeLabel":"number"},{"description":"Fraction of the flight the reported spend actually covers. Equal to flightElapsed when the read covers the buy's whole life, smaller when it covers a selected window — and it is this, not flightElapsed, that expectedSpend and the verdict are measured over, so both sides of the ratio always describe the same interval.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.measuredFraction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.measuredFraction","typeLabel":"number | null"},"expectedSpend":{"oneOf":[{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.expectedSpend.oneOf.0","typeLabel":"number"},{"description":"The spend an even pace across the flight expects over the interval the reported spend covers.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.expectedSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.expectedSpend","typeLabel":"number | null"},"actualSpend":{"oneOf":[{"description":"The delivered spend the expectation is compared against.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.actualSpend.oneOf.0","typeLabel":"number"},{"description":"The delivered spend the expectation is compared against.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.actualSpend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.actualSpend","typeLabel":"number | null"},"ratio":{"oneOf":[{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.ratio.oneOf.0","typeLabel":"number"},{"description":"actualSpend divided by expectedSpend; 1 sits exactly on the even-pace line.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.ratio.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.ratio","typeLabel":"number | null"},"spendPerDay":{"oneOf":[{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.spendPerDay.oneOf.0","typeLabel":"number"},{"description":"Delivered spend per day of the measured interval — the number a \"$200 a day\" ask names.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.spendPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.spendPerDay","typeLabel":"number | null"},"budgetPerDay":{"oneOf":[{"description":"The daily rate an even pace across the whole flight implies.","type":"number","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.budgetPerDay.oneOf.0","typeLabel":"number"},{"description":"The daily rate an even pace across the whole flight implies.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.budgetPerDay.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.budgetPerDay","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.currency","typeLabel":"string | null"},"verdict":{"oneOf":[{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"string","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.verdict.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"How delivered spend compares with the even-pace line. Null whenever the evidence does not support a verdict; see verdictWithheld. `ahead` is neither praise nor alarm — it means the flight will exhaust early at this rate.","type":"null","enum":["on_pace","behind","ahead"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.verdict.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.verdict","typeLabel":"enum\u003cstring> | null"},"verdictWithheld":{"oneOf":[{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"string","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.verdictWithheld.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Why there is no pace verdict: no booked budget, no usable flight window, the flight has not started, the reporting window you asked for covers none of the flight (reading a recent window of a flight that ended months ago), the reported spend covers too little of the flight for the ratio to mean anything, or no delivery has been reported.","type":"null","enum":["no_budget","no_flight","flight_not_started","window_outside_flight","too_short_a_window","spend_not_reported"],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.verdictWithheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0.verdictWithheld","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress.pace","typeLabel":"object | null"}},"required":["goal","askedTarget","answeredTarget","commitment","commitmentSource","actual","verdict","judgedAgainst","verdictWithheld","basis","freshness","pace"],"additionalProperties":false,"description":"How delivery compares with the buyer's goal: the goal and targets, the seller's commitment, the achieved value, a verdict only when the evidence supports one, who counted the number, and how fresh it is.","isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX].progress","typeLabel":"object"}},"required":["campaignId","progress"],"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress.campaigns.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.1.goalProgress.campaigns","typeLabel":"object[]"}},"required":["mediaBuys","campaigns"],"additionalProperties":false,"uniqueKey":"oneOf.1.goalProgress","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"Response containing a signed URL to download the exported CSV","required":["downloadUrl","expiresAt","fileName","rowCount"],"properties":{"downloadUrl":{"type":"string","format":"uri","description":"Signed URL to download the CSV file (expires in 7 days)","isRequired":true,"uniqueKey":"oneOf.2.downloadUrl","typeLabel":"string\u003curi>"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"ISO 8601 timestamp when the download URL expires","isRequired":true,"uniqueKey":"oneOf.2.expiresAt","typeLabel":"string\u003cdate-time>"},"fileName":{"type":"string","description":"Name of the generated CSV file","isRequired":true,"uniqueKey":"oneOf.2.fileName","typeLabel":"string"},"rowCount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Number of data rows in the CSV (excluding header)","isRequired":true,"uniqueKey":"oneOf.2.rowCount","typeLabel":"integer"},"synthetic":{"description":"Present only for a synthetic demo export. The notice states that the data is unsuitable for commercial decisions.","type":"object","properties":{"scenarioId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.synthetic.scenarioId","typeLabel":"string"},"notice":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.synthetic.notice","typeLabel":"string"}},"required":["scenarioId","notice"],"additionalProperties":false,"uniqueKey":"oneOf.2.synthetic","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"advertisers":[{"advertiserId":"\u003cstring>","advertiserName":"\u003cstring>","currency":"\u003cstring>","metrics":{"impressions":4503599627370495,"spend":1,"clicks":4503599627370495,"views":4503599627370495,"completedViews":4503599627370495,"conversions":4503599627370495,"leads":4503599627370495,"videoCompletions":4503599627370495,"conversionValue":1,"viewability":{"viewable_impressions":123,"measurable_impressions":123,"viewable_rate":123},"ecpm":123,"cpc":123,"ctr":123,"completionRate":123,"cpa":123,"roas":123},"campaigns":[{"campaignId":"\u003cstring>","campaignName":"\u003cstring>","management":"tracked","metrics":{"impressions":4503599627370495,"spend":1,"clicks":4503599627370495,"views":4503599627370495,"completedViews":4503599627370495,"conversions":4503599627370495,"leads":4503599627370495,"videoCompletions":4503599627370495,"conversionValue":1,"viewability":{"viewable_impressions":123,"measurable_impressions":123,"viewable_rate":123},"ecpm":123,"cpc":123,"ctr":123,"completionRate":123,"cpa":123,"roas":123},"mediaBuys":[{"mediaBuyId":"\u003cstring>","name":"\u003cstring>","status":"\u003cstring>","budget":123,"metrics":{"impressions":4503599627370495,"spend":1,"clicks":4503599627370495,"views":4503599627370495,"completedViews":4503599627370495,"conversions":4503599627370495,"leads":4503599627370495,"videoCompletions":4503599627370495,"conversionValue":1,"viewability":{"viewable_impressions":123,"measurable_impressions":123,"viewable_rate":123},"ecpm":123,"cpc":123,"ctr":123,"completionRate":123,"cpa":123,"roas":123},"packages":[{"packageId":"\u003cstring>","productId":"\u003cstring>","productName":"\u003cstring>","metrics":{"impressions":4503599627370495,"spend":1,"clicks":4503599627370495,"views":4503599627370495,"completedViews":4503599627370495,"conversions":4503599627370495,"leads":4503599627370495,"videoCompletions":4503599627370495,"conversionValue":1,"viewability":{"viewable_impressions":123,"measurable_impressions":123,"viewable_rate":123},"ecpm":123,"cpc":123,"ctr":123,"completionRate":123,"cpa":123,"roas":123},"sellerPackageId":"\u003cstring>"}],"channelGroup":{"channelGroupId":"\u003cstring>","name":"\u003cstring>"},"deliveryFxConversion":{"fromCurrency":"\u003cstring>","rate":123,"asOfDate":"\u003cstring>","source":"booked"},"goalProgress":{"goal":{"kind":"metric","subject":"\u003cstring>","eventTypes":["\u003cstring>"],"target":{"kind":"cost_per","value":123},"vendor":{"domain":"\u003cstring>","brandId":"\u003cstring>"},"metricId":"\u003cstring>","vendorLabel":{"name":"\u003cstring>","kind":"measurement"},"metricLabel":{"name":"\u003cstring>","unit":"\u003cstring>","description":"\u003cstring>"}},"askedTarget":{"kind":"cost_per","value":123},"answeredTarget":{"kind":"cost_per","value":123},"commitment":"guaranteed","commitmentSource":"proposal","actual":{"kind":"cost_per","value":123,"unit":"impressions","units":1,"denominatorUnits":1,"perUnits":1,"currency":"\u003cstring>"},"verdict":"on_track","judgedAgainst":"asked","verdictWithheld":"no_goal","basis":{"kind":"seller_attested"},"freshness":{"dataThrough":"\u003cstring>","reportingPeriodEnd":"\u003cstring>","nextExpectedAt":"\u003cstring>","notificationType":"\u003cstring>","sequenceNumber":123,"awaitingLaterReport":true,"missingMetrics":["\u003cstring>"]},"pace":{"flightElapsed":123,"measuredFraction":123,"expectedSpend":123,"actualSpend":123,"ratio":123,"spendPerDay":123,"budgetPerDay":123,"currency":"\u003cstring>","verdict":"on_pace","verdictWithheld":"no_budget"}}}],"goalProgress":{"goal":{"kind":"metric","subject":"\u003cstring>","eventTypes":["\u003cstring>"],"target":{"kind":"cost_per","value":123},"vendor":{"domain":"\u003cstring>","brandId":"\u003cstring>"},"metricId":"\u003cstring>","vendorLabel":{"name":"\u003cstring>","kind":"measurement"},"metricLabel":{"name":"\u003cstring>","unit":"\u003cstring>","description":"\u003cstring>"}},"askedTarget":{"kind":"cost_per","value":123},"answeredTarget":{"kind":"cost_per","value":123},"commitment":"guaranteed","commitmentSource":"proposal","actual":{"kind":"cost_per","value":123,"unit":"impressions","units":1,"denominatorUnits":1,"perUnits":1,"currency":"\u003cstring>"},"verdict":"on_track","judgedAgainst":"asked","verdictWithheld":"no_goal","basis":{"kind":"seller_attested"},"freshness":{"dataThrough":"\u003cstring>","reportingPeriodEnd":"\u003cstring>","nextExpectedAt":"\u003cstring>","notificationType":"\u003cstring>","sequenceNumber":123,"awaitingLaterReport":true,"missingMetrics":["\u003cstring>"]},"pace":{"flightElapsed":123,"measuredFraction":123,"expectedSpend":123,"actualSpend":123,"ratio":123,"spendPerDay":123,"budgetPerDay":123,"currency":"\u003cstring>","verdict":"on_pace","verdictWithheld":"no_budget"}}}]}],"totals":{"impressions":4503599627370495,"spend":1,"clicks":4503599627370495,"views":4503599627370495,"completedViews":4503599627370495,"conversions":4503599627370495,"leads":4503599627370495,"videoCompletions":4503599627370495,"conversionValue":1,"viewability":{"viewable_impressions":123,"measurable_impressions":123,"viewable_rate":123},"ecpm":123,"cpc":123,"ctr":123,"completionRate":123,"cpa":123,"roas":123},"totalsCurrency":"\u003cstring>","moneyCoverage":{"status":"complete","reason":"missing_reporting_days","missingDays":4503599627370495},"periodStart":"\u003cstring>","periodEnd":"\u003cstring>","synthetic":{"scenarioId":"\u003cstring>","notice":"\u003cstring>"},"consolidated":{"totals":{"impressions":4503599627370495,"spend":1,"clicks":4503599627370495,"views":4503599627370495,"completedViews":4503599627370495,"conversions":4503599627370495,"leads":4503599627370495,"videoCompletions":4503599627370495,"conversionValue":1,"viewability":{"viewable_impressions":123,"measurable_impressions":123,"viewable_rate":123},"ecpm":123,"cpc":123,"ctr":123,"completionRate":123,"cpa":123,"roas":123},"byAdvertiser":[{"advertiserId":"\u003cstring>","currency":"\u003cstring>","spend":123}],"conversionInfo":{"displayCurrency":"\u003cstring>","asOf":"\u003cstring>","rateSource":"fx_rate_snapshots","rateBasis":"as-of","rates":[{"pair":"\u003cstring>","rate":123}],"unconverted":["\u003cstring>"],"estimate":true}}}}},"exampleType":"generated"}},"exampleType":"generated"},"cd639428-010c-453e-a6a8-719a832298cd":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"string","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data","typeLabel":"enum\u003cstring> | null"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"description":"Field path associated with the error","type":"string","uniqueKey":"error.field","typeLabel":"string"},"details":{"description":"Additional error context","type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Structured error object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["data","error"],"additionalProperties":false,"description":"Standard error response","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"a8aac971-078c-4a8c-8ffd-d40bdb777730":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"string","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data","typeLabel":"enum\u003cstring> | null"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"description":"Field path associated with the error","type":"string","uniqueKey":"error.field","typeLabel":"string"},"details":{"description":"Additional error context","type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Structured error object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["data","error"],"additionalProperties":false,"description":"Standard error response","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"8da4a253-8633-4086-a39c-ac6b159611c3":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"string","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data","typeLabel":"enum\u003cstring> | null"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"description":"Field path associated with the error","type":"string","uniqueKey":"error.field","typeLabel":"string"},"details":{"description":"Additional error context","type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Structured error object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["data","error"],"additionalProperties":false,"description":"Standard error response","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c018b909-949f-4843-9a23-b1ee7223343a":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key or access token","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"79f891a6-2e76-48a5-99c9-7c181bc851d3":{"url":"https://api.apostra.com/api/v2/buyer","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key or access token","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key or access token","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"v2/buyer-api-v2.yaml"},"subdomain":"agentic2","siteName":"Apostra","title":"Get reporting - Apostra","navMaps":{"firstHrefInVersion":{"v2":{"href":"/v2/buyer-api-reference/reporting/get-reporting","matchLevel":0},"v3":{"href":"/v3/overview","matchLevel":3}},"firstHrefInLanguage":{}},"lastModified":"2026-11-07T03:53:37.157Z","originalFileLocation":"v2/buyer-api-reference/reporting/get-reporting.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Apostra\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get reporting - Apostra\">\u003cmeta data-mint-head property=\"og:description\" content=\"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Apostra API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://agentic2.mintlify.site/_mintlify/api/og/v2?division=Reporting\u0026amp;title=Get+reporting\u0026amp;description=Get+reporting+metrics+across+all+advertisers+and+campaigns.+The+response+is+hierarchical+for+view%3Dsummary%2C+flat+leaf-by-day+rows+for+view%3Dtimeseries%2C+or+a+signe\u0026amp;theme=c49c13ac1fe5edf0b8126688\u0026amp;signature=7737ac4d5c251dcb1941fced3feeae9d5898a870ed73a85de0e3b7535c0b4c38\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get reporting - Apostra\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agentic2.mintlify.site/_mintlify/api/og/v2?division=Reporting\u0026amp;title=Get+reporting\u0026amp;description=Get+reporting+metrics+across+all+advertisers+and+campaigns.+The+response+is+hierarchical+for+view%3Dsummary%2C+flat+leaf-by-day+rows+for+view%3Dtimeseries%2C+or+a+signe\u0026amp;theme=c49c13ac1fe5edf0b8126688\u0026amp;signature=7737ac4d5c251dcb1941fced3feeae9d5898a870ed73a85de0e3b7535c0b4c38\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Apostra\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7513D4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/buyer-api-reference/reporting/get-reporting.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.apostra.com/#organization\",\"name\":\"Apostra\",\"url\":\"https://docs.apostra.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/agentic2/A5rx0kFcKxq4RfQe/logo-apostra/apostra-black-purple-logo.svg?fit=max\u0026auto=format\u0026n=A5rx0kFcKxq4RfQe\u0026q=85\u0026s=d9788f7a39ebea19b202324e702d3178\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.apostra.com#website\",\"name\":\"Apostra\",\"url\":\"https://docs.apostra.com\",\"publisher\":{\"@id\":\"https://docs.apostra.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting#webpage\",\"url\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting\",\"name\":\"Get reporting\",\"description\":\"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.\",\"dateModified\":\"2026-11-07T03:53:37.157Z\",\"isPartOf\":{\"@id\":\"https://docs.apostra.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Buyer API reference\",\"item\":\"https://docs.apostra.com/v2/buyer-api-reference\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reporting\",\"item\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-event-summary\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get reporting\",\"item\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting#apireference\",\"headline\":\"Get reporting\",\"name\":\"Get reporting\",\"description\":\"Get reporting metrics across all advertisers and campaigns. The response is hierarchical for view=summary, flat leaf-by-day rows for view=timeseries, or a signed CSV download descriptor when download=true.\",\"url\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting\",\"mainEntityOfPage\":{\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/reporting/get-reporting#webpage\"},\"dateModified\":\"2026-11-07T03:53:37.157Z\",\"publisher\":{\"@id\":\"https://docs.apostra.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.apostra.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Apostra\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Apostra","nav":{"global":null,"tabs":[{"tab":"Manage ads","icon":"compass","pages":[{"title":"Manage ads","href":"/v3/manage-ads"}]},{"tab":"Build software","icon":"code","versions":[{"version":"v2","tag":"Compatibility","groups":[{"group":"Start building","icon":"rocket","pages":[{"title":"Build with Apostra","icon":"code","href":"/v2/build-with-apostra"},{"title":"Quick Start","icon":"rocket","href":"/v2/quickstart"},{"title":"Authentication","icon":"key","href":"/v2/authentication"},{"title":"Account Access \u0026 Signup","icon":"user-plus","href":"/v2/setup/account-access"},{"title":"Built for Agents","icon":"robot","href":"/v2/setup/built-for-agents"},{"title":"Manage buyer agents","icon":"robot","href":"/v2/setup/buyer-agent-credentials"},{"title":"Listing, Playbook, and AI Business Rules","sidebarTitle":"Seller pages","icon":"layer-group","href":"/v2/setup/seller-pages"},{"title":"Create a white-label ChatGPT app","sidebarTitle":"ChatGPT app setup","icon":"message-bot","href":"/v2/setup/chatgpt-app-setup"},{"title":"AI Agent Skills","icon":"robot","href":"/v2/skill"},{"title":"Single Sign-On (SSO)","icon":"lock","href":"/v2/setup/sso-setup"},{"title":"Move an assistant integration from Murph to Apostra","icon":"arrows-left-right","href":"/v2/setup/murph-to-apostra"},{"title":"Migrating from v1 to v2","icon":"arrow-up-right-from-square","href":"/v2/setup/migration-guide"}]},{"group":"Core Concepts","icon":"lightbulb","pages":[{"title":"Philosophy","icon":"compass","href":"/v2/concepts/philosophy"},{"title":"The storefront agent","sidebarTitle":"Storefront agent","icon":"user-tie","href":"/v2/concepts/storefront-agent"},{"title":"Agents","icon":"robot","href":"/v2/concepts/agents"},{"title":"Merchandising","sidebarTitle":"Merchandising","icon":"store","href":"/v2/concepts/merchandising"},{"title":"AI Business Rules","sidebarTitle":"AI Business Rules","icon":"scale-balanced","href":"/v2/concepts/ai-business-rules"},{"title":"Object Model","icon":"sitemap","href":"/v2/concepts/object-model"},{"title":"Asks","icon":"hand","href":"/v2/concepts/asks"},{"title":"Approving agent requests","icon":"shield-check","href":"/v2/concepts/web-approvals"},{"title":"Developer Glossary","sidebarTitle":"Glossary","icon":"book-open","href":"/v2/developer-reference/glossary"},{"title":"Which domain is which","icon":"signs-post","href":"/v2/concepts/domains"},{"title":"Inbound email addresses","icon":"inbox","href":"/v2/concepts/inbound-email-addresses"},{"title":"Identity documents","icon":"id-card","href":"/v2/concepts/identity-documents"},{"title":"Platform Accounts and Advertiser Mapping","icon":"sitemap","href":"/v2/concepts/ad-platform-accounts"},{"title":"Media buy lifecycle","icon":"diagram-project","href":"/v2/concepts/media-buy-lifecycle"},{"title":"Campaign readiness","icon":"circle-check","href":"/v2/concepts/campaign-readiness"},{"title":"Goal-seeking campaigns","icon":"bullseye","href":"/v2/concepts/goal-seeking-campaigns"},{"title":"The seller-history co-op","icon":"people-group","href":"/v2/concepts/seller-history-co-op"},{"title":"Cross-currency buying","sidebarTitle":"Cross-currency buying","icon":"money-bill-transfer","href":"/v2/concepts/cross-currency"},{"title":"How Apostra uses AdCP (buy side)","icon":"cart-shopping","href":"/v2/concepts/adcp-on-the-buy-side"},{"title":"AdCP versioning \u0026 negotiation","icon":"code-branch","href":"/v2/concepts/adcp-versioning"},{"title":"How AdCP thinks about video","icon":"film","href":"/v2/concepts/video-creatives"}]},{"group":"Buyer operations","icon":"user","pages":[{"group":"Advertisers","icon":"building","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Advertiser tasks","icon":"list-check","href":"/v2/buyer/advertisers/tasks/index"},{"title":"Create advertiser","icon":"plus","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/create-advertiser"},{"title":"Delete advertiser","icon":"trash","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/delete-advertiser"},{"title":"Execute catalog activation","icon":"play","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/execute-catalog-activation"},{"title":"Get advertiser","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/get-advertiser"},{"title":"List advertisers","icon":"list","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-advertisers"},{"title":"Open Advertisers","icon":"building","href":"/v2/buyer/advertisers/tasks/open-advertisers-page"},{"title":"List organization advertisers","icon":"building-user","href":"/v2/buyer/advertisers/tasks/list-organization-advertisers"},{"title":"Manage organization advertiser grants","icon":"user-shield","href":"/v2/buyer/advertisers/tasks/manage-organization-advertiser-grants"},{"title":"Read client access for an advertiser","icon":"user-group","href":"/v2/buyer/advertisers/tasks/read-advertiser-client-access"},{"title":"Invite and manage a client's access","icon":"user-plus","href":"/v2/buyer/advertisers/tasks/save-advertiser-client-access"},{"title":"List audiences","icon":"users","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-audiences"},{"title":"List available accounts","icon":"link","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-available-accounts"},{"title":"Manage provider accounts on an advertiser","icon":"plug","href":"/v2/buyer/advertisers/tasks/manage-provider-accounts"},{"title":"List catalogs","icon":"list-ul","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-catalogs"},{"title":"Preview catalog activation","icon":"eye","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/preview-catalog-activation"},{"title":"Refresh catalog","icon":"arrow-rotate-right","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/refresh-catalog"},{"title":"Revalidate data delivery credential","icon":"rotate","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/revalidate-data-delivery-credential"},{"title":"Save catalog transform","icon":"shuffle","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/save-catalog-transform"},{"title":"Sync audiences","icon":"users-gear","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/sync-audiences"},{"title":"Sync catalogs","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/sync-catalogs"},{"title":"Update account reporting bucket","icon":"bucket","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/update-account-reporting-bucket"},{"title":"Update advertiser","icon":"pen","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/update-advertiser"}]}]},{"group":"Campaigns","icon":"bullhorn","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Campaign tasks","icon":"list-check","href":"/v2/buyer/campaigns/tasks/index"},{"title":"Auto-select products","icon":"wand-magic-sparkles","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/auto-select-products"},{"title":"Create campaign","icon":"plus","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/create-campaign"},{"title":"Delete campaign","icon":"trash","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/delete-campaign"},{"title":"Execute campaign","icon":"rocket","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/execute-campaign"},{"title":"Get campaign products","icon":"boxes-stacked","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-products"},{"title":"Get media buy packages","icon":"boxes-stacked","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-media-buy-packages"},{"title":"List targeting dimensions","icon":"list","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-targeting-dimensions"},{"title":"List targeting dimension values","icon":"table-list","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-targeting-dimension-values"},{"title":"Resolve targeting dimension text","icon":"wand-magic-sparkles","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/resolve-targeting-dimension"},{"title":"List geo metros","icon":"map","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-geo-metros"},{"title":"Get campaign","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign"},{"title":"Get campaign delivery","api":"GET /api/v2/buyer/campaigns/{campaignId}/delivery","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-delivery"},{"title":"Get campaign workspace","icon":"table-columns","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-workspace"},{"title":"Get tracked-campaign subscription","api":"GET /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-directed-campaign-subscription"},{"title":"Get media buy status","icon":"signal-stream","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-media-buy-status"},{"title":"List campaigns","icon":"list","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-campaigns"},{"title":"Open Campaigns","icon":"bullhorn","href":"/v2/buyer/campaigns/tasks/open-campaigns-page"},{"title":"Open Review \u0026 go live","icon":"clipboard-check","href":"/v2/buyer/campaigns/tasks/open-campaign-receipt"},{"title":"List campaign suggestion sets","icon":"list-check","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-campaign-suggestion-sets"},{"title":"Get campaign suggestion set","icon":"magnifying-glass-dollar","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-suggestion-set"},{"title":"Approve campaign suggestion set","icon":"circle-check","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/approve-campaign-suggestion-set"},{"title":"Reject campaign suggestion set","icon":"circle-xmark","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/reject-campaign-suggestion-set"},{"title":"Pause campaign","icon":"pause","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/pause-campaign"},{"title":"Reactivate campaign","icon":"play","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/reactivate-campaign"},{"title":"Pause media buy","icon":"circle-pause","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/pause-media-buy"},{"title":"Reactivate media buy","icon":"circle-play","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/reactivate-media-buy"},{"title":"Subscribe tracked campaigns","api":"POST /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscribe","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/subscribe-directed-campaigns"},{"title":"Unsubscribe tracked campaigns","api":"DELETE /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/unsubscribe-directed-campaigns"},{"title":"Update campaign","icon":"pen","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/update-campaign"},{"title":"Update media buy","icon":"pen-to-square","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/update-media-buy"}]}]},{"group":"Product Discovery","icon":"magnifying-glass","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Product discovery tasks","icon":"list-check","href":"/v2/buyer/discovery/tasks/index"},{"title":"Add products","icon":"plus","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/add-products"},{"title":"Apply proposal","icon":"wand-magic-sparkles","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/apply-proposal"},{"title":"Create media buys from a product query","icon":"cart-shopping","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/create-media-buys"},{"title":"Browse products","icon":"layer-group","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/browse-products"},{"title":"Discover products","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/discover-products"},{"title":"Stream discovery events","icon":"tower-broadcast","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/events"},{"title":"Get products","icon":"list","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/get-products"},{"title":"Remove products","icon":"trash","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/remove-products"}]}]},{"group":"Webhooks","icon":"webhook","pages":[{"title":"Webhooks","icon":"webhook","tag":"Deprecated","href":"/v2/buyer/webhooks/index"}]},{"group":"Creatives","icon":"image","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Creative tasks","icon":"list-check","href":"/v2/buyer/creatives/tasks/index"},{"title":"Start creative session","icon":"sparkles","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/start-creative-session"},{"title":"Manage advertiser creative collections","icon":"folder-tree","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/manage-advertiser-creative-collections"},{"title":"Adopt a managed audio source","icon":"waveform","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/adopt-managed-audio-source"},{"title":"Create advertiser creative master","icon":"layer-group","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/create-advertiser-creative-manifest"},{"title":"Create creative manifest","icon":"plus","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/create-creative-manifest"},{"title":"Detach creative from campaign","icon":"trash","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/delete-creative-manifest"},{"title":"Get creative manifest","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/get-creative-manifest"},{"title":"List creative manifests","icon":"list","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/list-creative-manifests"},{"title":"Update creative manifest","icon":"pen","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/update-creative-manifest"}]}]},{"group":"Audiences \u0026 Inventory","icon":"users","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Property list tasks","icon":"list-check","href":"/v2/buyer/property-lists/tasks/index"},{"title":"Check property list","icon":"circle-check","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/check-property-list"},{"title":"Create property list","icon":"plus","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/create-property-list"},{"title":"Delete property list","icon":"trash","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/delete-property-list"},{"title":"Get check report","icon":"file-lines","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/get-check-report"},{"title":"Get property list","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/get-property-list"},{"title":"List property lists","icon":"list","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/list-property-lists"},{"title":"Update property list","icon":"pen","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/update-property-list"}]}]},{"group":"Measurement \u0026 Conversions","icon":"ruler","pages":[{"group":"Measurement Tasks","icon":"list-check","pages":[{"title":"Measurement tasks","icon":"list-check","href":"/v2/buyer/measurement/tasks/index"},{"title":"Create measurement source","icon":"plus","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/create-measurement-source"},{"title":"Create test cohort","icon":"plus","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/create-test-cohort"},{"title":"Delete test cohort","icon":"trash","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/delete-test-cohort"},{"title":"Get measurement config","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-measurement-config"},{"title":"Get measurement freshness","icon":"clock","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-measurement-freshness"},{"title":"Get measurement source","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-measurement-source"},{"title":"Get test cohort","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-test-cohort"},{"title":"List measurement records","icon":"list","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/list-measurement-records"},{"title":"List measurement sources","icon":"list","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/list-measurement-sources"},{"title":"List test cohorts","icon":"list","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/list-test-cohorts"},{"title":"Sync measurement data","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/sync-measurement-data"},{"title":"Update measurement config","icon":"pen","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/update-measurement-config"},{"title":"Update measurement source","icon":"pen","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/update-measurement-source"},{"title":"Update test cohort","icon":"pen","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/update-test-cohort"},{"title":"Upload context records","icon":"cloud","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/upload-context-records"},{"title":"Upload measurement records","icon":"upload","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/upload-measurement-records"}]},{"group":"Conversions","icon":"bullseye","pages":[{"title":"Conversion API","icon":"chart-line-up","href":"/v2/integrations/conversion-api"},{"group":"Event Source Tasks","icon":"list-check","pages":[{"title":"Event source tasks","icon":"list-check","href":"/v2/buyer/event-sources/tasks/index"},{"title":"List event sources","icon":"list","tag":"Deprecated","href":"/v2/buyer/event-sources/tasks/list-event-sources"},{"title":"Log event","icon":"circle-dot","href":"/v2/buyer/event-sources/tasks/log-event"},{"title":"Sync event sources","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/event-sources/tasks/sync-event-sources"}]}]}]},{"group":"Reporting \u0026 Activity","icon":"chart-bar","pages":[{"group":"Reporting Tasks","icon":"list-check","pages":[{"title":"Reporting tasks","icon":"list-check","href":"/v2/buyer/reporting/tasks/index"},{"title":"Get event summary","icon":"clock","tag":"Deprecated","href":"/v2/buyer/reporting/tasks/get-event-summary"},{"title":"Get reporting metrics","icon":"chart-line","tag":"Deprecated","href":"/v2/buyer/reporting/tasks/get-reporting-metrics"},{"title":"Get campaign seller scorecard","icon":"ranking-star","tag":"Deprecated","href":"/v2/buyer/reporting/tasks/get-campaign-seller-scorecard"}]}]},{"group":"Planning \u0026 Governance","icon":"clipboard-check","pages":[{"group":"Syndication","icon":"share-nodes","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Syndication tasks","icon":"list-check","href":"/v2/buyer/syndication/tasks/index"},{"title":"Get syndication status","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/syndication/tasks/get-syndication-status"},{"title":"Toggle syndication","icon":"toggle-on","tag":"Deprecated","href":"/v2/buyer/syndication/tasks/syndicate"}]}]},{"group":"Update Proposals","icon":"code-pull-request","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Update proposal tasks","icon":"list-check","href":"/v2/buyer/update-proposals/tasks/index"},{"title":"Cancel update proposal","icon":"ban","tag":"Deprecated","href":"/v2/buyer/update-proposals/tasks/cancel-update-proposal"},{"title":"Get update proposal","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/update-proposals/tasks/get-update-proposal"}]}]},{"group":"Moderation","icon":"shield-halved","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Moderation tasks","icon":"list-check","href":"/v2/buyer/moderation/tasks/index"},{"title":"Check moderation","icon":"shield-check","href":"/v2/buyer/moderation/tasks/check-moderation"}]}]}]},{"group":"Connections","icon":"store","pages":[{"group":"Storefronts (Buyer)","icon":"store","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Storefront tasks","icon":"list-check","href":"/v2/buyer/storefronts/tasks/index"},{"title":"Get storefront","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/get-storefront"},{"title":"Get storefront capabilities","icon":"signal","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/get-storefront-capabilities"},{"title":"Update selection override","icon":"toggle-on","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/update-selection-override"},{"title":"Update advertiser Seller preference","icon":"sliders","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/update-advertiser-activation-preference"},{"title":"Update billing policy","icon":"file-invoice-dollar","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/update-billing-policy"},{"title":"Approve direct billing","icon":"file-signature","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/accept-direct-billing"},{"title":"Set Enhanced Reporting","icon":"chart-line","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/set-enhanced-reporting"},{"title":"Connect an AdCP source","api":"POST /api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection","icon":"link","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/connect-adcp-storefront"},{"title":"Open Media Partners","icon":"plug","href":"/v2/buyer/storefronts/tasks/open-connections-page"},{"title":"List account presences","api":"GET /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/presences","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/list-account-presences"},{"title":"List credentials","icon":"key","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/list-credentials"},{"title":"Refresh provider accounts","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/refresh-provider-accounts"},{"title":"List storefronts","icon":"list","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/list-storefronts"},{"title":"Register source credentials","icon":"user-lock","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/register-source-credentials"}]}]}]},{"group":"Account \u0026 Billing","icon":"gear","pages":[{"group":"Account","icon":"id-card","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Account tasks","icon":"list-check","href":"/v2/buyer/account/tasks/index"},{"title":"Get current account","icon":"circle-user","href":"/v2/buyer/account/tasks/get-current-account"},{"title":"Get membership settings","icon":"users","href":"/v2/buyer/account/tasks/get-membership"},{"title":"Get notification preferences","icon":"bell","href":"/v2/buyer/account/tasks/get-notification-preferences"},{"title":"List accounts","icon":"list","href":"/v2/buyer/account/tasks/list-customer-accounts"},{"title":"Preview account archive","icon":"magnifying-glass","href":"/v2/buyer/account/tasks/preview-account-archive"},{"title":"Archive account","icon":"box-archive","href":"/v2/buyer/account/tasks/archive-account"},{"title":"Restore account","icon":"rotate-left","href":"/v2/buyer/account/tasks/unarchive-account"},{"title":"Update account domain","icon":"globe","href":"/v2/buyer/account/tasks/update-customer-domain"},{"title":"Verify operator domain","icon":"circle-check","tag":"Deprecated","href":"/v2/buyer/account/tasks/verify-operator-domain"},{"title":"Your organization's domain","icon":"globe","href":"/v2/buyer/account/tasks/organization-domains"},{"title":"Update membership settings","icon":"user-gear","href":"/v2/buyer/account/tasks/update-membership"},{"title":"Update notification preferences","icon":"bell-concierge","href":"/v2/buyer/account/tasks/update-notification-preferences"}]}]},{"group":"Billing","icon":"file-invoice-dollar","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Billing tasks","icon":"list-check","href":"/v2/buyer/billing/tasks/index"},{"title":"Get billing info","icon":"address-card","href":"/v2/buyer/billing/tasks/get-billing-info"},{"title":"Update billing info","icon":"pen-to-square","href":"/v2/buyer/billing/tasks/update-billing-info"},{"title":"Get billing account","icon":"file-invoice-dollar","href":"/v2/buyer/billing/tasks/get-billing-account"},{"title":"Get inherited billing stub","icon":"building-shield","href":"/v2/buyer/billing/tasks/get-inherited-billing-stub"},{"title":"Get invoice activity","icon":"receipt","href":"/v2/buyer/billing/tasks/get-invoice-activity"}]}]}]}]},{"group":"Seller operations","icon":"store","pages":[{"group":"Getting Started","icon":"rocket","pages":[{"group":"Core Tasks","icon":"list-check","pages":[{"title":"Storefront tasks","icon":"list-check","href":"/v2/storefront/tasks/index"},{"title":"Confirm Media Company identity","icon":"id-card","href":"/v2/storefront/tasks/confirm-media-company-identity"},{"title":"Discover agents","icon":"magnifying-glass","href":"/v2/storefront/tasks/discover-agents"},{"title":"Get readiness","icon":"circle-check","href":"/v2/storefront/tasks/get-readiness"},{"title":"Resolve brand","icon":"building","href":"/v2/storefront/tasks/resolve-brand"}]}]},{"group":"Operating Your Storefront","icon":"wand-magic-sparkles","pages":[{"group":"Playbook API","icon":"list-ol","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Operating instructions tasks","icon":"list-check","href":"/v2/storefront/operating-instructions/tasks/index"},{"title":"Activate version","icon":"toggle-on","href":"/v2/storefront/operating-instructions/tasks/activate-version"},{"title":"Create version","icon":"plus","href":"/v2/storefront/operating-instructions/tasks/create-version"},{"title":"Get active version","icon":"circle-check","href":"/v2/storefront/operating-instructions/tasks/get-active"}]}]}]},{"group":"Inventory Sources","icon":"server","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Inventory source tasks","icon":"list-check","href":"/v2/storefront/inventory-sources/tasks/index"},{"title":"Create inventory source","icon":"plus","href":"/v2/storefront/inventory-sources/tasks/create-inventory-source"},{"title":"Submit certification test setup (retired)","icon":"flask","href":"/v2/storefront/inventory-sources/tasks/submit-certification-fixture-setup"},{"title":"Create a modular source from a feed","icon":"table","href":"/v2/storefront/inventory-sources/tasks/create-feed-modular-source"},{"title":"Delete inventory source","icon":"trash","href":"/v2/storefront/inventory-sources/tasks/delete-inventory-source"},{"title":"Get inventory source","icon":"magnifying-glass","href":"/v2/storefront/inventory-sources/tasks/get-inventory-source"},{"title":"Get modular readiness","icon":"diagram-project","href":"/v2/storefront/inventory-sources/tasks/get-modular-readiness"},{"title":"List inventory sources","icon":"list","href":"/v2/storefront/inventory-sources/tasks/list-inventory-sources"},{"title":"Author property and tag mappings","icon":"diagram-project","href":"/v2/storefront/inventory-sources/tasks/import-mapping"},{"title":"Set FreeWheel execution currency","icon":"coins","href":"/v2/storefront/inventory-sources/tasks/set-execution-currency"},{"title":"Update inventory source","icon":"pen","href":"/v2/storefront/inventory-sources/tasks/update-inventory-source"},{"title":"Update module config","icon":"sliders","href":"/v2/storefront/inventory-sources/tasks/update-modular-module-config"}]}]},{"group":"Demand \u0026 Signals","icon":"signal","pages":[{"group":"Signals","icon":"satellite-dish","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Signal tasks","icon":"list-check","href":"/v2/storefront/signals/tasks/index"},{"title":"Create signal","icon":"plus","href":"/v2/storefront/signals/tasks/create-signal"},{"title":"Delete signal","icon":"trash","href":"/v2/storefront/signals/tasks/delete-signal"},{"title":"Get signal","icon":"magnifying-glass","href":"/v2/storefront/signals/tasks/get-signal"},{"title":"List signals","icon":"list","href":"/v2/storefront/signals/tasks/list-signals"},{"title":"Update signal","icon":"pen","href":"/v2/storefront/signals/tasks/update-signal"}]}]}]},{"group":"Proposals \u0026 Agents","icon":"handshake","pages":[{"group":"Agents","icon":"robot","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Agent tasks","icon":"list-check","href":"/v2/storefront/agents/tasks/index"},{"title":"Create an Agent","href":"/v2/storefront/agents/tasks/create-agent"},{"title":"List agents","icon":"list","href":"/v2/storefront/agents/tasks/list-agents"},{"title":"Run creative conformance","icon":"list-check","href":"/v2/storefront/agents/tasks/run-creative-conformance"}]}]}]},{"group":"Buyer Routing","icon":"route","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Buyer routing tasks","icon":"list-check","href":"/v2/storefront/buyer-routing/tasks/index"},{"title":"Ensure GAM advertiser","icon":"plus","href":"/v2/storefront/buyer-routing/tasks/ensure-gam-advertiser"},{"title":"List buyer mappings","icon":"table-list","href":"/v2/storefront/buyer-routing/tasks/list-buyer-mappings"},{"title":"List GAM advertisers","icon":"list","href":"/v2/storefront/buyer-routing/tasks/list-gam-advertisers"},{"title":"Set default advertiser","icon":"star","href":"/v2/storefront/buyer-routing/tasks/set-default-advertiser"}]}]},{"group":"Analytics \u0026 Activity","icon":"chart-line","pages":[{"group":"Intelligence Runs","icon":"brain","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Get seller decision record","icon":"clipboard-check","href":"/v2/storefront/intelligence-runs/tasks/get-seller-decision-record"}]}]},{"group":"Activity \u0026 Reporting","icon":"chart-simple","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Activity \u0026 reporting tasks","icon":"list-check","href":"/v2/storefront/activity/tasks/index"},{"title":"Check moderation","icon":"shield-check","href":"/v2/storefront/activity/tasks/check-moderation"},{"title":"Get reporting metrics","icon":"chart-column","href":"/v2/storefront/activity/tasks/get-reporting-metrics"},{"title":"List activity","icon":"clock-rotate-left","href":"/v2/storefront/activity/tasks/list-activity"}]}]}]},{"group":"Billing","icon":"file-invoice-dollar","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Billing tasks","icon":"list-check","href":"/v2/storefront/billing/tasks/index"},{"title":"Get billing config","icon":"gear","href":"/v2/storefront/billing/tasks/get-billing-config"},{"title":"Get payout activity","icon":"money-bill-transfer","href":"/v2/storefront/billing/tasks/get-payout-activity"},{"title":"List billing accounts","icon":"sitemap","href":"/v2/storefront/billing/tasks/list-billing-accounts"},{"title":"List payout payees","icon":"list","href":"/v2/storefront/billing/tasks/list-payout-payees"},{"title":"Set payout details","icon":"building-columns","href":"/v2/storefront/billing/tasks/set-payout-details"},{"title":"Set payout payee","icon":"building","href":"/v2/storefront/billing/tasks/set-payout-payee"},{"title":"Update billing config","icon":"sliders","href":"/v2/storefront/billing/tasks/update-billing-config"}]}]},{"group":"Account","icon":"id-card","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Account tasks","icon":"list-check","href":"/v2/storefront/account/tasks/index"},{"title":"Get current account","icon":"id-card","href":"/v2/storefront/account/tasks/get-current-account"},{"title":"Get membership","icon":"users","href":"/v2/storefront/account/tasks/get-membership"},{"title":"Get notification preferences","icon":"bell","href":"/v2/storefront/account/tasks/get-notification-preferences"},{"title":"List accounts","icon":"list","href":"/v2/storefront/account/tasks/list-customer-accounts"},{"title":"Preview account archive","icon":"magnifying-glass","href":"/v2/storefront/account/tasks/preview-account-archive"},{"title":"Archive account","icon":"box-archive","href":"/v2/storefront/account/tasks/archive-account"},{"title":"Restore account","icon":"rotate-left","href":"/v2/storefront/account/tasks/unarchive-account"},{"title":"Update account domain","icon":"globe","href":"/v2/storefront/account/tasks/update-customer-domain"},{"title":"Update membership","icon":"user-gear","href":"/v2/storefront/account/tasks/update-membership"},{"title":"Update notification preferences","icon":"bell-on","href":"/v2/storefront/account/tasks/update-notification-preferences"}]}]}]},{"group":"Cross-Cutting Reference","icon":"book-bookmark","pages":[{"title":"Errors","icon":"circle-exclamation","href":"/v2/reference/errors"},{"title":"Rate Limits","icon":"gauge-high","href":"/v2/reference/rate-limits"},{"title":"Agent fax lines","icon":"fax","href":"/v2/reference/agent-fax"},{"title":"Agent SMS lines","icon":"message","href":"/v2/reference/agent-sms"},{"title":"Agent RCS messages","icon":"message","href":"/v2/reference/agent-rcs"},{"title":"Agent voice lines","icon":"phone","href":"/v2/reference/agent-voice"},{"title":"Public callback URL requirements","icon":"webhook","href":"/v2/reference/public-callback-url-requirements"},{"title":"MCP App HTML","icon":"window","href":"/v2/reference/mcp-apps"},{"title":"Create a white-label ChatGPT app","sidebarTitle":"White-label ChatGPT app","icon":"comments","href":"/v2/reference/white-label-chatgpt-app"},{"title":"Connect Apostra to Microsoft Copilot Studio","sidebarTitle":"Copilot Studio","icon":"microsoft","href":"/v2/reference/connect-copilot-studio"},{"title":"Connect Apostra to Gemini Enterprise","sidebarTitle":"Gemini Enterprise","icon":"sparkles","href":"/v2/reference/connect-gemini-enterprise"},{"title":"Pagination","icon":"list-ol","href":"/v2/reference/pagination"},{"title":"Tasks","icon":"list-check","href":"/v2/guides/tasks"},{"title":"Diagnose Stuck Media Buys","sidebarTitle":"Diagnose stuck media buys","icon":"stethoscope","href":"/v2/developer-reference/diagnosing-stuck-media-buys"}]},{"group":"Buyer API reference","pages":[{"title":"Buyer API Reference","icon":"code","tag":"Deprecated","href":"/v2/buyer-api-reference"},{"group":"Signup","pages":[{"title":"Request buyer access","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /auth/buyer-signup-intake","href":"/v2/buyer-api-reference/signup/request-buyer-access"}]},{"group":"Advertisers","pages":[{"title":"List advertisers","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers","href":"/v2/buyer-api-reference/advertisers/list-advertisers"},{"title":"Create advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers","href":"/v2/buyer-api-reference/advertisers/create-advertiser"},{"title":"List organization advertisers","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /organization/advertisers","href":"/v2/buyer-api-reference/advertisers/list-organization-advertisers"},{"title":"Create an organization advertiser lifecycle","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertisers","href":"/v2/buyer-api-reference/advertisers/create-an-organization-advertiser-lifecycle"},{"title":"Claim an exact-recipient advertiser invitation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertiser-invitations/claim","href":"/v2/buyer-api-reference/advertisers/claim-an-exact-recipient-advertiser-invitation"},{"title":"List organization advertiser grants","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /organization/advertiser-grants","href":"/v2/buyer-api-reference/advertisers/list-organization-advertiser-grants"},{"title":"Invite an organization to advertiser access","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants","href":"/v2/buyer-api-reference/advertisers/invite-an-organization-to-advertiser-access"},{"title":"Get an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /organization/advertiser-grants/{grantRef}","href":"/v2/buyer-api-reference/advertisers/get-an-organization-advertiser-grant"},{"title":"Accept an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants/{grantRef}/accept","href":"/v2/buyer-api-reference/advertisers/accept-an-organization-advertiser-grant"},{"title":"Reject an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants/{grantRef}/reject","href":"/v2/buyer-api-reference/advertisers/reject-an-organization-advertiser-grant"},{"title":"Revoke an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants/{grantRef}/revoke","href":"/v2/buyer-api-reference/advertisers/revoke-an-organization-advertiser-grant"},{"title":"List all advertisers home","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /all-advertisers-home","href":"/v2/buyer-api-reference/advertisers/list-all-advertisers-home"},{"title":"Get advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}","href":"/v2/buyer-api-reference/advertisers/get-advertiser"},{"title":"Update advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}","href":"/v2/buyer-api-reference/advertisers/update-advertiser"},{"title":"Delete advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}","href":"/v2/buyer-api-reference/advertisers/delete-advertiser"},{"title":"Restore advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/restore","href":"/v2/buyer-api-reference/advertisers/restore-advertiser"},{"title":"Get advertiser tracking configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/tracking-config","href":"/v2/buyer-api-reference/advertisers/get-advertiser-tracking-configuration"},{"title":"Update advertiser tracking configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/tracking-config","href":"/v2/buyer-api-reference/advertisers/update-advertiser-tracking-configuration"},{"title":"Revalidate data delivery credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/data-delivery-credentials/{name}/validate","href":"/v2/buyer-api-reference/advertisers/revalidate-data-delivery-credential"},{"title":"List advertiser accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/accounts","href":"/v2/buyer-api-reference/advertisers/list-advertiser-accounts"},{"title":"Assign account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/accounts","href":"/v2/buyer-api-reference/advertisers/assign-account"},{"title":"Get advertiser account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/accounts/{accountId}","href":"/v2/buyer-api-reference/advertisers/get-advertiser-account"},{"title":"List available accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/accounts/available","href":"/v2/buyer-api-reference/advertisers/list-available-accounts"},{"title":"Unmap a partner account from an advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/accounts/{linkId}","href":"/v2/buyer-api-reference/advertisers/unmap-a-partner-account-from-an-advertiser"},{"title":"Update account reporting bucket","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/accounts/{linkId}/reporting-bucket","href":"/v2/buyer-api-reference/advertisers/update-account-reporting-bucket"},{"title":"List catalogs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/catalogs","href":"/v2/buyer-api-reference/advertisers/list-catalogs"},{"title":"Sync catalogs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/sync","href":"/v2/buyer-api-reference/advertisers/sync-catalogs"},{"title":"Save catalog transform","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/catalogs/{catalogId}/transform","href":"/v2/buyer-api-reference/advertisers/save-catalog-transform"},{"title":"Preview catalog activation plan","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/{catalogId}/activation-plan/preview","href":"/v2/buyer-api-reference/advertisers/preview-catalog-activation-plan"},{"title":"Refresh catalog","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/{catalogId}/refresh","href":"/v2/buyer-api-reference/advertisers/refresh-catalog"},{"title":"Execute catalog activation plan","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/{catalogId}/activation-plan/execute","href":"/v2/buyer-api-reference/advertisers/execute-catalog-activation-plan"},{"title":"Sync audiences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{accountId}/audiences/sync","href":"/v2/buyer-api-reference/advertisers/sync-audiences"},{"title":"List audiences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{accountId}/audiences","href":"/v2/buyer-api-reference/advertisers/list-audiences"}]},{"group":"Brands","pages":[{"title":"Resolve a brand profile","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /brands/resolve","href":"/v2/buyer-api-reference/brands/resolve-a-brand-profile"}]},{"group":"Buyer Storefront Accounts","pages":[{"title":"Declare sandbox buyer account linkages on a MANAGED storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-accounts/sync","href":"/v2/buyer-api-reference/buyer-storefront-accounts/declare-sandbox-buyer-account-linkages-on-a-managed-storefront"},{"title":"List the caller's storefront-account grants","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-accounts","href":"/v2/buyer-api-reference/buyer-storefront-accounts/list-the-callers-storefront-account-grants"}]},{"group":"Buyer Agent Principals","pages":[{"title":"List the organization's Interchange principals","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals","href":"/v2/buyer-api-reference/buyer-agent-principals/list-the-organizations-interchange-principals"},{"title":"Register an existing credential as a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals","href":"/v2/buyer-api-reference/buyer-agent-principals/register-an-existing-credential-as-a-buyer-agent"},{"title":"Replace exact advertiser access for a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /buyer-agent-principals/{principalId}/access","href":"/v2/buyer-api-reference/buyer-agent-principals/replace-exact-advertiser-access-for-a-buyer-agent"},{"title":"List a buyer agent’s active channel bindings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals/{principalId}/channel-bindings","href":"/v2/buyer-api-reference/buyer-agent-principals/list-a-buyer-agent’s-active-channel-bindings"},{"title":"Bind a Slack channel to a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/channel-bindings","href":"/v2/buyer-api-reference/buyer-agent-principals/bind-a-slack-channel-to-a-buyer-agent"},{"title":"Revoke a buyer agent channel binding","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /buyer-agent-principals/{principalId}/channel-bindings/{bindingId}","href":"/v2/buyer-api-reference/buyer-agent-principals/revoke-a-buyer-agent-channel-binding"},{"title":"List named seller-account connections for a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals/{principalId}/administration-contexts","href":"/v2/buyer-api-reference/buyer-agent-principals/list-named-seller-account-connections-for-a-buyer-agent"},{"title":"Inspect buyer-agent configuration and readiness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals/{principalId}/administration","href":"/v2/buyer-api-reference/buyer-agent-principals/inspect-buyer-agent-configuration-and-readiness"},{"title":"Apply a confirmed buyer-agent configuration control","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/controls","href":"/v2/buyer-api-reference/buyer-agent-principals/apply-a-confirmed-buyer-agent-configuration-control"},{"title":"Test one buyer-agent webhook endpoint","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/notification-subscriptions/{subscriberId}/test","href":"/v2/buyer-api-reference/buyer-agent-principals/test-one-buyer-agent-webhook-endpoint"},{"title":"Pause or retire a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/lifecycle-controls","href":"/v2/buyer-api-reference/buyer-agent-principals/pause-or-retire-a-buyer-agent"},{"title":"Provision a hosted buyer-agent runtime-token binding","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/runtime-token/binding","href":"/v2/buyer-api-reference/buyer-agent-principals/provision-a-hosted-buyer-agent-runtime-token-binding"},{"title":"Mint a short-lived hosted buyer-agent runtime token","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/runtime-token","href":"/v2/buyer-api-reference/buyer-agent-principals/mint-a-short-lived-hosted-buyer-agent-runtime-token"},{"title":"Refresh a hosted buyer-agent runtime token","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/runtime-token/refresh","href":"/v2/buyer-api-reference/buyer-agent-principals/refresh-a-hosted-buyer-agent-runtime-token"},{"title":"Issue an identity-only buyer-agent credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/issue","href":"/v2/buyer-api-reference/buyer-agent-principals/issue-an-identity-only-buyer-agent-credential"},{"title":"Rotate a buyer-agent API-key credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/rotate","href":"/v2/buyer-api-reference/buyer-agent-principals/rotate-a-buyer-agent-api-key-credential"},{"title":"Revoke a buyer-agent credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/revoke","href":"/v2/buyer-api-reference/buyer-agent-principals/revoke-a-buyer-agent-credential"}]},{"group":"Creatives","pages":[{"title":"Get creative dashboard URL","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /creative-dashboard-url","href":"/v2/buyer-api-reference/creatives/get-creative-dashboard-url"},{"title":"Adopt a managed video source into a creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/adopt-managed-video-source","href":"/v2/buyer-api-reference/creatives/adopt-a-managed-video-source-into-a-creative"},{"title":"Adopt a managed audio source into a creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/adopt-managed-audio-source","href":"/v2/buyer-api-reference/creatives/adopt-a-managed-audio-source-into-a-creative"},{"title":"Create creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/create","href":"/v2/buyer-api-reference/creatives/create-creative-manifest"},{"title":"List creative templates","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creatives/templates","href":"/v2/buyer-api-reference/creatives/list-creative-templates"},{"title":"List creative manifests","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creativeManifest","href":"/v2/buyer-api-reference/creatives/list-creative-manifests"},{"title":"List creatives","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creatives","href":"/v2/buyer-api-reference/creatives/list-creatives"},{"title":"Bulk update creatives","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/bulk-update","href":"/v2/buyer-api-reference/creatives/bulk-update-creatives"},{"title":"Sync campaign creatives","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/sync","href":"/v2/buyer-api-reference/creatives/sync-campaign-creatives"},{"title":"Create advertiser creative master","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creatives/create","href":"/v2/buyer-api-reference/creatives/create-advertiser-creative-master"},{"title":"List advertiser creative library","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/creatives","href":"/v2/buyer-api-reference/creatives/list-advertiser-creative-library"},{"title":"Promote advertiser creatives into the library shelf","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creatives/save-to-library","href":"/v2/buyer-api-reference/creatives/promote-advertiser-creatives-into-the-library-shelf"},{"title":"Stash brought creatives before an advertiser is chosen","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/stash","href":"/v2/buyer-api-reference/creatives/stash-brought-creatives-before-an-advertiser-is-chosen"},{"title":"Preview a creative tag sheet","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/tag-sheet-preview","href":"/v2/buyer-api-reference/creatives/preview-a-creative-tag-sheet"},{"title":"Open the creative-intent picker for an advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creative-intent","href":"/v2/buyer-api-reference/creatives/open-the-creative-intent-picker-for-an-advertiser"},{"title":"Get creative-confirmation card for a campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-confirmation","href":"/v2/buyer-api-reference/creatives/get-creative-confirmation-card-for-a-campaign"},{"title":"Attach brought creatives to a campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-confirmation","href":"/v2/buyer-api-reference/creatives/attach-brought-creatives-to-a-campaign"},{"title":"Reassign a brought creative to a different placement","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/{creativeId}/placement","href":"/v2/buyer-api-reference/creatives/reassign-a-brought-creative-to-a-different-placement"},{"title":"Batch-reassign brought creatives to placements","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/placements","href":"/v2/buyer-api-reference/creatives/batch-reassign-brought-creatives-to-placements"},{"title":"Assign creative to campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creatives/{creativeId}/campaigns","href":"/v2/buyer-api-reference/creatives/assign-creative-to-campaign"},{"title":"Unassign creative from campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creatives/{creativeId}/campaigns/{campaignId}","href":"/v2/buyer-api-reference/creatives/unassign-creative-from-campaign"},{"title":"Archive creative globally","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/archive-creative-globally"},{"title":"List creative collections","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-collections","href":"/v2/buyer-api-reference/creatives/list-creative-collections"},{"title":"Create creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-collections","href":"/v2/buyer-api-reference/creatives/create-creative-collection"},{"title":"Get creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/get-creative-collection"},{"title":"Update creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/update-creative-collection"},{"title":"Add creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/add-creative-collection-members"},{"title":"Remove creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /campaigns/{campaignId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/remove-creative-collection-members"},{"title":"Attach creative collection to campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-collections/{collectionId}/attach","href":"/v2/buyer-api-reference/creatives/attach-creative-collection-to-campaign"},{"title":"List advertiser creative collections","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/creative-collections","href":"/v2/buyer-api-reference/creatives/list-advertiser-creative-collections"},{"title":"Create advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creative-collections","href":"/v2/buyer-api-reference/creatives/create-advertiser-creative-collection"},{"title":"Get advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/get-advertiser-creative-collection"},{"title":"Update advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/update-advertiser-creative-collection"},{"title":"Archive advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/archive-advertiser-creative-collection"},{"title":"Add advertiser creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/add-advertiser-creative-collection-members"},{"title":"Remove advertiser creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/remove-advertiser-creative-collection-members"},{"title":"Get creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/get-creative-manifest"},{"title":"Update creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/update-creative-manifest"},{"title":"Delete creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /campaigns/{campaignId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/delete-creative-manifest"},{"title":"Preview creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/{creativeId}/preview","href":"/v2/buyer-api-reference/creatives/preview-creative"},{"title":"Duplicate creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/{creativeId}/duplicate","href":"/v2/buyer-api-reference/creatives/duplicate-creative"},{"title":"Start creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-sessions","href":"/v2/buyer-api-reference/creatives/start-creative-session"},{"title":"Get creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-sessions/{sessionId}","href":"/v2/buyer-api-reference/creatives/get-creative-session"},{"title":"Evaluate creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-sessions/{sessionId}/evaluate","href":"/v2/buyer-api-reference/creatives/evaluate-creative-session"},{"title":"Finalize creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-sessions/{sessionId}/finalize","href":"/v2/buyer-api-reference/creatives/finalize-creative-session"},{"title":"Get creative references","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-references","href":"/v2/buyer-api-reference/creatives/get-creative-references"},{"title":"Publish a rendition as VAST","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/video-renditions/{jobUid}/vast-publications","href":"/v2/buyer-api-reference/creatives/publish-a-rendition-as-vast"},{"title":"Revoke a rendition VAST publication","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/rendition-vast-publications/{publicationUid}/revoke","href":"/v2/buyer-api-reference/creatives/revoke-a-rendition-vast-publication"}]},{"group":"Product Discovery","pages":[{"title":"Get products across storefronts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /products/query","href":"/v2/buyer-api-reference/product-discovery/get-products-across-storefronts"},{"title":"Stage or execute products across storefronts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /media-buys/batch","href":"/v2/buyer-api-reference/product-discovery/stage-or-execute-products-across-storefronts"},{"title":"Discover products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /discovery/discover-products","href":"/v2/buyer-api-reference/product-discovery/discover-products"},{"title":"Browse products for discovery session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /discovery/{discoveryId}/discover-products","href":"/v2/buyer-api-reference/product-discovery/browse-products-for-discovery-session"},{"title":"Get product details","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /discovery/{discoveryId}/products/{productId}/details","href":"/v2/buyer-api-reference/product-discovery/get-product-details"},{"title":"Get selected products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/get-selected-products"},{"title":"Add products to selection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/add-products-to-selection"},{"title":"Remove products from selection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/remove-products-from-selection"},{"title":"Apply a proposal","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /discovery/{discoveryId}/apply-proposal","href":"/v2/buyer-api-reference/product-discovery/apply-a-proposal"}]},{"group":"Webhook Subscriptions","pages":[{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /webhook-subscriptions","href":"/v2/buyer-api-reference/webhook-subscriptions/list-webhook-subscriptions"},{"title":"Register a webhook subscription","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /webhook-subscriptions","href":"/v2/buyer-api-reference/webhook-subscriptions/register-a-webhook-subscription"},{"title":"Delete a webhook subscription","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /webhook-subscriptions/{id}","href":"/v2/buyer-api-reference/webhook-subscriptions/delete-a-webhook-subscription"}]},{"group":"Campaigns","pages":[{"title":"List campaigns","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns","href":"/v2/buyer-api-reference/campaigns/list-campaigns"},{"title":"Create campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns","href":"/v2/buyer-api-reference/campaigns/create-campaign"},{"title":"Get campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}","href":"/v2/buyer-api-reference/campaigns/get-campaign"},{"title":"Update campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}","href":"/v2/buyer-api-reference/campaigns/update-campaign"},{"title":"Delete campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /campaigns/{campaignId}","href":"/v2/buyer-api-reference/campaigns/delete-campaign"},{"title":"Get campaign workspace","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/workspace","href":"/v2/buyer-api-reference/campaigns/get-campaign-workspace"},{"title":"Get effective campaign tracking configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/tracking-config","href":"/v2/buyer-api-reference/campaigns/get-effective-campaign-tracking-configuration"},{"title":"Update campaign tracker additions and overrides","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}/tracking-config","href":"/v2/buyer-api-reference/campaigns/update-campaign-tracker-additions-and-overrides"},{"title":"Get campaign delivery","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/delivery","href":"/v2/buyer-api-reference/campaigns/get-campaign-delivery"},{"title":"Execute campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/execute","href":"/v2/buyer-api-reference/campaigns/execute-campaign"},{"title":"Pause campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/pause","href":"/v2/buyer-api-reference/campaigns/pause-campaign"},{"title":"Reactivate campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/reactivate","href":"/v2/buyer-api-reference/campaigns/reactivate-campaign"},{"title":"Auto-select products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/auto-select-products","href":"/v2/buyer-api-reference/campaigns/auto-select-products"},{"title":"Get media buy ADCP status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/media-buy-status","href":"/v2/buyer-api-reference/campaigns/get-media-buy-adcp-status"},{"title":"Get campaign seller scorecard","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/seller-scorecard","href":"/v2/buyer-api-reference/campaigns/get-campaign-seller-scorecard"},{"title":"Get media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /media-buys/{mediaBuyId}","href":"/v2/buyer-api-reference/campaigns/get-media-buy"},{"title":"Update media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /media-buys/{mediaBuyId}","href":"/v2/buyer-api-reference/campaigns/update-media-buy"},{"title":"List media buy packages","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /media-buys/{mediaBuyId}/packages","href":"/v2/buyer-api-reference/campaigns/list-media-buy-packages"},{"title":"Pause media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /media-buys/{mediaBuyId}/pause","href":"/v2/buyer-api-reference/campaigns/pause-media-buy"},{"title":"Reactivate media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /media-buys/{mediaBuyId}/reactivate","href":"/v2/buyer-api-reference/campaigns/reactivate-media-buy"},{"title":"Get campaign products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/products","href":"/v2/buyer-api-reference/campaigns/get-campaign-products"},{"title":"List targeting dimensions","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/dimensions","href":"/v2/buyer-api-reference/campaigns/list-targeting-dimensions"},{"title":"List targeting dimension values","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/dimensions/{system}","href":"/v2/buyer-api-reference/campaigns/list-targeting-dimension-values"},{"title":"Resolve targeting dimension text","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/dimensions/{system}/resolve","href":"/v2/buyer-api-reference/campaigns/resolve-targeting-dimension-text"},{"title":"List geo metros","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/geo-metros","href":"/v2/buyer-api-reference/campaigns/list-geo-metros"}]},{"group":"Audit Logs","pages":[{"title":"List buyer audit logs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /audit-logs","href":"/v2/buyer-api-reference/audit-logs/list-buyer-audit-logs"}]},{"group":"Activity","pages":[{"title":"List API calls","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /activity/calls","href":"/v2/buyer-api-reference/activity/list-api-calls"},{"title":"Get API call detail","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /activity/calls/{activityUid}","href":"/v2/buyer-api-reference/activity/get-api-call-detail"}]},{"group":"Event Sources","pages":[{"title":"List event sources","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/event-sources","href":"/v2/buyer-api-reference/event-sources/list-event-sources"},{"title":"Sync event sources","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/event-sources/sync","href":"/v2/buyer-api-reference/event-sources/sync-event-sources"},{"title":"Log conversion events","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/log-event","href":"/v2/buyer-api-reference/event-sources/log-conversion-events"}]},{"group":"Reporting","pages":[{"title":"Get event summary","description":"Get hourly-aggregated event counts for an advertiser. Returns event counts broken down by type and hour.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/events/summary","href":"/v2/buyer-api-reference/reporting/get-event-summary"},{"title":"Get reporting","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /reporting/metrics","href":"/v2/buyer-api-reference/reporting/get-reporting"}]},{"group":"Measurement","pages":[{"title":"Sync measurement data","description":"Inbound sync_measurement_data endpoint. Advertisers or MMPs call this to provide performance data as an alternative to CAPI. Accepts time-series measurement data keyed by campaign, media buy, package, and/or creative.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/measurement-data/sync","href":"/v2/buyer-api-reference/measurement/sync-measurement-data"},{"title":"List test cohorts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/test-cohorts","href":"/v2/buyer-api-reference/measurement/list-test-cohorts"},{"title":"Create test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/test-cohorts","href":"/v2/buyer-api-reference/measurement/create-test-cohort"},{"title":"Get test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/test-cohorts/{cohortId}","href":"/v2/buyer-api-reference/measurement/get-test-cohort"},{"title":"Update test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/test-cohorts/{cohortId}","href":"/v2/buyer-api-reference/measurement/update-test-cohort"},{"title":"Delete test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/test-cohorts/{cohortId}","href":"/v2/buyer-api-reference/measurement/delete-test-cohort"},{"title":"Get measurement configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-config","href":"/v2/buyer-api-reference/measurement/get-measurement-configuration"},{"title":"Update measurement configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/measurement-config","href":"/v2/buyer-api-reference/measurement/update-measurement-configuration"},{"title":"List measurement sources","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-sources","href":"/v2/buyer-api-reference/measurement/list-measurement-sources"},{"title":"Create measurement source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/measurement-sources","href":"/v2/buyer-api-reference/measurement/create-measurement-source"},{"title":"Get measurement source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-sources/{sourceId}","href":"/v2/buyer-api-reference/measurement/get-measurement-source"},{"title":"Update measurement source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /advertisers/{advertiserId}/measurement-sources/{sourceId}","href":"/v2/buyer-api-reference/measurement/update-measurement-source"},{"title":"List measurement records","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-records","href":"/v2/buyer-api-reference/measurement/list-measurement-records"},{"title":"Upload measurement records","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/measurement-records","href":"/v2/buyer-api-reference/measurement/upload-measurement-records"},{"title":"Upload context records","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/context-records","href":"/v2/buyer-api-reference/measurement/upload-context-records"},{"title":"Check measurement freshness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-freshness","href":"/v2/buyer-api-reference/measurement/check-measurement-freshness"}]},{"group":"Optimization Suggestions","pages":[{"title":"List optimization suggestions","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /optimization-suggestions","href":"/v2/buyer-api-reference/optimization-suggestions/list-optimization-suggestions"},{"title":"Get optimization suggestion","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /optimization-suggestions/{suggestionId}","href":"/v2/buyer-api-reference/optimization-suggestions/get-optimization-suggestion"},{"title":"Approve optimization suggestion","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /optimization-suggestions/{suggestionId}/approve","href":"/v2/buyer-api-reference/optimization-suggestions/approve-optimization-suggestion"},{"title":"Reject optimization suggestion","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /optimization-suggestions/{suggestionId}/reject","href":"/v2/buyer-api-reference/optimization-suggestions/reject-optimization-suggestion"},{"title":"List campaign suggestion sets","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaign-suggestion-sets","href":"/v2/buyer-api-reference/optimization-suggestions/list-campaign-suggestion-sets"},{"title":"Get campaign suggestion set","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaign-suggestion-sets/{campaignSuggestionSetId}","href":"/v2/buyer-api-reference/optimization-suggestions/get-campaign-suggestion-set"},{"title":"Approve campaign suggestion set","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaign-suggestion-sets/{campaignSuggestionSetId}/approve","href":"/v2/buyer-api-reference/optimization-suggestions/approve-campaign-suggestion-set"},{"title":"Reject campaign suggestion set","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaign-suggestion-sets/{campaignSuggestionSetId}/reject","href":"/v2/buyer-api-reference/optimization-suggestions/reject-campaign-suggestion-set"}]},{"group":"Identity Match","pages":[{"title":"List identity-match targeting configs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /identity-match/targeting","href":"/v2/buyer-api-reference/identity-match/list-identity-match-targeting-configs"}]},{"group":"Asks","pages":[{"title":"List my asks","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /asks","href":"/v2/buyer-api-reference/asks/list-my-asks"}]},{"group":"Supply Requests","pages":[{"title":"Suggest requested supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /supply-requests/suggestions","href":"/v2/buyer-api-reference/supply-requests/suggest-requested-supply"},{"title":"List requested supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /supply-requests","href":"/v2/buyer-api-reference/supply-requests/list-requested-supply"},{"title":"Request supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /supply-requests","href":"/v2/buyer-api-reference/supply-requests/request-supply"},{"title":"Remove requested supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /supply-requests/remove","href":"/v2/buyer-api-reference/supply-requests/remove-requested-supply"}]},{"group":"Account","pages":[{"title":"Get current account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/current","href":"/v2/buyer-api-reference/account/get-current-account"},{"title":"List customer accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts","href":"/v2/buyer-api-reference/account/list-customer-accounts"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/create-child","href":"/v2/buyer-api-reference/account/create-account"},{"title":"Convert account into an organization","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/convert-to-organization","href":"/v2/buyer-api-reference/account/convert-account-into-an-organization"},{"title":"Get organization posture","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/organization-posture","href":"/v2/buyer-api-reference/account/get-organization-posture"},{"title":"Update account domain","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /accounts/{customerId}/domain","href":"/v2/buyer-api-reference/account/update-account-domain"},{"title":"Preview account archive","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/{customerId}/archive-preview","href":"/v2/buyer-api-reference/account/preview-account-archive"},{"title":"Archive child account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/{customerId}/archive","href":"/v2/buyer-api-reference/account/archive-child-account"},{"title":"Restore child account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/{customerId}/unarchive","href":"/v2/buyer-api-reference/account/restore-child-account"},{"title":"Delete child account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /accounts/{customerId}","href":"/v2/buyer-api-reference/account/delete-child-account"},{"title":"Get membership settings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/{customerId}/membership","href":"/v2/buyer-api-reference/account/get-membership-settings"},{"title":"Update membership settings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /accounts/{customerId}/membership","href":"/v2/buyer-api-reference/account/update-membership-settings"},{"title":"List inbound email addresses","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /inbound-email-addresses","href":"/v2/buyer-api-reference/account/list-inbound-email-addresses"},{"title":"Create inbound email address","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /inbound-email-addresses","href":"/v2/buyer-api-reference/account/create-inbound-email-address"},{"title":"Rotate inbound email address","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /inbound-email-addresses/{id}/rotate","href":"/v2/buyer-api-reference/account/rotate-inbound-email-address"},{"title":"Revoke inbound email address","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /inbound-email-addresses/{id}/revoke","href":"/v2/buyer-api-reference/account/revoke-inbound-email-address"},{"title":"Get notification preferences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /notification-preferences","href":"/v2/buyer-api-reference/account/get-notification-preferences"},{"title":"Update notification preferences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /notification-preferences","href":"/v2/buyer-api-reference/account/update-notification-preferences"},{"title":"Get Slack notification settings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /notification-delivery-preferences","href":"/v2/buyer-api-reference/account/get-slack-notification-settings"},{"title":"Update a Slack notification setting","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /notification-delivery-preferences","href":"/v2/buyer-api-reference/account/update-a-slack-notification-setting"},{"title":"Check shared Slack availability","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/slack","href":"/v2/buyer-api-reference/account/check-shared-slack-availability"},{"title":"Inspect Discord messaging apps","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/discord","href":"/v2/buyer-api-reference/account/inspect-discord-messaging-apps"},{"title":"Create a Discord messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/discord","href":"/v2/buyer-api-reference/account/create-a-discord-messaging-app"},{"title":"Inspect Microsoft Teams messaging apps","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/teams","href":"/v2/buyer-api-reference/account/inspect-microsoft-teams-messaging-apps"},{"title":"Create a Microsoft Teams messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/teams","href":"/v2/buyer-api-reference/account/create-a-microsoft-teams-messaging-app"},{"title":"Register a Discord app installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/{definitionId}/discord-installations","href":"/v2/buyer-api-reference/account/register-a-discord-app-installation"},{"title":"Register a Microsoft Teams app installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/{definitionId}/teams-installations","href":"/v2/buyer-api-reference/account/register-a-microsoft-teams-app-installation"},{"title":"Inspect WhatsApp messaging apps","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/whatsapp","href":"/v2/buyer-api-reference/account/inspect-whatsapp-messaging-apps"},{"title":"Create a reply-only WhatsApp messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/whatsapp","href":"/v2/buyer-api-reference/account/create-a-reply-only-whatsapp-messaging-app"},{"title":"Register a WhatsApp business-phone installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/{definitionId}/whatsapp-installations","href":"/v2/buyer-api-reference/account/register-a-whatsapp-business-phone-installation"},{"title":"Link a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/buyer-api-reference/account/link-a-messaging-app-identity"},{"title":"Revoke a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/buyer-api-reference/account/revoke-a-messaging-app-identity"},{"title":"Rotate messaging app credentials","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /messaging-apps/{definitionId}/credentials","href":"/v2/buyer-api-reference/account/rotate-messaging-app-credentials"},{"title":"Suspend or uninstall a messaging app installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /messaging-apps/{definitionId}/installations/{installationId}","href":"/v2/buyer-api-reference/account/suspend-or-uninstall-a-messaging-app-installation"},{"title":"Retire a messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /messaging-apps/{definitionId}","href":"/v2/buyer-api-reference/account/retire-a-messaging-app"},{"title":"Get buyer agent activation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /activation","href":"/v2/buyer-api-reference/account/get-buyer-agent-activation"},{"title":"Retain the first free provider account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /activation/provider-binding","href":"/v2/buyer-api-reference/account/retain-the-first-free-provider-account"},{"title":"Preview market readiness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /market-readiness","href":"/v2/buyer-api-reference/account/preview-market-readiness"},{"title":"Get buyer readiness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /readiness","href":"/v2/buyer-api-reference/account/get-buyer-readiness"},{"title":"Update buyer operator domain","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /readiness/operator","href":"/v2/buyer-api-reference/account/update-buyer-operator-domain"}]},{"group":"Notifications","pages":[{"title":"List notifications","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /notifications","href":"/v2/buyer-api-reference/notifications/list-notifications"},{"title":"Mark all notifications as read","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /notifications/read-all","href":"/v2/buyer-api-reference/notifications/mark-all-notifications-as-read"},{"title":"Mark notification as read","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /notifications/{notificationId}/read","href":"/v2/buyer-api-reference/notifications/mark-notification-as-read"},{"title":"Acknowledge notification","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /notifications/{notificationId}/acknowledge","href":"/v2/buyer-api-reference/notifications/acknowledge-notification"}]},{"group":"Release Updates","pages":[{"title":"List personalized release updates","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /release-updates","href":"/v2/buyer-api-reference/release-updates/list-personalized-release-updates"},{"title":"List the release board","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /release-board","href":"/v2/buyer-api-reference/release-updates/list-the-release-board"},{"title":"Mark release updates as seen","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /release-updates/seen","href":"/v2/buyer-api-reference/release-updates/mark-release-updates-as-seen"}]},{"group":"Moderation","pages":[{"title":"Pre-check content against moderation policy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /moderation/check","href":"/v2/buyer-api-reference/moderation/pre-check-content-against-moderation-policy"}]},{"group":"Storefronts","pages":[{"title":"List storefronts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts","href":"/v2/buyer-api-reference/storefronts/list-storefronts"},{"title":"Get storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/{storefrontId}","href":"/v2/buyer-api-reference/storefronts/get-storefront"},{"title":"Update Storefront selection override","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefronts/{storefrontId}/selection-override","href":"/v2/buyer-api-reference/storefronts/update-storefront-selection-override"},{"title":"Update advertiser Seller activation preference","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefronts/{storefrontId}/advertisers/{advertiserId}/activation-preference","href":"/v2/buyer-api-reference/storefronts/update-advertiser-seller-activation-preference"},{"title":"Update Storefront billing policy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefronts/{storefrontId}/billing-policy","href":"/v2/buyer-api-reference/storefronts/update-storefront-billing-policy"},{"title":"Accept direct Storefront billing","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/direct-billing-acceptance","href":"/v2/buyer-api-reference/storefronts/accept-direct-storefront-billing"},{"title":"Get storefront capabilities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/{storefrontId}/capabilities","href":"/v2/buyer-api-reference/storefronts/get-storefront-capabilities"},{"title":"List storefront connections","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections","href":"/v2/buyer-api-reference/storefronts/list-storefront-connections"},{"title":"List external account mappings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connection-account-mappings","href":"/v2/buyer-api-reference/storefronts/list-external-account-mappings"},{"title":"List integration external accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts","href":"/v2/buyer-api-reference/storefronts/list-integration-external-accounts"},{"title":"Refresh integration external accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-connections/{connectionId}/accounts/refresh","href":"/v2/buyer-api-reference/storefronts/refresh-integration-external-accounts"},{"title":"Remove storefront connection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /storefront-connections/{connectionId}","href":"/v2/buyer-api-reference/storefronts/remove-storefront-connection"},{"title":"Select integration external account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /storefront-connections/{connectionId}/accounts/{accountId}/select","href":"/v2/buyer-api-reference/storefronts/select-integration-external-account"},{"title":"Map external account to advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-connections/{connectionId}/accounts/{accountId}/advertiser","href":"/v2/buyer-api-reference/storefronts/map-external-account-to-advertiser"},{"title":"Set account-level Enhanced Reporting","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefront-connections/{connectionId}/accounts/{accountId}/enhanced-reporting","href":"/v2/buyer-api-reference/storefronts/set-account-level-enhanced-reporting"},{"title":"List linkable TikTok identities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/identities","href":"/v2/buyer-api-reference/storefronts/list-linkable-tiktok-identities"},{"title":"Set or clear the TikTok ad identity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefront-connections/{connectionId}/accounts/{accountId}/identity","href":"/v2/buyer-api-reference/storefronts/set-or-clear-the-tiktok-ad-identity"},{"title":"Subscribe a directed-campaign account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscribe","href":"/v2/buyer-api-reference/storefronts/subscribe-a-directed-campaign-account"},{"title":"Get directed-campaign subscription health","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","href":"/v2/buyer-api-reference/storefronts/get-directed-campaign-subscription-health"},{"title":"Unsubscribe a directed-campaign account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","href":"/v2/buyer-api-reference/storefronts/unsubscribe-a-directed-campaign-account"},{"title":"List account presences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/presences","href":"/v2/buyer-api-reference/storefronts/list-account-presences"},{"title":"List reporting-only Meta campaign identities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/reporting-campaigns","href":"/v2/buyer-api-reference/storefronts/list-reporting-only-meta-campaign-identities"},{"title":"Get reporting-only Meta campaign delivery","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/reporting-campaigns/{upstreamCampaignId}/delivery","href":"/v2/buyer-api-reference/storefronts/get-reporting-only-meta-campaign-delivery"},{"title":"Update storefront connection policy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /storefronts/{storefrontId}/connection-policy","href":"/v2/buyer-api-reference/storefronts/update-storefront-connection-policy"},{"title":"Connect storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/connection","href":"/v2/buyer-api-reference/storefronts/connect-storefront"},{"title":"List credentials","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/credentials","href":"/v2/buyer-api-reference/storefronts/list-credentials"},{"title":"Register source credentials","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/sources/{sourceId}/credentials","href":"/v2/buyer-api-reference/storefronts/register-source-credentials"},{"title":"Connect a registered AdCP source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/sources/{sourceId}/adcp-connection","href":"/v2/buyer-api-reference/storefronts/connect-a-registered-adcp-source"},{"title":"List publisher domains for a storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/{storefrontId}/publishers","href":"/v2/buyer-api-reference/storefronts/list-publisher-domains-for-a-storefront"}]},{"group":"Syndication","pages":[{"title":"Toggle syndication for a resource","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/syndicate","href":"/v2/buyer-api-reference/syndication/toggle-syndication-for-a-resource"},{"title":"Query syndication status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/syndication-status","href":"/v2/buyer-api-reference/syndication/query-syndication-status"}]},{"group":"Tasks","pages":[{"title":"Get task status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /tasks/{taskId}","href":"/v2/buyer-api-reference/tasks/get-task-status"}]},{"group":"Property Lists","pages":[{"title":"List property lists","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/property-lists","href":"/v2/buyer-api-reference/property-lists/list-property-lists"},{"title":"Create property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/property-lists","href":"/v2/buyer-api-reference/property-lists/create-property-list"},{"title":"Get property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/property-lists/{listId}","href":"/v2/buyer-api-reference/property-lists/get-property-list"},{"title":"Update property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/property-lists/{listId}","href":"/v2/buyer-api-reference/property-lists/update-property-list"},{"title":"Delete property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/property-lists/{listId}","href":"/v2/buyer-api-reference/property-lists/delete-property-list"},{"title":"Get campaign property lists","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/property-lists","href":"/v2/buyer-api-reference/property-lists/get-campaign-property-lists"},{"title":"Attach property list to campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/property-lists","href":"/v2/buyer-api-reference/property-lists/attach-property-list-to-campaign"},{"title":"Check property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /property-lists/check","href":"/v2/buyer-api-reference/property-lists/check-property-list"},{"title":"Get property list check report","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /property-lists/reports/{reportId}","href":"/v2/buyer-api-reference/property-lists/get-property-list-check-report"}]},{"group":"Buyer Billing","pages":[{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /credit-applications/v2","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /credit-applications/v2","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-1"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /credit-applications/v2/{applicationId}","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-2"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /credit-applications/v2/{applicationId}/accept-counteroffer","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-3"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /credit-applications/v2/{applicationId}/withdraw","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-4"},{"title":"Get billing information","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/info","href":"/v2/buyer-api-reference/buyer-billing/get-billing-information"},{"title":"Update billing information (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /billing/info","href":"/v2/buyer-api-reference/buyer-billing/update-billing-information-admin"},{"title":"Get billing account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/account","href":"/v2/buyer-api-reference/buyer-billing/get-billing-account"},{"title":"Get inherited billing stub","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/account/inherited-stub","href":"/v2/buyer-api-reference/buyer-billing/get-inherited-billing-stub"},{"title":"Get the app-root Rate Card review decision","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/login-prompt","href":"/v2/buyer-api-reference/buyer-billing/get-the-app-root-rate-card-review-decision"},{"title":"Get the organization IU Rate Card offer and acceptance state","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card","href":"/v2/buyer-api-reference/buyer-billing/get-the-organization-iu-rate-card-offer-and-acceptance-state"},{"title":"Get the versioned organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/v2","href":"/v2/buyer-api-reference/buyer-billing/get-the-versioned-organization-iu-commercial-document"},{"title":"Get the catalog-v3 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/v3","href":"/v2/buyer-api-reference/buyer-billing/get-the-catalog-v3-organization-iu-commercial-document"},{"title":"Get the catalog-v4 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/v4","href":"/v2/buyer-api-reference/buyer-billing/get-the-catalog-v4-organization-iu-commercial-document"},{"title":"Request human help choosing an IU plan","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/iu-rate-card/mcp-app/help","href":"/v2/buyer-api-reference/buyer-billing/request-human-help-choosing-an-iu-plan"},{"title":"Download the current Commercial Offer proposal","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/document.pdf","href":"/v2/buyer-api-reference/buyer-billing/download-the-current-commercial-offer-proposal"},{"title":"Accept an exact organization IU Rate Card offer","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/iu-rate-card/accept","href":"/v2/buyer-api-reference/buyer-billing/accept-an-exact-organization-iu-rate-card-offer"},{"title":"Start adding a card (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/payment-methods/setup","href":"/v2/buyer-api-reference/buyer-billing/start-adding-a-card-admin"},{"title":"Get the latest submitted card confirmation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/payment-methods/setup-attempt","href":"/v2/buyer-api-reference/buyer-billing/get-the-latest-submitted-card-confirmation"},{"title":"Record a submitted card confirmation (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/payment-methods/setup/{id}/submitted","href":"/v2/buyer-api-reference/buyer-billing/record-a-submitted-card-confirmation-admin"},{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/payment-methods","href":"/v2/buyer-api-reference/buyer-billing/list-payment-methods"},{"title":"Remove a payment method (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /billing/payment-methods/{id}","href":"/v2/buyer-api-reference/buyer-billing/remove-a-payment-method-admin"},{"title":"Open a payment capture link","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /capture-links/{token}","href":"/v2/buyer-api-reference/buyer-billing/open-a-payment-capture-link"},{"title":"Manually retry the outstanding failed charge (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/payment-methods/pay-now","href":"/v2/buyer-api-reference/buyer-billing/manually-retry-the-outstanding-failed-charge-admin"},{"title":"Get invoice activity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/invoice-activity","href":"/v2/buyer-api-reference/buyer-billing/get-invoice-activity"},{"title":"List fee invoices","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/fee-invoices","href":"/v2/buyer-api-reference/buyer-billing/list-fee-invoices"},{"title":"Get fee invoice","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/fee-invoices/{invoiceNumber}","href":"/v2/buyer-api-reference/buyer-billing/get-fee-invoice"}]},{"group":"Media Billing","pages":[{"title":"List media billing entities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/media-entities","href":"/v2/buyer-api-reference/media-billing/list-media-billing-entities"},{"title":"Create media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/media-entities","href":"/v2/buyer-api-reference/media-billing/create-media-billing-entity-admin"},{"title":"Update media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /billing/media-entities/{entityId}","href":"/v2/buyer-api-reference/media-billing/update-media-billing-entity-admin"},{"title":"Delete media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /billing/media-entities/{entityId}","href":"/v2/buyer-api-reference/media-billing/delete-media-billing-entity-admin"},{"title":"List media billing attachments","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/media-entities/attachments","href":"/v2/buyer-api-reference/media-billing/list-media-billing-attachments"},{"title":"Attach media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/media-entities/attachments","href":"/v2/buyer-api-reference/media-billing/attach-media-billing-entity-admin"},{"title":"Delete media billing attachment (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /billing/media-entities/attachments/{attachmentId}","href":"/v2/buyer-api-reference/media-billing/delete-media-billing-attachment-admin"},{"title":"Resolve media billing entity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/media-entities/resolve","href":"/v2/buyer-api-reference/media-billing/resolve-media-billing-entity"}]},{"group":"Update Proposals","pages":[{"title":"Get update proposal status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /update-proposals/{id}","href":"/v2/buyer-api-reference/update-proposals/get-update-proposal-status"},{"title":"Cancel a pending update proposal","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /update-proposals/{id}","href":"/v2/buyer-api-reference/update-proposals/cancel-a-pending-update-proposal"}]},{"group":"MCP","pages":[{"title":"Initialize MCP session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /","href":"/v2/buyer-api-reference/mcp/initialize-mcp-session"},{"title":"Make API call via MCP","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /api-call","href":"/v2/buyer-api-reference/mcp/make-api-call-via-mcp"},{"title":"Ask about API capabilities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /ask-about-capability","href":"/v2/buyer-api-reference/mcp/ask-about-api-capabilities"}]}]},{"group":"Seller API reference","pages":[{"title":"Storefront API reference (legacy v2)","icon":"handshake-angle","href":"/v2/storefront-api-reference"},{"group":"Advertisers","pages":[{"title":"List organization advertisers","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertisers","href":"/v2/storefront-api-reference/advertisers/list-organization-advertisers"},{"title":"Create an organization advertiser lifecycle","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertisers","href":"/v2/storefront-api-reference/advertisers/create-an-organization-advertiser-lifecycle"},{"title":"List organization advertisers with account setup","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertisers/account-setup","href":"/v2/storefront-api-reference/advertisers/list-organization-advertisers-with-account-setup"},{"title":"Claim an exact-recipient advertiser invitation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /advertiser-invitations/claim","href":"/v2/storefront-api-reference/advertisers/claim-an-exact-recipient-advertiser-invitation"},{"title":"List organization advertiser grants","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertiser-grants","href":"/v2/storefront-api-reference/advertisers/list-organization-advertiser-grants"},{"title":"Invite an organization to advertiser access","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants","href":"/v2/storefront-api-reference/advertisers/invite-an-organization-to-advertiser-access"},{"title":"Get an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertiser-grants/{grantRef}","href":"/v2/storefront-api-reference/advertisers/get-an-organization-advertiser-grant"},{"title":"Accept an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants/{grantRef}/accept","href":"/v2/storefront-api-reference/advertisers/accept-an-organization-advertiser-grant"},{"title":"Reject an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants/{grantRef}/reject","href":"/v2/storefront-api-reference/advertisers/reject-an-organization-advertiser-grant"},{"title":"Revoke an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants/{grantRef}/revoke","href":"/v2/storefront-api-reference/advertisers/revoke-an-organization-advertiser-grant"}]},{"group":"Activity","pages":[{"title":"List API calls","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /activity/calls","href":"/v2/storefront-api-reference/activity/list-api-calls"},{"title":"Get API call detail","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /activity/calls/{activityUid}","href":"/v2/storefront-api-reference/activity/get-api-call-detail"}]},{"group":"Communications","pages":[{"title":"Queue an agent text message","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /communications/messages","href":"/v2/storefront-api-reference/communications/queue-an-agent-text-message"},{"title":"Queue an agent RCS text message","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /communications/rcs/messages","href":"/v2/storefront-api-reference/communications/queue-an-agent-rcs-text-message"},{"title":"Request a text-message line for an Agent","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /communications/phone-lines","href":"/v2/storefront-api-reference/communications/request-a-text-message-line-for-an-agent"},{"title":"Get a text-message line request","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /communications/phone-lines/{requestId}","href":"/v2/storefront-api-reference/communications/get-a-text-message-line-request"}]},{"group":"Reporting","pages":[{"title":"Get storefront reporting","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /reporting/metrics","href":"/v2/storefront-api-reference/reporting/get-storefront-reporting"},{"title":"Get exact client Source reporting","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account/connections/{bindingUid}/reporting","href":"/v2/storefront-api-reference/reporting/get-exact-client-source-reporting"}]},{"group":"Storefront","pages":[{"title":"Get Partner Program access","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/partner-access","href":"/v2/storefront-api-reference/storefront/get-partner-program-access"},{"title":"Get Partner client fleet","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account","href":"/v2/storefront-api-reference/storefront/get-partner-client-fleet"},{"title":"List client onboarding referrals","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account/client-referrals","href":"/v2/storefront-api-reference/storefront/list-client-onboarding-referrals"},{"title":"Invite a publisher client","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/client-referrals","href":"/v2/storefront-api-reference/storefront/invite-a-publisher-client"},{"title":"Preview a publisher invitation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/preview","href":"/v2/storefront-api-reference/storefront/preview-a-publisher-invitation"},{"title":"Accept a publisher invitation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/accept","href":"/v2/storefront-api-reference/storefront/accept-a-publisher-invitation"},{"title":"List eligible publisher Sources","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/setup","href":"/v2/storefront-api-reference/storefront/list-eligible-publisher-sources"},{"title":"Create a publisher-owned Agent Source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/source","href":"/v2/storefront-api-reference/storefront/create-a-publisher-owned-agent-source"},{"title":"Authorize one exact publisher Source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/complete","href":"/v2/storefront-api-reference/storefront/authorize-one-exact-publisher-source"},{"title":"Accept a publisher-authorized connection","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/connections/{bindingUid}/accept","href":"/v2/storefront-api-reference/storefront/accept-a-publisher-authorized-connection"},{"title":"Run exact connection validation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/connections/{bindingUid}/validate","href":"/v2/storefront-api-reference/storefront/run-exact-connection-validation"},{"title":"Activate an exact validated connection","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/connections/{bindingUid}/activate","href":"/v2/storefront-api-reference/storefront/activate-an-exact-validated-connection"},{"title":"Get a client Source's health as its agent operator","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account/connections/{bindingUid}/source-health","href":"/v2/storefront-api-reference/storefront/get-a-client-sources-health-as-its-agent-operator"},{"title":"Get storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /storefront","href":"/v2/storefront-api-reference/storefront/get-storefront"},{"title":"Update storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /storefront","href":"/v2/storefront-api-reference/storefront/update-storefront"},{"title":"Create storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /storefront","href":"/v2/storefront-api-reference/storefront/create-storefront"},{"title":"Get storefront readiness","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /readiness","href":"/v2/storefront-api-reference/storefront/get-storefront-readiness"},{"title":"Resolve brand profile","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /resolve-brand","href":"/v2/storefront-api-reference/storefront/resolve-brand-profile"},{"title":"Discover agents for a domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /discover-agents","href":"/v2/storefront-api-reference/storefront/discover-agents-for-a-domain"},{"title":"List inventory sources","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources","href":"/v2/storefront-api-reference/storefront/list-inventory-sources"},{"title":"Create inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources","href":"/v2/storefront-api-reference/storefront/create-inventory-source"},{"title":"Get inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}","href":"/v2/storefront-api-reference/storefront/get-inventory-source"},{"title":"Update inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /inventory-sources/{sourceId}","href":"/v2/storefront-api-reference/storefront/update-inventory-source"},{"title":"Delete inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /inventory-sources/{sourceId}","href":"/v2/storefront-api-reference/storefront/delete-inventory-source"},{"title":"Retired: certification sandbox account","deprecated":true,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/certification-sandbox-account","href":"/v2/storefront-api-reference/storefront/retired:-certification-sandbox-account"},{"title":"Retired: certification sandbox account","deprecated":true,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/certification-sandbox-account","href":"/v2/storefront-api-reference/storefront/retired:-certification-sandbox-account-1"},{"title":"Retired: certification sandbox account","deprecated":true,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /inventory-sources/{sourceId}/certification-sandbox-account","href":"/v2/storefront-api-reference/storefront/retired:-certification-sandbox-account-2"},{"title":"Get inventory source diagnostics","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/diagnostics","href":"/v2/storefront-api-reference/storefront/get-inventory-source-diagnostics"},{"title":"Get an inventory source mapping workspace","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/mapping-workspace","href":"/v2/storefront-api-reference/storefront/get-an-inventory-source-mapping-workspace"},{"title":"Get inventory source connection profile","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/connection-profile","href":"/v2/storefront-api-reference/storefront/get-inventory-source-connection-profile"},{"title":"Run an inventory source discovery test","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/tests/discovery","href":"/v2/storefront-api-reference/storefront/run-an-inventory-source-discovery-test"},{"title":"Download wholesale pricing template","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/wholesale-pricing/template","href":"/v2/storefront-api-reference/storefront/download-wholesale-pricing-template"},{"title":"List inventory property mappings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/property-mappings","href":"/v2/storefront-api-reference/storefront/list-inventory-property-mappings"},{"title":"Replace inventory property mappings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /inventory-sources/{sourceId}/property-mappings","href":"/v2/storefront-api-reference/storefront/replace-inventory-property-mappings"},{"title":"Create a modular source with an avails-feed module","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/modular/feed","href":"/v2/storefront-api-reference/storefront/create-a-modular-source-with-an-avails-feed-module"},{"title":"Create Cadent demo modular source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/modular/cadent-demo","href":"/v2/storefront-api-reference/storefront/create-cadent-demo-modular-source"},{"title":"Create FreeWheel sandbox modular source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/modular/freewheel-sandbox","href":"/v2/storefront-api-reference/storefront/create-freewheel-sandbox-modular-source"},{"title":"Get modular inventory source readiness","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular","href":"/v2/storefront-api-reference/storefront/get-modular-inventory-source-readiness"},{"title":"Ingest modular avails feed","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/avails-feed","href":"/v2/storefront-api-reference/storefront/ingest-modular-avails-feed"},{"title":"List modular inventory products","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/products","href":"/v2/storefront-api-reference/storefront/list-modular-inventory-products"},{"title":"List modular source work items","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/work-items","href":"/v2/storefront-api-reference/storefront/list-modular-source-work-items"},{"title":"Get modular source work item","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/work-items/{workItemId}","href":"/v2/storefront-api-reference/storefront/get-modular-source-work-item"},{"title":"Update modular source work item","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /inventory-sources/{sourceId}/modular/work-items/{workItemId}","href":"/v2/storefront-api-reference/storefront/update-modular-source-work-item"},{"title":"Complete modular source work item","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/work-items/{workItemId}/complete","href":"/v2/storefront-api-reference/storefront/complete-modular-source-work-item"},{"title":"Get modular inventory capabilities","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/inventory/capabilities","href":"/v2/storefront-api-reference/storefront/get-modular-inventory-capabilities"},{"title":"Search modular inventory selectors","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/inventory/selectors","href":"/v2/storefront-api-reference/storefront/search-modular-inventory-selectors"},{"title":"Reserve modular inventory product","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/reservations","href":"/v2/storefront-api-reference/storefront/reserve-modular-inventory-product"},{"title":"Prepare modular booking handoff","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/bookings/finalize","href":"/v2/storefront-api-reference/storefront/prepare-modular-booking-handoff"},{"title":"Release modular inventory booking","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/bookings/release","href":"/v2/storefront-api-reference/storefront/release-modular-inventory-booking"},{"title":"Update modular source module config","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /inventory-sources/{sourceId}/modular/modules/{moduleInstanceId}/config","href":"/v2/storefront-api-reference/storefront/update-modular-source-module-config"},{"title":"Preview a feed revision (HITL)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/preview","href":"/v2/storefront-api-reference/storefront/preview-a-feed-revision-hitl"},{"title":"Upload a feed file (HITL, multipart)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/upload","href":"/v2/storefront-api-reference/storefront/upload-a-feed-file-hitl-multipart"},{"title":"Commit a previewed feed revision (HITL)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/commit","href":"/v2/storefront-api-reference/storefront/commit-a-previewed-feed-revision-hitl"},{"title":"Push a feed revision (API_PUSH, no preview step)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/push","href":"/v2/storefront-api-reference/storefront/push-a-feed-revision-api_push-no-preview-step"},{"title":"List ad server sources","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa","href":"/v2/storefront-api-reference/storefront/list-ad-server-sources"},{"title":"Get an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}","href":"/v2/storefront-api-reference/storefront/get-an-ad-server-source"},{"title":"Set a FreeWheel execution currency","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/execution-currency","href":"/v2/storefront-api-reference/storefront/set-a-freewheel-execution-currency"},{"title":"Test an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/test-connection","href":"/v2/storefront-api-reference/storefront/test-an-ad-server-source"},{"title":"Refresh an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/refresh","href":"/v2/storefront-api-reference/storefront/refresh-an-ad-server-source"},{"title":"Re-check an ad server capability","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/capabilities/{capability}/recheck","href":"/v2/storefront-api-reference/storefront/re-check-an-ad-server-capability"},{"title":"Deactivate an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/deactivate","href":"/v2/storefront-api-reference/storefront/deactivate-an-ad-server-source"},{"title":"Reactivate an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/reactivate","href":"/v2/storefront-api-reference/storefront/reactivate-an-ad-server-source"},{"title":"Get ad server source status","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/status","href":"/v2/storefront-api-reference/storefront/get-ad-server-source-status"},{"title":"List ad server source sync history","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/sync-history","href":"/v2/storefront-api-reference/storefront/list-ad-server-source-sync-history"},{"title":"Mint an ad server source launch URL","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/launch","href":"/v2/storefront-api-reference/storefront/mint-an-ad-server-source-launch-url"},{"title":"Get the active operating-instructions version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /operating-instructions/active","href":"/v2/storefront-api-reference/storefront/get-the-active-operating-instructions-version"},{"title":"Create a new operating-instructions version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /operating-instructions","href":"/v2/storefront-api-reference/storefront/create-a-new-operating-instructions-version"},{"title":"Activate an operating-instructions version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /operating-instructions/{version}/activate","href":"/v2/storefront-api-reference/storefront/activate-an-operating-instructions-version"},{"title":"Create a new acceptance-policy version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /acceptance-policy","href":"/v2/storefront-api-reference/storefront/create-a-new-acceptance-policy-version"},{"title":"Pin or clear the learned default posture","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /learned-default-posture","href":"/v2/storefront-api-reference/storefront/pin-or-clear-the-learned-default-posture"},{"title":"Create a merchandising simulation scenario","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /simulator/scenarios","href":"/v2/storefront-api-reference/storefront/create-a-merchandising-simulation-scenario"},{"title":"Execute a pinned merchandising simulation variant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /simulator/scenarios/{scenarioId}/revisions/{revisionId}/variants/{variantId}/executions","href":"/v2/storefront-api-reference/storefront/execute-a-pinned-merchandising-simulation-variant"},{"title":"Get the canonical seller decision record for an intelligence run","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /intelligence-runs/{id}/decision-record","href":"/v2/storefront-api-reference/storefront/get-the-canonical-seller-decision-record-for-an-intelligence-run"},{"title":"Get the seller-analytics posture-conversion rollup","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /seller-analytics","href":"/v2/storefront-api-reference/storefront/get-the-seller-analytics-posture-conversion-rollup"},{"title":"List every media buy on the storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /media-buys","href":"/v2/storefront-api-reference/storefront/list-every-media-buy-on-the-storefront"},{"title":"Get one buy's exchange timeline","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /media-buys/{mediaBuyId}/timeline","href":"/v2/storefront-api-reference/storefront/get-one-buys-exchange-timeline"},{"title":"Get the observed creative thumbnail","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /creative-reviews/{creativeId}/thumbnail","href":"/v2/storefront-api-reference/storefront/get-the-observed-creative-thumbnail"},{"title":"List publisher domains","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /publishers","href":"/v2/storefront-api-reference/storefront/list-publisher-domains"},{"title":"Replace publisher list","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /publishers","href":"/v2/storefront-api-reference/storefront/replace-publisher-list"},{"title":"Add a publisher domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /publishers","href":"/v2/storefront-api-reference/storefront/add-a-publisher-domain"},{"title":"Declare a property","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /property-roster/properties","href":"/v2/storefront-api-reference/storefront/declare-a-property"},{"title":"Remove a declared property","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /property-roster/properties/{domain}/{propertyKey}","href":"/v2/storefront-api-reference/storefront/remove-a-declared-property"},{"title":"Remove a publisher domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /publishers/{domain}","href":"/v2/storefront-api-reference/storefront/remove-a-publisher-domain"}]},{"group":"Identity Match","pages":[{"title":"List identity-match targeting configs","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /identity-match/targeting","href":"/v2/storefront-api-reference/identity-match/list-identity-match-targeting-configs"}]},{"group":"Asks","pages":[{"title":"List my asks","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /asks","href":"/v2/storefront-api-reference/asks/list-my-asks"}]},{"group":"Supply Requests","pages":[{"title":"Suggest requested supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /supply-requests/suggestions","href":"/v2/storefront-api-reference/supply-requests/suggest-requested-supply"},{"title":"List requested supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /supply-requests","href":"/v2/storefront-api-reference/supply-requests/list-requested-supply"},{"title":"Request supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /supply-requests","href":"/v2/storefront-api-reference/supply-requests/request-supply"},{"title":"Remove requested supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /supply-requests/remove","href":"/v2/storefront-api-reference/supply-requests/remove-requested-supply"}]},{"group":"Account","pages":[{"title":"Get current account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/current","href":"/v2/storefront-api-reference/account/get-current-account"},{"title":"List customer accounts","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts","href":"/v2/storefront-api-reference/account/list-customer-accounts"},{"title":"Get storefront liveness for accounts","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/liveness","href":"/v2/storefront-api-reference/account/get-storefront-liveness-for-accounts"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/create-child","href":"/v2/storefront-api-reference/account/create-account"},{"title":"Convert account into an organization","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/convert-to-organization","href":"/v2/storefront-api-reference/account/convert-account-into-an-organization"},{"title":"Get organization posture","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/organization-posture","href":"/v2/storefront-api-reference/account/get-organization-posture"},{"title":"Update account domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /accounts/{customerId}/domain","href":"/v2/storefront-api-reference/account/update-account-domain"},{"title":"Preview account archive","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/{customerId}/archive-preview","href":"/v2/storefront-api-reference/account/preview-account-archive"},{"title":"Archive child account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/{customerId}/archive","href":"/v2/storefront-api-reference/account/archive-child-account"},{"title":"Restore child account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/{customerId}/unarchive","href":"/v2/storefront-api-reference/account/restore-child-account"},{"title":"Delete child account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /accounts/{customerId}","href":"/v2/storefront-api-reference/account/delete-child-account"},{"title":"Get membership settings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/{customerId}/membership","href":"/v2/storefront-api-reference/account/get-membership-settings"},{"title":"Update membership settings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /accounts/{customerId}/membership","href":"/v2/storefront-api-reference/account/update-membership-settings"},{"title":"List inbound email addresses","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inbound-email-addresses","href":"/v2/storefront-api-reference/account/list-inbound-email-addresses"},{"title":"Create inbound email address","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inbound-email-addresses","href":"/v2/storefront-api-reference/account/create-inbound-email-address"},{"title":"Rotate inbound email address","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inbound-email-addresses/{id}/rotate","href":"/v2/storefront-api-reference/account/rotate-inbound-email-address"},{"title":"Revoke inbound email address","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inbound-email-addresses/{id}/revoke","href":"/v2/storefront-api-reference/account/revoke-inbound-email-address"},{"title":"Get notification preferences","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /notification-preferences","href":"/v2/storefront-api-reference/account/get-notification-preferences"},{"title":"Update notification preferences","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /notification-preferences","href":"/v2/storefront-api-reference/account/update-notification-preferences"},{"title":"Get Slack notification settings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /notification-delivery-preferences","href":"/v2/storefront-api-reference/account/get-slack-notification-settings"},{"title":"Update a Slack notification setting","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /notification-delivery-preferences","href":"/v2/storefront-api-reference/account/update-a-slack-notification-setting"},{"title":"Check shared Slack availability","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/slack","href":"/v2/storefront-api-reference/account/check-shared-slack-availability"},{"title":"Inspect Discord messaging apps","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/discord","href":"/v2/storefront-api-reference/account/inspect-discord-messaging-apps"},{"title":"Create a Discord messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/discord","href":"/v2/storefront-api-reference/account/create-a-discord-messaging-app"},{"title":"Inspect Microsoft Teams messaging apps","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/teams","href":"/v2/storefront-api-reference/account/inspect-microsoft-teams-messaging-apps"},{"title":"Create a Microsoft Teams messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/teams","href":"/v2/storefront-api-reference/account/create-a-microsoft-teams-messaging-app"},{"title":"Register a Discord app installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/{definitionId}/discord-installations","href":"/v2/storefront-api-reference/account/register-a-discord-app-installation"},{"title":"Register a Microsoft Teams app installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/{definitionId}/teams-installations","href":"/v2/storefront-api-reference/account/register-a-microsoft-teams-app-installation"},{"title":"Inspect WhatsApp messaging apps","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/whatsapp","href":"/v2/storefront-api-reference/account/inspect-whatsapp-messaging-apps"},{"title":"Create a reply-only WhatsApp messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/whatsapp","href":"/v2/storefront-api-reference/account/create-a-reply-only-whatsapp-messaging-app"},{"title":"Register a WhatsApp business-phone installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/{definitionId}/whatsapp-installations","href":"/v2/storefront-api-reference/account/register-a-whatsapp-business-phone-installation"},{"title":"Link a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/storefront-api-reference/account/link-a-messaging-app-identity"},{"title":"Revoke a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/storefront-api-reference/account/revoke-a-messaging-app-identity"},{"title":"Rotate messaging app credentials","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /messaging-apps/{definitionId}/credentials","href":"/v2/storefront-api-reference/account/rotate-messaging-app-credentials"},{"title":"Suspend or uninstall a messaging app installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /messaging-apps/{definitionId}/installations/{installationId}","href":"/v2/storefront-api-reference/account/suspend-or-uninstall-a-messaging-app-installation"},{"title":"Retire a messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /messaging-apps/{definitionId}","href":"/v2/storefront-api-reference/account/retire-a-messaging-app"},{"title":"Get Media Company intake status","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /media-company-intake","href":"/v2/storefront-api-reference/account/get-media-company-intake-status"},{"title":"Start or resume Media Company intake","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /media-company-intake","href":"/v2/storefront-api-reference/account/start-or-resume-media-company-intake"},{"title":"Confirm Media Company identity and billing country","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /media-company-intake/confirm","href":"/v2/storefront-api-reference/account/confirm-media-company-identity-and-billing-country"}]},{"group":"Notifications","pages":[{"title":"List notifications","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /notifications","href":"/v2/storefront-api-reference/notifications/list-notifications"},{"title":"Mark all notifications as read","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /notifications/read-all","href":"/v2/storefront-api-reference/notifications/mark-all-notifications-as-read"},{"title":"Mark notification as read","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /notifications/{notificationId}/read","href":"/v2/storefront-api-reference/notifications/mark-notification-as-read"},{"title":"Acknowledge notification","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /notifications/{notificationId}/acknowledge","href":"/v2/storefront-api-reference/notifications/acknowledge-notification"}]},{"group":"Release Updates","pages":[{"title":"List personalized release updates","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /release-updates","href":"/v2/storefront-api-reference/release-updates/list-personalized-release-updates"},{"title":"List the release board","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /release-board","href":"/v2/storefront-api-reference/release-updates/list-the-release-board"},{"title":"Mark release updates as seen","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /release-updates/seen","href":"/v2/storefront-api-reference/release-updates/mark-release-updates-as-seen"}]},{"group":"Moderation","pages":[{"title":"Pre-check content against moderation policy","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /moderation/check","href":"/v2/storefront-api-reference/moderation/pre-check-content-against-moderation-policy"}]},{"group":"Buyer Billing","pages":[{"title":"Get billing account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/account","href":"/v2/storefront-api-reference/buyer-billing/get-billing-account"},{"title":"Get inherited billing stub","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/account/inherited-stub","href":"/v2/storefront-api-reference/buyer-billing/get-inherited-billing-stub"},{"title":"Get the app-root Rate Card review decision","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/login-prompt","href":"/v2/storefront-api-reference/buyer-billing/get-the-app-root-rate-card-review-decision"},{"title":"Get the organization IU Rate Card offer and acceptance state","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card","href":"/v2/storefront-api-reference/buyer-billing/get-the-organization-iu-rate-card-offer-and-acceptance-state"},{"title":"Get the versioned organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/v2","href":"/v2/storefront-api-reference/buyer-billing/get-the-versioned-organization-iu-commercial-document"},{"title":"Get the catalog-v3 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/v3","href":"/v2/storefront-api-reference/buyer-billing/get-the-catalog-v3-organization-iu-commercial-document"},{"title":"Get the catalog-v4 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/v4","href":"/v2/storefront-api-reference/buyer-billing/get-the-catalog-v4-organization-iu-commercial-document"},{"title":"Request human help choosing an IU plan","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/iu-rate-card/mcp-app/help","href":"/v2/storefront-api-reference/buyer-billing/request-human-help-choosing-an-iu-plan"},{"title":"Download the current Commercial Offer proposal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/document.pdf","href":"/v2/storefront-api-reference/buyer-billing/download-the-current-commercial-offer-proposal"},{"title":"Accept an exact organization IU Rate Card offer","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/iu-rate-card/accept","href":"/v2/storefront-api-reference/buyer-billing/accept-an-exact-organization-iu-rate-card-offer"},{"title":"Start adding a card (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/payment-methods/setup","href":"/v2/storefront-api-reference/buyer-billing/start-adding-a-card-admin"},{"title":"Get the latest submitted card confirmation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payment-methods/setup-attempt","href":"/v2/storefront-api-reference/buyer-billing/get-the-latest-submitted-card-confirmation"},{"title":"Record a submitted card confirmation (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/payment-methods/setup/{id}/submitted","href":"/v2/storefront-api-reference/buyer-billing/record-a-submitted-card-confirmation-admin"},{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payment-methods","href":"/v2/storefront-api-reference/buyer-billing/list-payment-methods"},{"title":"Remove a payment method (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /billing/payment-methods/{id}","href":"/v2/storefront-api-reference/buyer-billing/remove-a-payment-method-admin"},{"title":"Open a payment capture link","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /capture-links/{token}","href":"/v2/storefront-api-reference/buyer-billing/open-a-payment-capture-link"},{"title":"Manually retry the outstanding failed charge (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/payment-methods/pay-now","href":"/v2/storefront-api-reference/buyer-billing/manually-retry-the-outstanding-failed-charge-admin"},{"title":"Get invoice activity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/invoice-activity","href":"/v2/storefront-api-reference/buyer-billing/get-invoice-activity"},{"title":"List fee invoices","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/fee-invoices","href":"/v2/storefront-api-reference/buyer-billing/list-fee-invoices"},{"title":"Get fee invoice","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/fee-invoices/{invoiceNumber}","href":"/v2/storefront-api-reference/buyer-billing/get-fee-invoice"}]},{"group":"Storefront Billing","pages":[{"title":"Get the organization IU Rate Card offer and acceptance state (legacy v2 Seller Account route)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/storefront-rate-card","href":"/v2/storefront-api-reference/storefront-billing/get-the-organization-iu-rate-card-offer-and-acceptance-state-legacy-v2-seller-account-route"},{"title":"Accept an exact organization IU Rate Card offer (legacy v2 Seller Account route)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/storefront-rate-card/accept","href":"/v2/storefront-api-reference/storefront-billing/accept-an-exact-organization-iu-rate-card-offer-legacy-v2-seller-account-route"},{"title":"Get payout activity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payout-activity","href":"/v2/storefront-api-reference/storefront-billing/get-payout-activity"},{"title":"Get billing config","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing","href":"/v2/storefront-api-reference/storefront-billing/get-billing-config"},{"title":"Update billing configuration (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /billing","href":"/v2/storefront-api-reference/storefront-billing/update-billing-configuration-admin"},{"title":"Set payout details (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /billing/payout-details","href":"/v2/storefront-api-reference/storefront-billing/set-payout-details-admin"},{"title":"List payout payees","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payees","href":"/v2/storefront-api-reference/storefront-billing/list-payout-payees"},{"title":"Set payout payee (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /billing/payees","href":"/v2/storefront-api-reference/storefront-billing/set-payout-payee-admin"},{"title":"List billing accounts","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/accounts","href":"/v2/storefront-api-reference/storefront-billing/list-billing-accounts"}]},{"group":"Storefront Ad Server Buyer Routing","pages":[{"title":"Get ad server source sandbox-account readiness","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/sandbox-account","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/get-ad-server-source-sandbox-account-readiness"},{"title":"Ensure ad server source sandbox account exists","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/sandbox-account/ensure","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/ensure-ad-server-source-sandbox-account-exists"},{"title":"List adapter advertisers","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/advertisers","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/list-adapter-advertisers"},{"title":"List cached GAM advertisers","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/gam/advertisers","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/list-cached-gam-advertisers"},{"title":"Ensure a GAM advertiser exists","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/gam/advertisers/ensure","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/ensure-a-gam-advertiser-exists"},{"title":"Set default advertiser","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/default-advertiser","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/set-default-advertiser"},{"title":"Set default GAM advertiser","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/gam/default-advertiser","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/set-default-gam-advertiser"},{"title":"List buyer advertiser mappings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/buyer-advertiser-mappings","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/list-buyer-advertiser-mappings"}]},{"group":"Storefront Ad Server Catalog","pages":[{"title":"List products for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/products","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-products-for-an-ad-server-source"},{"title":"Create a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/products","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/create-a-product-for-an-ad-server-source"},{"title":"Validate a product draft for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/products:validate","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/validate-a-product-draft-for-an-ad-server-source"},{"title":"Get a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/get-a-product-for-an-ad-server-source"},{"title":"Update a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/update-a-product-for-an-ad-server-source"},{"title":"Delete a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/delete-a-product-for-an-ad-server-source"},{"title":"Change only the named fields of a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/change-only-the-named-fields-of-a-product-for-an-ad-server-source"},{"title":"List signals for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/signals","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-signals-for-an-ad-server-source"},{"title":"Create or dry-run a signal for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/signals","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/create-or-dry-run-a-signal-for-an-ad-server-source"},{"title":"Get signal capabilities for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/signals/adapter-capabilities","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/get-signal-capabilities-for-an-ad-server-source"},{"title":"List ad-server targeting for signal authoring","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/signals/candidates","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-ad-server-targeting-for-signal-authoring"},{"title":"Get inventory capabilities for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/inventory/capabilities","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/get-inventory-capabilities-for-an-ad-server-source"},{"title":"List publisher properties for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/inventory/publisher-properties","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-publisher-properties-for-an-ad-server-source"},{"title":"Search inventory selectors for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/inventory/selectors","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/search-inventory-selectors-for-an-ad-server-source"},{"title":"List creative formats for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/creative-formats","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-creative-formats-for-an-ad-server-source"}]},{"group":"Signals","pages":[{"title":"List signals","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /signals","href":"/v2/storefront-api-reference/signals/list-signals"},{"title":"Create signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /signals","href":"/v2/storefront-api-reference/signals/create-signal"},{"title":"Get signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /signals/{signalId}","href":"/v2/storefront-api-reference/signals/get-signal"},{"title":"Update signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /signals/{signalId}","href":"/v2/storefront-api-reference/signals/update-signal"},{"title":"Delete signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /signals/{signalId}","href":"/v2/storefront-api-reference/signals/delete-signal"}]},{"group":"Storefront Agents","pages":[{"title":"List registered agents","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /agents","href":"/v2/storefront-api-reference/storefront-agents/list-registered-agents"}]},{"group":"Storefront Activity","pages":[{"title":"List storefront activity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /audit-logs","href":"/v2/storefront-api-reference/storefront-activity/list-storefront-activity"}]},{"group":"Products","pages":[{"title":"List eligible products for media buys","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /products","href":"/v2/storefront-api-reference/products/list-eligible-products-for-media-buys"}]},{"group":"MCP","pages":[{"title":"Initialize MCP session","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /","href":"/v2/storefront-api-reference/mcp/initialize-mcp-session"},{"title":"Make API call via MCP","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /api-call","href":"/v2/storefront-api-reference/mcp/make-api-call-via-mcp"},{"title":"Ask about API capabilities","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /ask-about-capability","href":"/v2/storefront-api-reference/mcp/ask-about-api-capabilities"}]}]},{"group":"Release Notes","icon":"clock-rotate-left","pages":[{"title":"Developer Release Notes","sidebarTitle":"Release notes","icon":"clock-rotate-left","href":"/v2/developer-reference/changelog"}]}]},{"version":"v3","default":true,"pages":[{"title":"v3","href":"/v3/overview"}]}]}]},"basePath":"","title":"Get reporting - Apostra","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}