Proposed Placement API v4

📘

This is a preview and draft version of the Proposed Placement API v4. This document is subject to change as the implementation is completed, and will be updated accordingly.

Introduction

Proposal capability in MRM is enabled through a Network Function. Please contact your Account Manager if you are interested in this functionality.** A Proposed Placement acts as a proposed Sale, or a collection of Ad Units that share sales specifications, such as flight dates and content targeting. Business rules for a proposed sale can be configured via a proposed placement.

You can use this API to accomplish the following tasks:

  • List Proposed Placements
  • Create Proposed Placements
  • Update Proposed Placements
  • Show information about a Proposed Placement

Resources

URIs

EnvironmentURI
Staginghttps://api.stg.freewheel.tv/services/v4/proposed_placements
Productionhttps://api.freewheel.tv/services/v4/proposed_placements

API Attributes

Basic Attributes

All of the following attributes are included in basic GET requests.

NameTypeDescriptionCreatable?Updatable?Note
idFW_IDThe ID of the proposed placementNoNo
insertion_order_idFW_IDThe ID of the parent proposed insertion order which this placement belongs toNoNo
nameStringThe name of the proposed placementYesYesIf creating a placement without a name node, it will set the name as Untitled Placement by default. 

Default: Untitled Placement
descriptionStringThe description of the proposed placementYesYes
status['INACTIVE']Placement's statusNoNoThese values must be provided in ALL CAPITAL letters.
enable_canoeBooleanPlacement's statusNoYesDefault false
placement_type['NORMAL', 'MAKE_GOOD', 'PROMO']The type of the proposed placement.YesYesDefault NORMAL
external_idStringThe external ID of the proposed placementYesYes
scheduleCustom Data TypeThe schedule of the proposed placementYesYes
priceCustom Data TypeThe price of the proposed placementYesYes
budgetCustom Data TypeThe budget of the proposed placementYesYes
ad_productCustom Data TypeThe ad_product of the proposed placementNoYesUse Ad API v4 to create an ad for a placement. Ad unit packages are not supported.
deliveryCustom Data TypeThe delivery attributes of the proposed placementYesYes
overrideCustom Data TypeThe override setting of the proposed placementYesYes
exclusivityCustom Data TypeThe exclusivity of the proposed placementYesYes
soft_reserve_inventoryBooleanThe soft reserve setting of the proposed placementNoYes
industryCustom Data TypeThe industry of the proposed placementYesYes
restrict_delivery_to_campaign_tagsBoolean||The campaign tags setting of the proposed placementYesNoDefault: false
content_targetingCustom Data TypeThe content targeting of the proposed placementYesYes
custom_targetingCustom Data TypeThe custom targeting of the proposed placementYesYes
daypart_targetingCustom Data TypeThe daypart targeting of the proposed placementYesYes
geography_targetingCustom Data TypeThe geography targeting of the proposed placementYesYes
platform_targetingCustom Data TypeThe platform targeting of the proposed placementYesYes
audience_targetingCustom Data TypeThe audience targeting of the proposed placementYesYes
created_atDateTimeTime when the proposed placement was created.NoNo
updated_atDateTimeTime when the proposed placement was most recently updated.NoNo

Placement Schedule Attributes - Child Attributes

The date/time format should follow the ISO-8061 format in UTC timezone for create requests, update requests and get responses; for example: 2013-09-04T10:59:00Z.

NameTypeDescriptionCreatable?Updatable?Notes
start_timeDateTimeThe start time of the placementYesYes
end_timeDateTimeThe end time of the placementYesYesIf budget=evergreen with ongoing=true, end_time is optional and return blank
time_zoneStringThe time zone of the placementYesYesTo see a list of valid time zones click here.

Placement Price Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
price_model['CPM', 'FLAT_RATE']Placement price modelYesYes
flat_fee_amountFloatFlat feeYesYesValid and required when price_model = FLAT_RATE

