ACTIVEPAUSEDPENDING_REVIEWCREDIT_CARD_NEEDEDPREAPPROVEDDISABLEDPENDING_PROCESSWITH_ISSUESARCHIVED by setting status field to ARCHIVED. When an object status is set to ARCHIVED, you can continue to query the details and stats based on the object id. However there is a maximum limit on the number of objects you can archive. So you should respect this limit and change status to DELETED when you no longer need an object.ARCHIVED object has only 2 fields you can change: name and status. You can also only change status to DELETED.DELETED by either setting status field to DELETED or sending an HTTP DELETE to that object. Once an object status is set to DELETED, you cannot set it back to ARCHIVED.<API_VERSION>/<AD_ID>/insights works for a deleted object but <API_VERSION>/act_<AD_ACCOUNT_ID>/insights?level=ad does not return stats for the deleted object.DELETED objects using the ad.effective_status filter.https://graph.facebook.com/v25.0/<AD_SET_ID>/insights
https://graph.facebook.com/v25.0/<AD_ID>/insights
https://graph.facebook.com/v25.0/<AD_SET_ID>/ads
name, for a DELETED object.deleted state to reduce the limit.with_issues, paused, archived, or deleted for a campaign, all the objects below it automatically inherit that status.deleted, you cannot retrieve the ad sets or ads below that campaign without explicitly specifying the IDs.with_issues, paused, archived, or deleted, the ad set or ad campaign containing that ad keep its original status and is available for retrieval.ARCHIVED objects for given ad account:archived edges, you must specifically filter for the archived objects since we do not return them by default. If you read stats for an ad object, we include the stats of all children objects, no matter if the child is active, archived, or deleted. Therefore you need no filter for insights on child objects.ACTIVE, PAUSED differ from those with ARCHIVED status, and DELETED. Here are the major differences.| Query | Live | ARCHIVED | DELETED |
|---|---|---|---|
Exists in database | Yes | Yes | Yes |
Maximum number per ad account | 100,000 | No limit | |
Query as edges without filter | Yes | No | No |
Query as edges with status filter | Yes for objects of status contained in the filter | Yes if status filter contains ARCHIVED. | No if status filter does not contain DELETED, and error if it does. |
Query by its own ID | Yes | Yes | Yes |
Stats aggregated in /<PARENT_OBJECT_ID>/insights | Yes | Yes | Yes |
Stats included in the result list of /<PARENT_OBJECT_ID>/insights?level=<OBJECT_LEVEL> | Yes | No | No |
Stats included in the result list of /<PARENT_OBJECT_ID>/insights with delivery_info filtering | Yes for objects of status contained in the filter | Yes for objects of status contained in the filter | No |
Insights shown with /<OBJECT_ID>/insights | Yes | Yes | Yes |
Status can be changed to | Any valid status | DELETED | Cannot change |
curl -X POST \
-d "status=ARCHIVED" \
-d "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/v25.0/<AD_ID>
curl -X POST \
-d "status=DELETED" \
-d "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/v25.0/<AD_ID>
ARCHIVED or DELETED ads:curl -X GET \
-d 'fields="name"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_CAMPAIGN_ID>/ads
ARCHIVED subobjects of a live object, for example, all ARCHIVED ads of an ad set, requires the status filter:curl -X GET \
-d 'effective_status=[
"ARCHIVED"
]' \
-d 'fields="name"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_CAMPAIGN_ID>/ads