Placement | Label |
---|---|
| Facebook Stories |
| Mobile (full width) |
| Audience Network Interstitial |
| Audience Network Medium Rectangle |
| Audience Network Native |
| Instagram Feed |
| Instagram Stories |
| Messenger Inbox |
| Messenger Stories |
| Desktop Feed |
| Mobile Feed |
| Desktop Right Column |
Placement | Label |
---|---|
| Facebook Stories |
| Mobile (Full width) |
| Audience Network In-Stream Video |
| Audience Network In-Stream Video (Mobile) |
| Audience Network Interstitial |
| Audience Network Medium Rectangle |
| Audience Network Rewarded Video |
| Instagram Feed |
| Instagram Stories |
| Facebook In-Stream Video (Desktop) |
| Facebook In-Stream Video (Mobile) |
| Messenger Inbox |
| Messenger Stories |
| Desktop Feed |
| Mobile Feed |
| Suggested Videos (Mobile) |
To see validation results for an existing image or video, send a GET
request to the {business-image-id}/ad_placement_validation_results
or {business-video-id}/ad_placement_validation_results
edge.
Example Response (Image)
{ "data": [ { "ad_placement": "FACEBOOK_STORY_MOBILE", "ad_placement_label": "Facebook Stories", "is_valid": false, "error_messages": [ "Fb Story Ads Resolution Is Too Low: The width of photo and video has to be larger than 500px for ads in Facebook Stories." ] }, ... ] }
Example Response (Video)
{ "data": [ { "ad_placement": "INSTREAM_VIDEO_MOBILE", "ad_placement_label": "Facebook In-Stream Video (Mobile)", "is_valid": false, "error_messages": [ "Ad Video Duration Is Too Short: Duration of the video used in the ad is too short." ] }, ... { "ad_placement": "FACEBOOK_STORY_MOBILE", "ad_placement_label": "Facebook Stories", "is_valid": true } ] }
You can also conveniently run validation against all creatives within a business by adding the ad_placement_validation_results
field on a GET
request to the {business-id}/creatives
edge.
Example Request
curl -i -X GET \ "https://graph.facebook.com/{version}/{business-id}/creatives?fields=ad_placement_validation_results&access_token={access_token}"
When adding creatives to a folder, you can also run ad placement validation when uploading the creative by providing an array of ad placements through the optional validation_ad_placements
parameter on either image/video upload POST
request.
The supported placement types can be found in the Placement column in Supported Video Ad Placements. The API runs validations against the provided ad placements, rejects the upload if validation fails on any of them, and returns the validation results in the response.
An example call could include the parameter like this:
"validation_ad_placements"=["FACEBOOK_STORY_MOBILE", "MESSENGER_MOBILE_STORY_MEDIA"]
The results of the validation are returned in a example response like this:
"validation_results" => [ { "ad_placement" => "FACEBOOK_STORY_MOBILE" "ad_placement_label" => "Facebook Stories" "error_messages" => ["The width of the media in the ad is too low. Try to use a different media.""The height of the media in the ad is too low. Try to use a different media."], "is_valid" => false, }, { "ad_placement" => "MESSENGER_MOBILE_STORY_MEDIA" "ad_placement_label" => "Messenger Stories", "error_messages" => [], "is_valid" => true. }, ]
Conditional Results
validation_results
are returned in the response. validation_results
are appended to the normal upload response.validation_only
parameter that. If set to true, that parameter causes the API to always reject uploads and solely returns the validation results. validation_only
is flagged true
, but no ad placements are provided through validation_ad_placements
, the API defaults to running validation for all ad placements.