Placement Budget Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
budget_model['CURRENCY_TARGET', 'IMPRESSION_TARGET', 'ALL_IMPRESSION', 'SOV', 'SOP', 'SOI', 'EVERGREEN', 'DEMOGRAPHIC_IMPRESSION_TARGET', 'DEMOGRAPHIC_CURRENCY_TARGET', 'CUSTOM_CURRENCY_TARGET', 'CUSTOM_EVENT_TARGET', 'CUSTOM_CURRENCY_TARGET']Budget model of the proposed placementYesYesDemographic / CPx / SOI is controlled by network functions
currencyFloatYesYesValid and required when budget_model = CURRENCY_TARGET
impressionIntegerYesYesValid and required when budget_model = IMPRESSION_TARGET
volume_capIntegerYesYesValid when budget_model = ALL_IMPRESSION.
volume_cap_type['NO_VOLUME_CAP', 'CUSTOM_VOLUME_CAP']YesYeswhen volume_cap_type = 'NO_VOLUME_CAP' ignore volume_cap
estimated_impression_goalIntegerYesYesValid when budget_model = 'ALL_IMPRESSION', 'SOV', 'SOP', 'SOI
share_percentageFloatYesYesValid and required when budget_model = SOV, SOP, SOI
ongoingBooleanYesYesValid when budget_model = EVERGREEN; Set as 'False' by default. When set as "True", the placement end_time will be cleared
on_target_currencyFloatYesYesValid and required when budget_model = DEMOGRAPHIC_CURRENCY_TARGET and CUSTOM_CURRENCY_TARGET
gross_currency_capFloatYesYesValid and required when budget_model = DEMOGRAPHIC_CURRENCY_TARGET and CUSTOM_CURRENCY_TARGET
on_target_impressionsIntegerYesYesValid and required when budget_model = DEMOGRAPHIC_IMPRESSION_TARGET
event_goalIntegerYesYesValid and required when budget_model = CUSTOM_EVENT_TARGET
gross_impression_capIntegerYesYesValid and required when budget_model = DEMOGRAPHIC_IMPRESSION_TARGET and CUSTOM_EVENT_TARGET
data_source['NIELSEN']YesYesValid and required when budget_model = DEMOGRAPHIC_IMPRESSION_TARGET/DEMOGRAPHIC_CURRENCY_TARGET
demographic_idsSet of Demographic FW IDThe ID of target demographicYesYesValid and required when budget_model = DEMOGRAPHIC_IMPRESSION_TARGET/DEMOGRAPHIC_CURRENCY_TARGET. Should refer to the demographics ID mapping file.
billable_event_idFW_IDYesYesValid and required when budget_model = CUSTOM_EVENT_TARGET and CUSTOM_CURRENCY_TARGET
over_deliveryFloatYesYesValid when budget_model is CURRENCY_TARGET, IMPRESSION_TARGET, DEMOGRAPHIC_IMPRESSION_TARGET, DEMOGRAPHIC_CURRENCY_TARGET, CUSTOM_EVENT_TARGET and CUSTOM_CURRENCY_TARGET. In GET request, when over_delivery_type = CUSTOM, return user defined over_delivery value. When over_delivery_type = DEFAULT, this refers to the network default over delivery value.
over_delivery_type['CUSTOM', 'DEFAULT']YesYesIn Create/Update request, when over_delivery_type = 'DEFAULT', we'll ignore any given over_delivery.

Placement Ad Product Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
ad_idsAd ID ArrayThe array of ad unit node IDsNoNo
link_method['NOT_LINKED', 'LINK_WHERE_POSSIBLE', 'ALL_LINKED']The link method of the placementNoYes
custom_setsAd product custom SetThe custom_set attributes which allow you to specify exactly which ad units should be linked togetherNoYesValid when link_method = 'NOT_LINKED'
advanced_linkingSet of Advanced LinkingThe advanced_linking which defines variant linking combinations of different linking styles between different ad unit typesNoYesValid when link_method = 'LINK_WHERE_POSSIBLE' or 'ALL_LINKED', and contains at least one instream Ad.

Ad Product Custom Set Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
ad_idsAd ID ArrayNoYes
link_method[ 'LINK_WHERE_POSSIBLE', 'ALL_LINKED']NoYes'NOT_LINKED' is invalid

Advanced Linking Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
instream[ 'ALL_LINKED', 'LINK_WHERE_POSSIBLE', 'NOT_LINKED']NoYes
display[ 'ALL_LINKED', 'LINK_WHERE_POSSIBLE', 'NOT_LINKED']NoYes
overlay[ 'ALL_LINKED', 'LINK_WHERE_POSSIBLE', 'NOT_LINKED']NoYes

