Variable ProductSchemaConst
ProductSchema: ZodObject<
{
product_id: ZodString;
name: ZodString;
description: ZodString;
publisher_properties: ZodArray<
ZodUnion<
readonly [
ZodObject<
{ publisher_domain: ZodString; selection_type: ZodLiteral<"all"> },
$loose,
>,
ZodObject<
{
publisher_domain: ZodString;
selection_type: ZodLiteral<"by_id">;
property_ids: ZodArray<ZodString>;
},
$loose,
>,
ZodObject<
{
publisher_domain: ZodString;
selection_type: ZodLiteral<"by_tag">;
property_tags: ZodArray<ZodString>;
},
$loose,
>,
],
>,
>;
channels: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"display">,
ZodLiteral<"olv">,
ZodLiteral<"social">,
ZodLiteral<"search">,
ZodLiteral<"ctv">,
ZodLiteral<"linear_tv">,
ZodLiteral<"radio">,
ZodLiteral<"streaming_audio">,
ZodLiteral<"podcast">,
ZodLiteral<"dooh">,
ZodLiteral<"ooh">,
ZodLiteral<"print">,
ZodLiteral<"cinema">,
ZodLiteral<"email">,
ZodLiteral<"gaming">,
ZodLiteral<"retail_media">,
ZodLiteral<"influencer">,
ZodLiteral<"affiliate">,
ZodLiteral<"product_placement">,
ZodLiteral<"sponsored_intelligence">,
],
>,
>,
>;
format_ids: ZodArray<
ZodObject<
{
agent_url: ZodString;
id: ZodString;
width: ZodOptional<ZodNumber>;
height: ZodOptional<ZodNumber>;
duration_ms: ZodOptional<ZodNumber>;
},
$loose,
>,
>;
placements: ZodOptional<
ZodArray<
ZodObject<
{
placement_id: ZodString;
name: ZodString;
description: ZodOptional<ZodString>;
tags: ZodOptional<ZodArray<ZodString>>;
format_ids: ZodOptional<
ZodArray<
ZodObject<
{
agent_url: ZodString;
id: ZodString;
width: ZodOptional<(...)>;
height: ZodOptional<(...)>;
duration_ms: ZodOptional<(...)>;
},
$loose,
>,
>,
>;
},
$loose,
>,
>,
>;
delivery_type: ZodUnion<
readonly [ZodLiteral<"guaranteed">, ZodLiteral<"non_guaranteed">],
>;
exclusivity: ZodOptional<
ZodUnion<
readonly [
ZodLiteral<"none">,
ZodLiteral<"category">,
ZodLiteral<"exclusive">,
],
>,
>;
pricing_options: ZodArray<
ZodUnion<
readonly [
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpm">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
max_bid: ZodOptional<ZodBoolean>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"vcpm">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
max_bid: ZodOptional<ZodBoolean>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpc">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
max_bid: ZodOptional<ZodBoolean>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpcv">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
max_bid: ZodOptional<ZodBoolean>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpv">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
max_bid: ZodOptional<ZodBoolean>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
parameters: ZodObject<
{ view_threshold: ZodUnion<readonly [(...), (...)]> },
$loose,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpp">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
parameters: ZodObject<
{
demographic_system: ZodOptional<ZodUnion<(...)>>;
demographic: ZodString;
min_points: ZodOptional<ZodNumber>;
},
$loose,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpa">;
event_type: ZodUnion<
readonly [
ZodLiteral<"page_view">,
ZodLiteral<"view_content">,
ZodLiteral<"select_content">,
ZodLiteral<"select_item">,
ZodLiteral<"search">,
ZodLiteral<"share">,
ZodLiteral<"add_to_cart">,
ZodLiteral<"remove_from_cart">,
ZodLiteral<"viewed_cart">,
ZodLiteral<"add_to_wishlist">,
ZodLiteral<"initiate_checkout">,
ZodLiteral<"add_payment_info">,
ZodLiteral<"purchase">,
ZodLiteral<"refund">,
ZodLiteral<"lead">,
ZodLiteral<"qualify_lead">,
ZodLiteral<"close_convert_lead">,
ZodLiteral<"disqualify_lead">,
ZodLiteral<"complete_registration">,
ZodLiteral<"subscribe">,
ZodLiteral<"start_trial">,
ZodLiteral<"app_install">,
ZodLiteral<"app_launch">,
ZodLiteral<"contact">,
ZodLiteral<"schedule">,
ZodLiteral<"donate">,
ZodLiteral<"submit_application">,
ZodLiteral<"custom">,
],
>;
custom_event_name: ZodOptional<ZodString>;
event_source_id: ZodOptional<ZodString>;
currency: ZodString;
fixed_price: ZodNumber;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"flat_rate">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
parameters: ZodOptional<
ZodObject<
{
type: ZodLiteral<(...)>;
sov_percentage: ZodOptional<(...)>;
loop_duration_seconds: ZodOptional<(...)>;
min_plays_per_hour: ZodOptional<(...)>;
venue_package: ZodOptional<(...)>;
duration_hours: ZodOptional<(...)>;
daypart: ZodOptional<(...)>;
estimated_impressions: ZodOptional<(...)>;
},
$loose,
>,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"time">;
currency: ZodString;
fixed_price: ZodOptional<ZodNumber>;
floor_price: ZodOptional<ZodNumber>;
price_guidance: ZodOptional<
ZodObject<
{
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$loose,
>,
>;
parameters: ZodObject<
{
time_unit: ZodUnion<readonly [(...), (...), (...), (...)]>;
min_duration: ZodOptional<ZodNumber>;
max_duration: ZodOptional<ZodNumber>;
},
$loose,
>;
min_spend_per_package: ZodOptional<ZodNumber>;
price_breakdown: ZodOptional<
ZodObject<
{ list_price: ZodNumber; adjustments: ZodArray<(...)> },
$loose,
>,
>;
eligible_adjustments: ZodOptional<
ZodArray<ZodUnion<readonly [(...), (...), (...), (...)]>>,
>;
},
$loose,
>,
],
>,
>;
forecast: ZodOptional<
ZodObject<
{
points: ZodArray<
ZodObject<
{
label: ZodOptional<ZodString>;
budget: ZodOptional<ZodNumber>;
metrics: ZodIntersection<
ZodRecord<ZodString, ZodObject<(...), (...)>>,
ZodObject<
{
audience_size: ...;
reach: ...;
frequency: ...;
impressions: ...;
clicks: ...;
spend: ...;
views: ...;
completed_views: ...;
grps: ...;
engagements: ...;
follows: ...;
saves: ...;
profile_visits: ...;
measured_impressions: ...;
downloads: ...;
plays: ...;
},
$loose,
>,
>;
},
$loose,
>,
>;
forecast_range_unit: ZodOptional<
ZodUnion<
readonly [
ZodLiteral<"spend">,
ZodLiteral<"availability">,
ZodLiteral<"reach_freq">,
ZodLiteral<"weekly">,
ZodLiteral<"daily">,
ZodLiteral<"clicks">,
ZodLiteral<"conversions">,
ZodLiteral<"package">,
],
>,
>;
method: ZodUnion<
readonly [
ZodLiteral<"estimate">,
ZodLiteral<"modeled">,
ZodLiteral<"guaranteed">,
],
>;
currency: ZodString;
demographic_system: ZodOptional<
ZodUnion<
readonly [
ZodLiteral<"nielsen">,
ZodLiteral<"barb">,
ZodLiteral<"agf">,
ZodLiteral<"oztam">,
ZodLiteral<"mediametrie">,
ZodLiteral<"custom">,
],
>,
>;
demographic: ZodOptional<ZodString>;
measurement_source: ZodOptional<ZodString>;
reach_unit: ZodOptional<
ZodUnion<
readonly [
ZodLiteral<"individuals">,
ZodLiteral<"households">,
ZodLiteral<"devices">,
ZodLiteral<"accounts">,
ZodLiteral<"cookies">,
ZodLiteral<"custom">,
],
>,
>;
generated_at: ZodOptional<ZodISODateTime>;
valid_until: ZodOptional<ZodISODateTime>;
ext: ZodOptional<ZodObject<{}, $loose>>;
},
$loose,
>,
>;
outcome_measurement: ZodOptional<
ZodObject<
{
type: ZodString;
attribution: ZodString;
window: ZodOptional<
ZodObject<
{
interval: ZodNumber;
unit: ZodUnion<
readonly [
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
],
>;
},
$loose,
>,
>;
reporting: ZodString;
},
$loose,
>,
>;
delivery_measurement: ZodOptional<
ZodObject<
{ provider: ZodString; notes: ZodOptional<ZodString> },
$loose,
>,
>;
measurement_terms: ZodOptional<
ZodObject<
{
billing_measurement: ZodOptional<
ZodObject<
{
vendor: ZodObject<
{
domain: ZodString;
brand_id: ZodOptional<(...)>;
industries: ZodOptional<(...)>;
data_subject_contestation: ZodOptional<(...)>;
},
$loose,
>;
max_variance_percent: ZodOptional<ZodNumber>;
measurement_window: ZodOptional<ZodString>;
},
$loose,
>,
>;
makegood_policy: ZodOptional<
ZodObject<
{
available_remedies: ZodArray<
ZodUnion<readonly [(...), (...), (...)]>,
>;
},
$loose,
>,
>;
},
$loose,
>,
>;
performance_standards: ZodOptional<
ZodArray<
ZodObject<
{
metric: ZodUnion<
readonly [
ZodLiteral<"viewability">,
ZodLiteral<"ivt">,
ZodLiteral<"completion_rate">,
ZodLiteral<"brand_safety">,
ZodLiteral<"attention_score">,
],
>;
threshold: ZodNumber;
standard: ZodOptional<
ZodUnion<readonly [ZodLiteral<"mrc">, ZodLiteral<"groupm">]>,
>;
vendor: ZodObject<
{
domain: ZodString;
brand_id: ZodOptional<ZodString>;
industries: ZodOptional<ZodArray<ZodString>>;
data_subject_contestation: ZodOptional<
ZodRecord<ZodString, ZodUnknown>,
>;
},
$loose,
>;
},
$loose,
>,
>,
>;
cancellation_policy: ZodOptional<
ZodObject<
{
notice_period: ZodObject<
{
interval: ZodNumber;
unit: ZodUnion<
readonly [
ZodLiteral<"seconds">,
ZodLiteral<"minutes">,
ZodLiteral<"hours">,
ZodLiteral<"days">,
ZodLiteral<"campaign">,
],
>;
},
$loose,
>;
cancellation_fee: ZodObject<
{
type: ZodUnion<
readonly [
ZodLiteral<"percent_remaining">,
ZodLiteral<"full_commitment">,
ZodLiteral<"fixed_fee">,
ZodLiteral<"none">,
],
>;
rate: ZodOptional<ZodNumber>;
amount: ZodOptional<ZodNumber>;
},
$loose,
>;
},
$loose,
>,
>;
reporting_capabilities: ZodObject<
{
available_reporting_frequencies: ZodArray<
ZodUnion<
readonly [
ZodLiteral<"hourly">,
ZodLiteral<"daily">,
ZodLiteral<"monthly">,
],
>,
>;
expected_delay_minutes: ZodNumber;
timezone: ZodString;
supports_webhooks: ZodBoolean;
available_metrics: ZodArray<
ZodUnion<
readonly [
ZodLiteral<"impressions">,
ZodLiteral<"spend">,
ZodLiteral<"clicks">,
ZodLiteral<"ctr">,
ZodLiteral<"video_completions">,
ZodLiteral<"completion_rate">,
ZodLiteral<"conversions">,
ZodLiteral<"conversion_value">,
ZodLiteral<"roas">,
ZodLiteral<"cost_per_acquisition">,
ZodLiteral<"new_to_brand_rate">,
ZodLiteral<"viewability">,
ZodLiteral<"engagement_rate">,
ZodLiteral<"views">,
ZodLiteral<"completed_views">,
ZodLiteral<"leads">,
ZodLiteral<"reach">,
ZodLiteral<"frequency">,
ZodLiteral<"grps">,
ZodLiteral<"quartile_data">,
ZodLiteral<"dooh_metrics">,
ZodLiteral<"cost_per_click">,
],
>,
>;
supports_creative_breakdown: ZodOptional<ZodBoolean>;
supports_keyword_breakdown: ZodOptional<ZodBoolean>;
supports_geo_breakdown: ZodOptional<
ZodObject<
{
country: ZodOptional<ZodBoolean>;
region: ZodOptional<ZodBoolean>;
metro: ZodOptional<ZodRecord<ZodString, ZodBoolean>>;
postal_area: ZodOptional<ZodRecord<ZodString, ZodBoolean>>;
},
$loose,
>,
>;
supports_device_type_breakdown: ZodOptional<ZodBoolean>;
supports_device_platform_breakdown: ZodOptional<ZodBoolean>;
supports_audience_breakdown: ZodOptional<ZodBoolean>;
supports_placement_breakdown: ZodOptional<ZodBoolean>;
date_range_support: ZodUnion<
readonly [ZodLiteral<"date_range">, ZodLiteral<"lifetime_only">],
>;
measurement_windows: ZodOptional<
ZodArray<
ZodObject<
{
window_id: ZodString;
description: ZodOptional<ZodString>;
duration_days: ZodNumber;
expected_availability_days: ZodOptional<ZodNumber>;
is_guarantee_basis: ZodOptional<ZodBoolean>;
},
$loose,
>,
>,
>;
},
$loose,
>;
creative_policy: ZodOptional<
ZodObject<
{
co_branding: ZodUnion<
readonly [
ZodLiteral<"required">,
ZodLiteral<"optional">,
ZodLiteral<"none">,
],
>;
landing_page: ZodUnion<
readonly [
ZodLiteral<"any">,
ZodLiteral<"retailer_site_only">,
ZodLiteral<"must_include_retailer">,
],
>;
templates_available: ZodBoolean;
provenance_required: ZodOptional<ZodBoolean>;
},
$loose,
>,
>;
is_custom: ZodOptional<ZodBoolean>;
property_targeting_allowed: ZodOptional<ZodBoolean>;
data_provider_signals: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodObject<
{
data_provider_domain: ZodString;
selection_type: ZodLiteral<"all">;
},
$loose,
>,
ZodObject<
{
data_provider_domain: ZodString;
selection_type: ZodLiteral<"by_id">;
signal_ids: ZodArray<ZodString>;
},
$loose,
>,
ZodObject<
{
data_provider_domain: ZodString;
selection_type: ZodLiteral<"by_tag">;
signal_tags: ZodArray<ZodString>;
},
$loose,
>,
],
>,
>,
>;
signal_targeting_allowed: ZodOptional<ZodBoolean>;
catalog_types: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"offering">,
ZodLiteral<"product">,
ZodLiteral<"inventory">,
ZodLiteral<"store">,
ZodLiteral<"promotion">,
ZodLiteral<"hotel">,
ZodLiteral<"flight">,
ZodLiteral<"job">,
ZodLiteral<"vehicle">,
ZodLiteral<"real_estate">,
ZodLiteral<"education">,
ZodLiteral<"destination">,
ZodLiteral<"app">,
],
>,
>,
>;
metric_optimization: ZodOptional<
ZodObject<
{
supported_metrics: ZodArray<
ZodUnion<
readonly [
ZodLiteral<"clicks">,
ZodLiteral<"views">,
ZodLiteral<"completed_views">,
ZodLiteral<"viewed_seconds">,
ZodLiteral<"attention_seconds">,
ZodLiteral<"attention_score">,
ZodLiteral<"engagements">,
ZodLiteral<"follows">,
ZodLiteral<"saves">,
ZodLiteral<"profile_visits">,
ZodLiteral<"reach">,
],
>,
>;
supported_reach_units: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"individuals">,
ZodLiteral<"households">,
ZodLiteral<"devices">,
ZodLiteral<"accounts">,
ZodLiteral<"cookies">,
ZodLiteral<"custom">,
],
>,
>,
>;
supported_view_durations: ZodOptional<ZodArray<ZodNumber>>;
supported_targets: ZodOptional<
ZodArray<
ZodUnion<
readonly [ZodLiteral<"cost_per">, ZodLiteral<"threshold_rate">],
>,
>,
>;
},
$loose,
>,
>;
max_optimization_goals: ZodOptional<ZodNumber>;
measurement_readiness: ZodOptional<
ZodObject<
{
status: ZodUnion<
readonly [
ZodLiteral<"insufficient">,
ZodLiteral<"minimum">,
ZodLiteral<"good">,
ZodLiteral<"excellent">,
],
>;
required_event_types: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"page_view">,
ZodLiteral<"view_content">,
ZodLiteral<"select_content">,
ZodLiteral<"select_item">,
ZodLiteral<"search">,
ZodLiteral<"share">,
ZodLiteral<"add_to_cart">,
ZodLiteral<"remove_from_cart">,
ZodLiteral<"viewed_cart">,
ZodLiteral<"add_to_wishlist">,
ZodLiteral<"initiate_checkout">,
ZodLiteral<"add_payment_info">,
ZodLiteral<"purchase">,
ZodLiteral<"refund">,
ZodLiteral<"lead">,
ZodLiteral<"qualify_lead">,
ZodLiteral<"close_convert_lead">,
ZodLiteral<"disqualify_lead">,
ZodLiteral<"complete_registration">,
ZodLiteral<"subscribe">,
ZodLiteral<"start_trial">,
ZodLiteral<"app_install">,
ZodLiteral<"app_launch">,
ZodLiteral<"contact">,
ZodLiteral<"schedule">,
ZodLiteral<"donate">,
ZodLiteral<"submit_application">,
ZodLiteral<"custom">,
],
>,
>,
>;
missing_event_types: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"page_view">,
ZodLiteral<"view_content">,
ZodLiteral<"select_content">,
ZodLiteral<"select_item">,
ZodLiteral<"search">,
ZodLiteral<"share">,
ZodLiteral<"add_to_cart">,
ZodLiteral<"remove_from_cart">,
ZodLiteral<"viewed_cart">,
ZodLiteral<"add_to_wishlist">,
ZodLiteral<"initiate_checkout">,
ZodLiteral<"add_payment_info">,
ZodLiteral<"purchase">,
ZodLiteral<"refund">,
ZodLiteral<"lead">,
ZodLiteral<"qualify_lead">,
ZodLiteral<"close_convert_lead">,
ZodLiteral<"disqualify_lead">,
ZodLiteral<"complete_registration">,
ZodLiteral<"subscribe">,
ZodLiteral<"start_trial">,
ZodLiteral<"app_install">,
ZodLiteral<"app_launch">,
ZodLiteral<"contact">,
ZodLiteral<"schedule">,
ZodLiteral<"donate">,
ZodLiteral<"submit_application">,
ZodLiteral<"custom">,
],
>,
>,
>;
issues: ZodOptional<
ZodArray<
ZodObject<
{
severity: ZodUnion<readonly [(...), (...), (...)]>;
message: ZodString;
},
$loose,
>,
>,
>;
notes: ZodOptional<ZodString>;
},
$loose,
>,
>;
conversion_tracking: ZodOptional<
ZodObject<
{
action_sources: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"website">,
ZodLiteral<"app">,
ZodLiteral<"offline">,
ZodLiteral<"phone_call">,
ZodLiteral<"chat">,
ZodLiteral<"email">,
ZodLiteral<"in_store">,
ZodLiteral<"system_generated">,
ZodLiteral<"other">,
],
>,
>,
>;
supported_targets: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"cost_per">,
ZodLiteral<"per_ad_spend">,
ZodLiteral<"maximize_value">,
],
>,
>,
>;
platform_managed: ZodOptional<ZodBoolean>;
},
$loose,
>,
>;
catalog_match: ZodOptional<
ZodObject<
{
matched_gtins: ZodOptional<ZodArray<ZodString>>;
matched_ids: ZodOptional<ZodArray<ZodString>>;
matched_count: ZodOptional<ZodNumber>;
submitted_count: ZodNumber;
},
$loose,
>,
>;
brief_relevance: ZodOptional<ZodString>;
expires_at: ZodOptional<ZodISODateTime>;
product_card: ZodOptional<
ZodObject<
{
format_id: ZodObject<
{
agent_url: ZodString;
id: ZodString;
width: ZodOptional<ZodNumber>;
height: ZodOptional<ZodNumber>;
duration_ms: ZodOptional<ZodNumber>;
},
$loose,
>;
manifest: ZodObject<{}, $loose>;
},
$loose,
>,
>;
product_card_detailed: ZodOptional<
ZodObject<
{
format_id: ZodObject<
{
agent_url: ZodString;
id: ZodString;
width: ZodOptional<ZodNumber>;
height: ZodOptional<ZodNumber>;
duration_ms: ZodOptional<ZodNumber>;
},
$loose,
>;
manifest: ZodObject<{}, $loose>;
},
$loose,
>,
>;
collections: ZodOptional<
ZodArray<
ZodObject<
{ publisher_domain: ZodString; collection_ids: ZodArray<ZodString> },
$loose,
>,
>,
>;
collection_targeting_allowed: ZodOptional<ZodBoolean>;
installments: ZodOptional<
ZodArray<
ZodObject<
{
installment_id: ZodString;
collection_id: ZodOptional<ZodString>;
name: ZodOptional<ZodString>;
season: ZodOptional<ZodString>;
installment_number: ZodOptional<ZodString>;
scheduled_at: ZodOptional<ZodISODateTime>;
status: ZodOptional<
ZodUnion<
readonly [
ZodLiteral<"scheduled">,
ZodLiteral<"tentative">,
ZodLiteral<"live">,
ZodLiteral<"postponed">,
ZodLiteral<"cancelled">,
ZodLiteral<"aired">,
ZodLiteral<"published">,
],
>,
>;
duration_seconds: ZodOptional<ZodNumber>;
flexible_end: ZodOptional<ZodBoolean>;
valid_until: ZodOptional<ZodISODateTime>;
content_rating: ZodOptional<
ZodObject<
{
system: ZodUnion<
readonly [
(...),
(...),
(...),
(...),
(...),
(...),
(...),
(...),
(...),
(...),
(...),
],
>;
rating: ZodString;
},
$loose,
>,
>;
topics: ZodOptional<ZodArray<ZodString>>;
special: ZodOptional<
ZodObject<
{
name: ZodString;
category: ZodOptional<ZodUnion<(...)>>;
starts: ZodOptional<ZodISODateTime>;
ends: ZodOptional<ZodISODateTime>;
},
$loose,
>,
>;
guest_talent: ZodOptional<
ZodArray<
ZodObject<
{
role: ZodUnion<(...)>;
name: ZodString;
brand_url: ZodOptional<(...)>;
},
$loose,
>,
>,
>;
ad_inventory: ZodOptional<
ZodObject<
{
expected_breaks: ZodNumber;
total_ad_seconds: ZodOptional<ZodNumber>;
max_ad_duration_seconds: ZodOptional<ZodNumber>;
unplanned_breaks: ZodOptional<ZodBoolean>;
supported_formats: ZodOptional<ZodArray<(...)>>;
},
$loose,
>,
>;
deadlines: ZodOptional<
ZodObject<
{
booking_deadline: ZodOptional<ZodISODateTime>;
cancellation_deadline: ZodOptional<ZodISODateTime>;
material_deadlines: ZodOptional<ZodArray<(...)>>;
},
$loose,
>,
>;
derivative_of: ZodOptional<
ZodObject<
{
installment_id: ZodString;
type: ZodUnion<readonly [(...), (...), (...), (...), (...)]>;
},
$loose,
>,
>;
ext: ZodOptional<ZodObject<{}, $loose>>;
},
$loose,
>,
>,
>;
enforced_policies: ZodOptional<ZodArray<ZodString>>;
trusted_match: ZodOptional<
ZodObject<
{
context_match: ZodBoolean;
identity_match: ZodOptional<ZodBoolean>;
response_types: ZodOptional<
ZodArray<
ZodUnion<
readonly [
ZodLiteral<"activation">,
ZodLiteral<"catalog_items">,
ZodLiteral<"creative">,
ZodLiteral<"deal">,
],
>,
>,
>;
dynamic_brands: ZodOptional<ZodBoolean>;
providers: ZodOptional<
ZodArray<
ZodObject<
{
agent_url: ZodString;
context_match: ZodOptional<ZodBoolean>;
identity_match: ZodOptional<ZodBoolean>;
countries: ZodOptional<ZodArray<(...)>>;
uid_types: ZodOptional<ZodArray<(...)>>;
},
$loose,
>,
>,
>;
},
$loose,
>,
>;
material_submission: ZodOptional<
ZodObject<
{
url: ZodOptional<ZodString>;
email: ZodOptional<ZodEmail>;
instructions: ZodOptional<ZodString>;
ext: ZodOptional<ZodObject<{}, $loose>>;
},
$loose,
>,
>;
ext: ZodOptional<ZodObject<{}, $loose>>;
},
$loose,
> = ...