verve-metadata
verve-metadata is the JSON every Ad in a GET /v1alpha2/ads response carries in its Extension of that type, inside CDATA. Keys are the snake_case field names below. A key with no value is left out. Ignore keys you do not recognise: new ones can appear, and so can enum values.
Download the JSON Schema (draft 2020-12) to validate a payload in your own tests. The expires_at field uses the date-time format, so the validator must support formats. In ajv, add ajv-formats.
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | request_id groups the ads of one /ads response, for correlation and debugging. Always present. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
campaign_id | string | campaign_id is the campaign of that flight, for attribution and debugging. Absent when the ad has none. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expires_at | stringformat: date-time | expires_at is when the ad stops being valid, as an RFC 3339 timestamp in UTC, to the whole second. Drop the ad at slot time once past it. An online response carries a much shorter horizon than an offline one. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
flight_id | string | flight_id is the Verve flight behind the ad, for attribution. Absent when the ad comes from no Verve flight. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source | string | source is the kind of source that served the ad: Verve's own ad server, an SSP or a CMS. Known values: SOURCE_TYPE_AD_SERVERSOURCE_TYPE_SSPSOURCE_TYPE_CMS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source_id | string | source_id is the specific source the ad came from, such as one CMS, SSP or ad server. Offline, group stored ads by it to keep the player's source mix. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
audience | object | audience is the flight's dynamic targeting, for offline matching against the player's detected shoppers, cart and weather. Absent for untargeted ads; an ad with no audience matches everyone. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Audience is the targeting of an ad. An ad matches when any one group matches. A group matches when all its conditions match.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
frequency_caps | array of object | frequency_caps are the flight's per-player play limits, for the player to enforce offline. Every entry applies at once. Count plays per flight_id, never per ad. Absent for uncapped flights and on online responses. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FrequencyCap limits how often one player may show the flight in one window.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||