Placements/Product Type vs. Placement Type



We are implementing the “Placements and Product Types” breaking change announced 4/21/2015, and have found some surprising behavior in the API:

  1. Line Item 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?
  2. product_type and placements are immutable; once set, they cannot change, but the API will return success if you do attempt to change them.
  3. The 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.
  4. 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 placement_type and placements have the same validation constraint (cannot mix within a campaign), or c.) both.
  5. Using 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: categories and advertiser_domain. An API supports categories but advertiser_domain is not well documented. It also requires an enabled account feature, PTW_ON_TWITTER_PUBLISHER_NETWORK.

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?


Hey there,

  1. product_type has two valid values today: promoted_tweet or promoted_account. Promoted tweets is valid for all objectives except followers, while promoted_account is valid only for followers and custom

  2. The API currently doesn’t seem to validate those params on the PUT endpoint. Thanks for catching that, and we’ll work on this.

  3. This is a known bug that we’re working on for PUT and DELETE, but I haven’t found the same issue for POST. If placements is still returning empty for POST for you, could you please reply with an example request and response? Thanks!

  4. We’re working on modifying the error message for this, but the validation is now that all line items within a campaign must have the same combination of placements and product type.

  5. We’ll be adding more public documentation for Twitter Publisher Network, as it’s currently a feature in closed beta. Be assured that more information will arrive as the feature is shipped more broadly



We know that MEDIA, LIVE_TV_EVENT are added to product_type.
Would you please give me all the valid combinations of product_type and campagin objective.

Thanks in advance.