Prior to v4.0, ads buying could cause system timeout, out of memory errors or delays. To scale the system, we decoupled logic that requires significant computation and that causes transient errors to an separate workflow called post-processing. Now when you create or edits ads, it is more resilient to transient errors. The process looks like this:
To represent a post processing phase after a request is received, we introduce the ads run status IN-PROCESS
in v4.0. This new status applies to:
{campaign_ID}
,{ad_set_ID}
,{ad_ID}
and{ad_creative_ID}
. For campaigns, ad sets and ads, this impacts:
Field | v4.0 and above | Below v4.0 |
---|---|---|
|
| For campaigns or ad sets: |
| No change | No change |
| No change | No change |
The post-processing phase appears in effective_status
for campaigns, ad sets and ada, and in the status
field for ad creatives. For example, you can query the status of your object at /creative_id?fields=status
. If it is in the post-processing phase, you see:
{ "status": "IN-PROCESS", "id": "<creative_id>" }
If your ad creative successfully passes post-processing, you see:
{ "status": "ACTIVE", "id": "<creative_id>" }
If post-processing fails, we set your object to WITH_ISSUES
and provide an error in issues_info
. For example, at creative_ID?fields=status, issues_info
:
{ "status": "WITH_ISSUES", "issues_info": [ { "level": "CREATIVE", "error_code": 1815869, "error_summary": "Ad post is not available", "error_message": "The Facebook post associated with your ad is not available. It may have been removed, or you may not have permission to view it." } ], "id": "<creative_id>" }
When ad object is IN_PROCESS
, you can still make regular updates to the object and its children.