We are implementing the “Placements and Product Types” breaking change announced 4/21/2015, and have found some surprising behavior in the API:
product_typeis 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_typeattribute is valid for a given objective?
placementsare immutable; once set, they cannot change, but the API will return success if you do attempt to change them.
POST/PUT /line_itemAPI responses do not contain the current
placementsvalue - Creating or updating a line item with any
placementsattribute responds with an empty array of “placements”. The
GET /line_itemAPI responds with the correct value.
placementsreturns validation messages for
placement_type- Creating a second Line Item within a Campaign where the
placementsvalues 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
placementssets the legacy
placement_typevalue, then validates it, returning a message for
placements, or b) if
placementshave the same validation constraint (cannot mix within a campaign), or c.) both.
placementvalue adds undocumented validations - The
POST /line_itemtouches on it, but there are additional attributes you are required to pass if you select a
advertiser_domain. An API supports
advertiser_domainis 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?