Variable ProductSchemaConst
ProductSchema: ZodObject<
{
product_id: ZodString;
name: ZodString;
description: ZodString;
publisher_properties: ZodTuple<
[
ZodUnion<
readonly [
ZodObject<
{ publisher_domain: ZodString; selection_type: ZodLiteral<"all"> },
$strip,
>,
ZodObject<
{
publisher_domain: ZodString;
selection_type: ZodLiteral<"by_id">;
property_ids: ZodTuple<[ZodString], ZodString>;
},
$strip,
>,
ZodObject<
{
publisher_domain: ZodString;
selection_type: ZodLiteral<"by_tag">;
property_tags: ZodTuple<[ZodString], ZodString>;
},
$strip,
>,
],
>,
],
ZodUnion<
readonly [
ZodObject<
{ publisher_domain: ZodString; selection_type: ZodLiteral<"all"> },
$strip,
>,
ZodObject<
{
publisher_domain: ZodString;
selection_type: ZodLiteral<"by_id">;
property_ids: ZodTuple<[ZodString], ZodString>;
},
$strip,
>,
ZodObject<
{
publisher_domain: ZodString;
selection_type: ZodLiteral<"by_tag">;
property_tags: ZodTuple<[ZodString], ZodString>;
},
$strip,
>,
],
>,
>;
format_ids: ZodArray<
ZodObject<
{
agent_url: ZodString;
id: ZodString;
width: ZodOptional<ZodNullable<ZodNumber>>;
height: ZodOptional<ZodNullable<ZodNumber>>;
duration_ms: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
>;
placements: ZodOptional<
ZodNullable<
ZodTuple<
[
ZodObject<
{
placement_id: ZodString;
name: ZodString;
description: ZodOptional<ZodNullable<ZodString>>;
format_ids: ZodOptional<ZodNullable<ZodTuple<(...), (...)>>>;
},
$strip,
>,
],
ZodObject<
{
placement_id: ZodString;
name: ZodString;
description: ZodOptional<ZodNullable<ZodString>>;
format_ids: ZodOptional<
ZodNullable<ZodTuple<[(...)], ZodObject<(...), (...)>>>,
>;
},
$strip,
>,
>,
>,
>;
delivery_type: ZodUnion<
readonly [ZodLiteral<"guaranteed">, ZodLiteral<"non_guaranteed">],
>;
pricing_options: ZodTuple<
[
ZodUnion<
readonly [
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpm">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpm">;
currency: ZodString;
is_fixed: ZodLiteral<false>;
price_guidance: ZodObject<
{
floor: ZodNumber;
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$strip,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"vcpm">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"vcpm">;
currency: ZodString;
is_fixed: ZodLiteral<false>;
price_guidance: ZodObject<
{
floor: ZodNumber;
p25: ZodOptional<(...)>;
p50: ZodOptional<(...)>;
p75: ZodOptional<(...)>;
p90: ZodOptional<(...)>;
},
$strip,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpc">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpcv">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpv">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
parameters: ZodObject<{ view_threshold: ZodUnion<(...)> }, $strip>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpp">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
parameters: ZodObject<
{ demographic: ZodString; min_points: ZodOptional<(...)> },
$strip,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"flat_rate">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
parameters: ZodOptional<ZodNullable<ZodObject<(...), (...)>>>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
],
>,
],
ZodUnion<
readonly [
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpm">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpm">;
currency: ZodString;
is_fixed: ZodLiteral<false>;
price_guidance: ZodObject<
{
floor: ZodNumber;
p25: ZodOptional<ZodNullable<(...)>>;
p50: ZodOptional<ZodNullable<(...)>>;
p75: ZodOptional<ZodNullable<(...)>>;
p90: ZodOptional<ZodNullable<(...)>>;
},
$strip,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"vcpm">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"vcpm">;
currency: ZodString;
is_fixed: ZodLiteral<false>;
price_guidance: ZodObject<
{
floor: ZodNumber;
p25: ZodOptional<ZodNullable<(...)>>;
p50: ZodOptional<ZodNullable<(...)>>;
p75: ZodOptional<ZodNullable<(...)>>;
p90: ZodOptional<ZodNullable<(...)>>;
},
$strip,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpc">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpcv">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpv">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
parameters: ZodObject<
{ view_threshold: ZodUnion<readonly [(...), (...)]> },
$strip,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"cpp">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
parameters: ZodObject<
{
demographic: ZodString;
min_points: ZodOptional<ZodNullable<(...)>>;
},
$strip,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
ZodObject<
{
pricing_option_id: ZodString;
pricing_model: ZodLiteral<"flat_rate">;
rate: ZodNumber;
currency: ZodString;
is_fixed: ZodLiteral<true>;
parameters: ZodOptional<
ZodNullable<
ZodObject<
{
duration_hours: ...;
sov_percentage: ...;
loop_duration_seconds: ...;
min_plays_per_hour: ...;
venue_package: ...;
estimated_impressions: ...;
daypart: ...;
},
$strip,
>,
>,
>;
min_spend_per_package: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>,
],
>,
>;
estimated_exposures: ZodOptional<ZodNullable<ZodNumber>>;
measurement: ZodOptional<
ZodNullable<
ZodObject<
{
type: ZodString;
attribution: ZodString;
window: ZodOptional<ZodNullable<ZodString>>;
reporting: ZodString;
},
$strip,
>,
>,
>;
delivery_measurement: ZodObject<
{ provider: ZodString; notes: ZodOptional<ZodNullable<ZodString>> },
$strip,
>;
reporting_capabilities: ZodOptional<
ZodNullable<
ZodObject<
{
available_reporting_frequencies: ZodTuple<
[
ZodUnion<
readonly [
ZodLiteral<(...)>,
ZodLiteral<(...)>,
ZodLiteral<(...)>,
],
>,
],
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<"viewability">,
ZodLiteral<"engagement_rate">,
],
>,
>;
},
$strip,
>,
>,
>;
creative_policy: ZodOptional<
ZodNullable<
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;
},
$strip,
>,
>,
>;
is_custom: ZodOptional<ZodNullable<ZodBoolean>>;
brief_relevance: ZodOptional<ZodNullable<ZodString>>;
expires_at: ZodOptional<ZodNullable<ZodString>>;
product_card: ZodOptional<
ZodNullable<
ZodObject<
{
format_id: ZodObject<
{
agent_url: ZodString;
id: ZodString;
width: ZodOptional<ZodNullable<ZodNumber>>;
height: ZodOptional<ZodNullable<ZodNumber>>;
duration_ms: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>;
manifest: ZodRecord<ZodString, ZodUnknown>;
},
$strip,
>,
>,
>;
product_card_detailed: ZodOptional<
ZodNullable<
ZodObject<
{
format_id: ZodObject<
{
agent_url: ZodString;
id: ZodString;
width: ZodOptional<ZodNullable<ZodNumber>>;
height: ZodOptional<ZodNullable<ZodNumber>>;
duration_ms: ZodOptional<ZodNullable<ZodNumber>>;
},
$strip,
>;
manifest: ZodRecord<ZodString, ZodUnknown>;
},
$strip,
>,
>,
>;
ext: ZodOptional<ZodNullable<ZodRecord<ZodString, ZodUnknown>>>;
},
$strip,
> = ...