已上線廣告物件可包含下列狀態:
ACTIVE
PAUSED
PENDING_REVIEW
CREDIT_CARD_NEEDED
PREAPPROVED
DISABLED
PENDING_PROCESS
WITH_ISSUES
將 status
欄位設為 ARCHIVED
,即可將廣告物件設為 ARCHIVED
。物件狀態設為 ARCHIVED
時,您可根據物件編號繼續查詢詳細資料和統計資料。不過,可封存的物件數量有上限。因此,當您不再需要物件時,應遵守此限制並將狀態變更為 DELETED
。
ARCHIVED
物件僅有 2 個可變更的欄位:name
和 status
,您也可以僅將 status
變更為 DELETED
。
將 status
欄位設為 DELETED
或向該物件傳送 HTTP DELETE
,即可將廣告物件設為 DELETED
。物件狀態一旦設為 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 天後才刪除廣告,以確保統計資料不再變更。此外,您應該在刪除物件前,將這些物件的統計資料或編號儲存在您自己的系統中。此項建議為選用:
您無法變更 DELETED
物件的任何欄位(name
除外)。
以下為管理物件狀態的一般方式:
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