PROMOTED_TWEETS is not compatible with placements ALL_OFF_TWITTER,SEARCH_RESULTS


I"m working on implementing Twitter Audience Platform for MAP campaigns. Our first pass we are just doing image app download ads and adding on PUBLISHER_NETWORK to the placement. This works fine with timeline, but when I try to target an image app download ad to search and publisher network I get an error that my placement isn’t valid. Full error below.

Sent POST request to /1/accounts/18ce53zc5lf/line_items/ payload {“account_id”:“18ce53zc5lf”,“bid_amount_local_micro”:“200000”,“campaign_id”:“5eg19”,“objective”:“APP_INSTALLS”,“paused”:“false”,“product_type”:“PROMOTED_TWEETS”,“placements”:“PUBLISHER_NETWORK,TWITTER_SEARCH”,“optimization”:“DEFAULT”,“bid_unit”:“APP_CLICK”,“advertiser_domain”:“”,“categories”:“IAB8-13”}

Received response with code 400 payload “{“errors”:[{“code”:“INVALID”,“message”:“LineItem PromotedProductType PROMOTED_TWEETS is not compatible with placements ALL_OFF_TWITTER,SEARCH_RESULTS”,“attribute”:“promoted_product_type”},{“code”:“INVALID”,“message”:“Invalid advertiser domain format”,“attribute”:“advertiser_domain”}],“request”:{“params”:{“placements”:[“PUBLISHER_NETWORK”,“TWITTER_SEARCH”],“bid_amount_local_micro”:200000,“advertiser_domain”:“http:\/\/”,“product_type”:“PROMOTED_TWEETS”,“bid_unit”:“APP_CLICK”,“objective”:“APP_INSTALLS”,“paused”:false,“account_id”:“18ce53zc5lf”,“optimization”:“DEFAULT”,“categories”:[“IAB8-13”],“campaign_id”:“5eg19”}}}”


The Ads API only allows certain combination of placements for Promoted Tweet campaigns, and placements = TWITTER_SEARCH, PUBLISHER_NETWORK is not one of them. However, you should be able to use the placement combination of ALL_ON_TWITTER, PUBLISHER_NETWORK just fine.
You can use the [GET line_items/placements]
( to get a full list of the allowable placement combinations.


Thanks Helen.

I guess my point is that this seems like a bug. You allow [“PUBLISHER_NETWORK”,“TWITTER_SEARCH”,“TWITTER_TIMELINE”],[“PUBLISHER_NETWORK”,“TWITTER_TIMELINE”], [“TWITTER_SEARCH”],[“TWITTER_SEARCH”,“TWITTER_TIMELINE”],[“TWITTER_TIMELINE”]. It feels like an enumeration was just missed.

Also, it doesn’t make a lot of sense that a single case is ignored. So I can make a image app download ad that is perfectly valid on search, or timeline, or both. But then when I want to extend my reach and add TAP suddenly I can only push that exact same ad to timeline or both? Not search?


This feedback is very helpful. Which placement combinations are allowable is a decision from the product team, so we’ll take this feedback back to them. Thank you!