Placement Delivery Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
priority[ 'GUARANTEED', 'PREEMPTIBLE' ]The priority of the placementYesYesPlease note the relationship with the budget model
pacing[ 'SMOOTH_AS', 'FAST_AS', 'FORECAST_INFORMED_DELIVERY_OPTIMIZATION', 'SMOOTH_OVER_LIFE_BUT_FAST_AS_WITHIN_A_DAY', 'CUSTOM_PACING']The pacing of the placementYesYesPlease note the relationship with the budget model SMOOTH_OVER_LIFE_BUT_FAST_AS_WITHIN_A_DAY should be controlled by DAILY_CAPPED_PACING
maximum_fido_pacing_rateInteger [1-10]YesYesValid and required when pacing = FORECAST_INFORMED_DELIVERY_OPTIMIZATION Set as "Network Default" by default and return blank
pacing_pointsSet of Pacing PointA set of pacing points, for each pacing point you must have a date and a percentageYesYesValid and required when pacing = CUSTOM_PACING. Return errors when set without placement schedule set or outside the placement schedule.
frequency_capsSet of Frequency Cap AttributesA set of frequency caps for each frequency cap you must have a value, type, and periodYesYesOnly 3 frequency caps are supported at most.
demographic_on_target_calculation[ 'DIRECT', 'COMPOSITIONAL', 'COMPOSITIONAL_INCLUDE_UNKNOWN_BANDS' ]Demographic On-Target CalculationYesYesValid when budget_model = DEMOGRAPHIC_IMPRESSION_TARGET and DEMOGRAPHIC_CURRENCY_TARGET; The default value is based on the first parameter of the network function RATINGS_BASED_SELLING
demographic_impression_steering_enabledBooleanEnable demographic impression steeringYesYesValid when budget_model = DEMOGRAPHIC_IMPRESSION_TARGET and DEMOGRAPHIC_CURRENCY_TARGET; The default value is based on the third parameter of the network function RATINGS_BASED_SELLING
level_to_optimize_for_profit[ 'NONE', 'LOWEST', 'MODERATE', 'HIGHEST' ]Level To Optimize For ProfitYesYesControlled by network function MARGIN_BASED_DELIVERY_CONFIG. The default value is based on the parameter of the network function MARGIN_BASED_DELIVERY_CONFIG
excess_inventory[ 'NETWORK_DEFAULT', '0%','5%','20%', '50%', '70%', 'UNLIMITED' ]YesYesSet NETWORK_DEFAULT by default
excess_inventory_precondition[ '0%','10%','20%', '30%'... '90%', 'UNLIMITED' ]YesYesControlled by network function MARGIN_BASED_DELIVERY_CONFIG. Be able to set excess_inventory_precondition only when 'Level To Optimize For Profit' is 'NONE' and 'Excess Inventory' not in ['0%', 'NETWORK_DEFAULT']. If a request is sent without the node or the node is empty, it will be set as “UNLIMITED” by default if excess inventory is “0%”, and set as “0” by default if excess inventory is set as greater than 0.
override_repeat_mode[ 'NETWORK_DEFAULT', 'REPEAT_EACH_BREAK','DO_NOT_REPEAT' ]YesYesSet 'NETWORK_DEFAULT' by default

Pacing Point Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
percentageFloat [0, 100]YesYes
dateDateTimeYesYesUses ISO-8061 time format in UTC timezone

Frequency Cap Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
valueIntegerThe cap valueYesYes
type[ 'IMPRESSION', 'PACKAGE' ]The cap typeYesYes
scope[ 'TIME', 'STREAM', 'CAMPAIGN', 'ASSET', 'SITE_SECTION' ]The cap period scopeYesYes
periodIntegerThe cap periodYesYesValid and required only when scope == 'TIME'

