已發佈的廣告物件可擁有下列狀態:
ACTIVE
PAUSED
PENDING_REVIEW
CREDIT_CARD_NEEDED
PREAPPROVED
DISABLED
PENDING_PROCESS
WITH_ISSUES
將廣告物件的 status
欄位設定為 ARCHIVED
,即可將其狀態設定為 ARCHIVED
。將物件狀態設定為 ARCHIVED
後,您仍然可以根據物件編號查詢詳細資訊和統計資料。但是,您最多只能封存特定數量的物件。因此,請遵從此上限,並將不再需要的物件之狀態變更為 DELETED
。
狀態為 ARCHIVED
的物件只有 2 個可變更的欄位:name
和 status
。您也只能將 status
變更為 DELETED
。
如需將廣告物件設定為 DELETED
,只需將 status
欄位設定為 DELETED
,或向該物件傳送 HTTP DELETE
要求即可。物件的狀態設定為 DELETED
後,您無法再將之恢復為 ARCHIVED
。
如果您仍保留著已刪除物件的編號,則可以查詢該物件編號,以擷取其統計資料或詳細資訊。可是,您將無法從未刪除節點或物件擷取已刪除物件,以作為連線物件。例如,雖然 <API_VERSION>/<AD_ID>/insights
適用於已刪除的物件,但 <API_VERSION>/act_<AD_ACCOUNT_ID>/insights?level=ad
不會傳回已刪除物件的統計資料。
即使刪除了廣告,系統仍會在其最後一個刊登日之後的 28 天內追蹤其展示次數、點擊次數和動作。您可以使用 ad.effective_status
篩選條件來查詢 DELETED
物件的洞察報告。
如果您的廣告組合內包含 2 則廣告,而您刪除了其中一則廣告,則以下 2 個查詢所傳回的結果會有所不同:
https://graph.facebook.com/v21.0
/<AD_SET_ID>/insights https://graph.facebook.com/v21.0
/<AD_ID>/insights
如果您查詢廣告組合,系統傳回的統計資料包括當中已刪除和未刪除的廣告之資料。但如果您查詢廣告組合中的廣告,則只會看見一則廣告:
https://graph.facebook.com/v21.0
/<AD_SET_ID>/ads
為避免出現這種情況,您應該在廣告停止刊登 28 天後再將之刪除,以確保狀態不再持續變更。此外,在刪除這些物件之前,請先將它們的統計資料或編號儲存至自己的系統。在以下情況下,您不一定要遵循此建議:
除了 name
之外,您不能更改 DELETED
物件的任何欄位。
以下是管理物件狀態的一般方法:
deleted
,以使封存數量低於限制。在廣告物件架構中,廣告物件狀態的運作方式如下:
with_issues
、paused
、archived
或 deleted
,則其包含的所有物件將自動變更為相同狀態。 deleted
,便無法擷取該宣傳活動下的廣告組合或廣告。with_issues
、paused
、archived
或 deleted
,包含該廣告的廣告組合或廣告宣傳活動會保留其原有的狀態,而且您可以擷取相關內容。下列上限適用於特定廣告帳戶的 ARCHIVED
物件:
如果您讀取了 archived
邊緣,則需要專門篩選出已封存物件,這是因為在預設情況下,系統不會傳回已封存物件。如果您讀取了某個廣告物件的統計資料,系統將列出所有子物件的統計資料,無論子物件的狀態是 active
、archived
,還是 deleted
。因此,您無需篩選子物件的洞察報告。
狀態為 ACTIVE
和 PAUSED
的物件與狀態為 ARCHIVED
和 DELETED
的物件有所不同。以下是它們的主要區別。
查詢 | 已發佈 | 已封存 | 已刪除 |
---|---|---|---|
存在於資料庫中 | 是 | 是 | 是 |
每個廣告帳戶的數量上限 | 100,000 | 不設上限 | |
以邊緣查詢(不含篩選條件) | 是 | 否 | 否 |
以邊緣查詢(含篩選條件) | 如果篩選條件含有狀態物件,則為是 | 如果狀態篩選條件包含 | 如果狀態篩選條件不包含 |
以自身編號查詢 | 是 | 是 | 是 |
彙總於 | 是 | 是 | 是 |
包含於 | 是 | 否 | 否 |
包含於 | 如果篩選條件含有狀態物件,則為是 | 如果篩選條件含有狀態物件,則為是 | 否 |
以 | 是 | 是 | 是 |
狀態可變更為 | 任何有效的狀態 |
| 無法變更 |
若要將廣告設為已封存:
use FacebookAds\Object\Ad;
$ad = new Ad(<AD_ID>);
$ad->archive();
from facebookads.adobjects.ad import Ad
ad = Ad(ad_id)
ad.remote_archive()
new Ad(<AD_ID>, context).update()
.setStatus(Ad.EnumStatus.VALUE_ARCHIVED)
.execute();
curl \
-F 'status=ARCHIVED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<AD_ID>
若要刪除廣告:
use FacebookAds\Object\Ad;
$ad = new Ad(<AD_ID>);
$ad->deleteSelf();
from facebookads.adobjects.ad import Ad
ad = Ad(<AD_ID>)
ad.remote_delete()
new Ad(<AD_ID>, context).update()
.setStatus(Ad.EnumStatus.VALUE_DELETED)
.execute();
curl -X DELETE \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<AD_ID>/
若要擷取已發佈物件的已發佈子物件,例如廣告宣傳活動中的所有已發佈廣告(不包括處於 ARCHIVED
或 DELETED
狀態的廣告):
curl -X GET \
-d 'fields="name"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_CAMPAIGN_ID>/ads
若要擷取已發佈物件的 ARCHIVED
子物件(例如廣告組合中的所有 ARCHIVED
廣告),就必須使用狀態篩選條件:
curl -X GET \
-d 'effective_status=[
"ARCHIVED"
]' \
-d 'fields="name"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_CAMPAIGN_ID>/ads