We are implementing the "Placements and Product Types" breaking change announced 4/21/2015, and have found some surprising behavior in the API:
product_type is validated in the context of the Campaign's
objective: this mostly matches the behavior of
placement_type, although there were more valid values for the latter. This validation seems to be undocumented. Is there a way to predict which
product_type attribute is valid for a given objective?
placements are immutable; once set, they cannot change, but the API will return success if you do attempt to change them.
POST/PUT /line_item API responses do not contain the current
placements value - Creating or updating a line item with any
placements attribute responds with an empty array of "placements". The
GET /line_item API responds with the correct value.
placements returns validation messages for
placement_type - Creating a second Line Item within a Campaign where the
placements values are not equal responds with the error "INVALID: LineItems with different placement types are not allowed inside a campaign". It's not clear to us if a. sending
placements sets the legacy
placement_type value, then validates it, returning a message for
placement_type instead of
placements, or b) if
placements have the same validation constraint (cannot mix within a campaign), or c.) both.
PUBLISHER_NETWORK as a
placement value adds undocumented validations - The
POST /line_item touches on it, but there are additional attributes you are required to pass if you select a
PUBLISHER_NETWORK placement value:
advertiser_domain. An API supports
advertiser_domain is not well documented. It also requires an enabled account feature,
We're changing our product in light of #1, #2 and #5, but we're a little puzzled by #3 & 4. Are these bugs, or is the API working as intended?