Placement Override Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Other Comments
mode[ 'ABOVE_PAYING_ADS', 'AMONGST_PAYING_ADS', 'BELOW_PAYING_ADS' ]The override modeYesYesValid and required when budget_model = CURRENCY_TARGET, IMPRESSION_TARGET, DEMOGRAPHIC_IMPRESSION_TARGET or DEMOGRAPHIC_CURRENCY_TARGET, CUSTOM_EVENT_TARGET and CUSTOM_CURRENCY_TARGET. When budget_model = EVERGREEN, can mode only be BELOW_PAYING_ADS and valud = -10
valueIntegerABOVE_PAYING_ADS: [11, 20] AMONGST_PAYING_ADS: [0, 100] BELOW_PAYING_ADS: [-10, -1]YesYesValid and required when budget_model = CURRENCY_TARGET, IMPRESSION_TARGET, DEMOGRAPHIC_IMPRESSION_TARGET or DEMOGRAPHIC_CURRENCY_TARGET, CUSTOM_EVENT_TARGET and CUSTOM_CURRENCY_TARGET When budget_model = EVERGREEN, can mode only be BELOW_PAYING_ADS and valud = -10
amongst_by[ 'ABSOLUTE_RANK', 'CPM' ]YesYesValid when mode = AMONGST_PAYING_ADS; Set 'CPM' by default 'ABSOLUTE_RANK' is controlled by NUM_COMPETING_AD_SCORE
precedence_level[ 'BELOW_NORMAL ', 'ABOVE_NORMAL', 'NORMAL', 'HIGH', 'HIGHEST' ]The precedence level of PlacementYesYesValid when budget_model = ALL_IMPRESSION or SOV Controlled by network function SPONSORSHIP_PRECEDENCE

Placement Exclusivity Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
level_of_exclusivity[ 'FULL', 'CUSTOM' ]The exclusivity level of the placementYesYesSet None by default and return blank
scope_of_exclusivity[ 'ALL_AD_UNITS', 'TARGETED_AD_UNITS', 'ADJACENT_ADS' ]The exclusivity scope of the placementYesYesADJACENT_ADS is valid only when level_of_exclusivity = CUSTOM
exemptions_uex[ 'CONTENT_SETTING_DICTATE', 'EXEMPT_FROM_UEX', 'NO_EXEMPT' ]The exemption UEX of the placementYesYesValid and required when budget model = ALL_IMPRESSION, SOV, SOP or SOI
custom_exclusivity_exemptionSet of Custom Exclusivity ExemptionThe customized scope of exclusivity of the placementYesYesValid and required when level_of_exclusivity = 'CUSTOM'

Custom Exclusivity Exemption Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
excludeSet of Excluded ItemThe Industries, Advertisers, Brands, Resellers, Campaigns, IOs, or Placements that are excluded from returning within the scope defined in scope_of_exclusivity.YesYes
exemptSet of Exempt ItemThe Industries, Advertisers, Brands, Resellers, Campaigns, IOs, or Placements that are exempt from returning within the scope defined in scope_of_exclusivity.YesYes

Excluded Items Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
idFW_IDItem idYesYes
type[ 'ALL_INDUSTRIES', 'MRM_INDUSTRY', 'INDUSTRY_GROUP', 'ADVERTISER', 'BRAND', 'RESELLER', 'CAMPAIGN', 'IO', 'PLACEMENT' ]Item typeYesYesWhen type = 'ALL_INDUSTRIES', id = -1
nameStringItem nameNoNo

Exempt Items Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?NotesOther Comments
idFW_IDItem idYesYes
type[ 'MRM_INDUSTRY', 'INDUSTRY_GROUP', 'ADVERTISER', 'BRAND', 'RESELLER', 'CAMPAIGN', 'IO', 'PLACEMENT', 'MUTUAL_EXEMPTED_PLACEMENT']Item typeYesYesWhen type = 'MUTUAL_EXEMPTED_PLACEMENT', id = -1
nameStringItem nameNoNo

Placement Industry Attributes - Child Attributes

NameTypeDescriptionCreatable?Updatable?Notes
mrm_industriesSet of mrm industryIncluded industriesYesYesRefer to the industry ID doc.
industry_groupsSet of industry groupIncluded industry groupsYesYesIf there are network specific industry groups, only allow to target those industry groups. Otherwise, return an error.

MRM Industry Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
idFW_IDYesYes

Industry Group Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
idFW_IDYesYes

Placement Content Targeting Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
included_itemsContent included itemsYesYesThe relationship between media items is OR.
excluded_itemssame format as included_itemsYesYesThe relationship between media items is OR.
setsContent setYesYes
relation_between_setsStringYesYesThe combination of relations (AND, OR) separated by commas; The number of relation_between_sets must equal to the number of sets minus 1; If there are 3 sets and a remaining set, the last relation_between_sets must be OR.

Content Set Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
nameStringNoNoReturn 'Set1', 'Set2', 'Set3', 'Remaining Items'
relation_in_set['AND', 'OR' ]YesYesFor the 4th set (Remaining Items), the relation_in_set much be OR.
child_tiemsContent child itemsYesYessame format as included_items

