Optionalproduct_Optionaloffer_Optionaltargeting_Optionalmedia_Optionalsuppress?: DurationCooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {"interval": 60, "unit": "minutes"} for a 1-hour cooldown). Preferred over suppress_minutes.
Optionalsuppress_minutes?: numberOptionalmax_impressions?: numberMaximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.
Optionalper?: ReachUnitEntity granularity for impression counting. Required when max_impressions is set.
Optionalwindow?: DurationTime window for the max_impressions cap (e.g. {"interval": 7, "unit": "days"} or {"interval": 1, "unit": "campaign"} for the full flight). Required when max_impressions is set.
Optionalrequired_Optionalrequired_Optionaloutcome_Optionalacceptance_OptionalcatalogOptionalpolicy_Optionalext
AdCP 3.2 structured discovery criteria. Referenced offer/overlay objects retain forward-compatible value typing, while the closed top-level and catalog-selector vocabularies remain type-safe today.