Marketing API Version

Ad Delivery Checks

Related Topics

Delivery checks are a set of tests which can help find out potential issues related to ad delivery.

Run And Read

To run the ad delivery checks and get the failed check results, read the failed_delivery_checks field of an ad. For example, running delivery checks for ad 6014290603725:

use FacebookAds\Object\Ad;
use FacebookAds\Object\Fields\AdFields;

$ad = new Ad(<AD_ID>);
$ad->read(array(
  AdFields::FAILED_DELIVERY_CHECKS,
));

echo $ad->{AdFields::FAILED_DELIVERY_CHECKS}.PHP_EOL;
from facebookads.adobjects.ad import Ad

ad = Ad(<AD_ID>)
ad.remote_read(fields=['failed_delivery_checks'])
curl -G \
  -d 'fields=failed_delivery_checks' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.5/<AD_ID>

If all the checks have passed failed_delivery_checks field will not be part of the response.

For example, the response for an ad with a failed invalid_custom_audiences check will be in a form of:

{
 "failed_delivery_checks": [
    {
      "summary": "Custom Audience No Longer Shared", 
      "description": "This ad uses a custom audience that's no longer being shared with you. Please contact the person who set up the audience for more information.", 
      "check_name": "invalid_custom_audiences", 
    }
  ], 
  "id": "6014290603725"
}

The failed_delivery_checks field is a JSON array which contains JSON objects of the failed checks. Each failed check has the following fields:

Name Description Type

check_name

The name of the failed check (See Delivery Check types)

String

summary

One line description of the error

String

description

More detailed explanation of the error

String

Delivery Check Types

The ad delivery checks include the following checks:

check_name Failure reason

page_status

Page Unpublished - This ad cannot deliver because the page it targets is not published.

mobile_eligible

Not Eligible For Mobile - This ad will not deliver to mobile users.

blocked_url

Blacklisted URL - This ad redirects to a suspicious URL.

invalid_custom_audiences

One of the following:
1. Custom Audience No Longer Shared - This ad uses a custom audience that's no longer being shared with you. Please contact the person who set up the audience for more information. If the account no longer has access to some of the audiences that the ad uses the ad can't deliver.
2. Custom Audience Opt Out Conflict - This ad uses different audiences with different opt-out links. You can only use different custom audiences on the same ad if they don't use conflicting links.
3. Ad Using Deleted Custom Audience - This ad uses a custom audience that's been deleted by you or by the person who set it up. An ad using deleted custom audiences can't deliver.
4. Custom Audience Error - There's a problem with this custom audience associated with this ad. We're working to fix the issue. Please try again later.

logged_out_ads

One of the following:
1. Only Page post ads allowed for logged out ads.
2. The Story used for a logged out ads is not public