Content Included Items Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
idFW_IDYesYesReturn 'Set1', 'Set2', 'Set3', 'Remaining Items'
category[ 'VIDEO', 'VIDEO_SERIES', 'VIDEO_GROUP', 'SITE_SECTION', 'SITE', 'SITE_GROUP' ]YesYes
nameStringNoNo

Placement Custom Targeting Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
setsCustom setYesYes

Custom Set Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
nameStringNoNoReturn 'Set1', 'Set2', 'Set3'...
relation_in_set[ 'AND', 'OR' ]YesYesIf there are multiple sets, the relationship within a set can only be "OR"; If there is only one set with multiple key values, the relationship is required and can be "OR" or "AND"
key_valuesCustom key valuesYesYes

Custom Key Values Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
key_valueStringYesYesThe key value string which should contains “=”

Placement Daypart Targeting Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
time_zoneStringYesYesIncluding timezone referring to the wiki and 'RELATIVE', Refer to the timezone doc.
daypartsDaypart setYesYes

Daypart Set Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
repeats[ 'daily', 'weekly' ]YesYes
start_time[ ‘12 midnight’, ‘01:00AM’, ‘02:00AM’, ‘03:00AM’, ‘04:00AM’, ‘05:00AM’, ‘06:00AM’, ‘07:00AM’, ‘08:00AM’, ‘09:00AM’, ‘10:00AM’, ‘11:00AM’, ‘12 noon’, ‘01:00PM’, ‘02:00PM’, ‘03:00PM’, ‘04:00PM’, ‘05:00PM’, ‘06:00PM’, ‘07:00PM’, ‘08:00PM’, ‘09:00PM’, ‘10:00PM’, ‘11:00PM’ ]YesYes
end_time[ ‘01:00AM’, ’ 02:00AM ‘, ’ 03:00AM’, ’ 04:00AM’, ‘05:00AM’, ‘06:00AM’, ‘07:00AM’, ‘08:00AM’, ’ 09:00AM’, ‘10:00AM’, ‘11:00AM’, ‘12 NOON’, ‘01:00PM’, ’ 02:00PM ‘, ’ 03:00PM’, ‘04:00PM’, ‘05:00PM’, ‘06:00PM’, ’ 07:00PM’, ‘08:00PM’, ‘09:00PM’, ‘10:00PM’, ‘11:00PM’, '‘11:59PM’ ]YesYes
daysSet of days in week. Each day should be integer [1-7]YesYesValid and required when repeats = daily;
start_dayDay in week. Integer [1-7].YesYesValid and required when repeats = weekly;
end_dayDay in week. Integer [1-7].YesYesValid and required when repeats = weekly;

Placement Geography Targeting Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
included_itemsGeography included itemsYesYesThe relationship between geography items is OR.
excluded_itemssame as included_itemsYesYesThe relationship between geography items is OR.

Geography Included Items Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
idFW_IDYesYesRefer to the geo ID doc.
category[ 'COUNTRY', 'STATE', 'DMA', 'CITY', 'POSTAL_CODE', 'POSTAL_CODE_PACKAGE', 'REGION' ]YesYes
nameStringNoNo

Placement Platform Targeting Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
included_itemsPlatform included itemYesYes

Platform Included Items Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
idFW_IDYesYesRefer to the platform ID doc.
category[ 'DEVICE', 'OS', 'BROWSER', 'PACKAGE' ]YesYes
nameStringNoNo

Placement Audience Targeting Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
included_itemsAudience included itemsYesYesThe relationship between media items is OR.
excluded_itemssame format as included_itemsYesYesThe relationship between media items is OR.
setsAudience setYesYes
relation_between_setsStringYesYesThe combination of relations (AND, OR) separated by commas; The number of relation_between_sets must equal to the number of sets minus 1; If there are 3 sets and a remaining set, the last relation_between_sets must be OR.

Audience Set Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
nameStringNoNoReturn 'Set1', 'Set2', 'Set3', 'Remaining Items'
relation_in_set[ 'AND', 'OR' ]YesYesFor the 4th set (Remaining Items), the relation_in_set much be OR.
child_tiemsAudience child itemsYesYessame format as included_items

Audience Included Items Attributes - Child Attributes

NameTypeCreatable?Updatable?Notes
idFW_IDYesYesReturn 'Set1', 'Set2', 'Set3', 'Remaining Items'
category'AUDIENCE'YesYes
nameStringNoNo