Ads News
Effective Placements API

In the past, you created adsets with placements in target spec, however you did not always know if Facebook delivered your ad to the placements specified. This is because your selected placement may not apply to your chosen advertising objective. In the past, you had to create an actual ad and let it run for a couple of days, and figure out the actual placement settings from Insights. It was also difficult to know why some placements were filtered out.

Effective Placements

Effective placements API addresses this problem. It is a subset of the placements you specify, and shows placements that ads will be delivered to. For example, adset 23842573364570019 is a Brand Awareness adset created with placement:


"publisher_platforms": [ "facebook" ], "facebook_positions": [ "feed", "right_hand_column" ], "device_platforms": [ "mobile", "desktop" ]

However right_hand_column is not a valid placement for the Brand Awareness objective. From effective placements fields, you can now easily tell which placements we actually deliver on.

curl -G \
-d "fields=targeting{effective_publisher_platforms,effective_facebook_positions,effective_device_platforms}" \
-d "access_token=<access_token>" \
https://graph.facebook.com/<VERSION>/23842573364570019

You get results like this:

{
   "targeting": {
      "effective_publisher_platforms": [
         "facebook"
      ],
      "effective_facebook_positions": [
         "feed"
      ],
      "effective_device_platforms": [
         "desktop",
         "mobile"
      ]
   },
   "id": "23842573364570019",
   "__fb_trace_id__": "BjHdydhX92x"
}

Effective Placements Filtering

Determine why some placements got filtered out. In the recommendation field, get a filtering message:

curl -G \
-d "fields=recommendations" \
-d "access_token=<access_token>" \
https://graph.facebook.com/<VERSION>/23842573364570019

This provides the effectively invalid placement and why it is not valid:

{
   "recommendations": [
      {
         "title": "Placement Not Supported By Objective",
         "message": "Ads with BRAND_AWARENESS objective do not support facebook.right_hand_column.",
         "code": 1815609,
         "importance": "LOW",
         "confidence": "HIGH",
         "blame_field": "targeting"
      }
   ],
   "id": "23842573364570019",
   "__fb_trace_id__": "AvK2MmMgTBy"
}

Note that effective placements do not always exactly match the placements Facebook delivers to. Effective placements reflects filtered result for the campaign and adset levels. The actual delivery is also dependent on ad creative. For more details and to subscribe to updates on to future developments around ad level filtering and this API, see Targeting, Advanced, Effective Placement.