所有使用 Display & Video 360 API 的應用程式都必須進行配額最佳化。將配額用量最佳化可以簡化 API 要求,並避免超過所設頻率限制時傳回的錯誤,藉此提升效能。
本頁將詳述一般最佳做法,並重點介紹 Display & Video 360 API 中有助於降低配額用量的補充功能。
對多個廣告主同時發出請求
Display & Video 360 API 的大多數方法都會在網址中指定廣告客戶。除了全專案的配額外,當您呼叫指定相同廣告客戶的呼叫時,這些方法會強制執行更嚴格的「每個廣告客戶每項專案」頻率限制。
如要針對這項配額進行最佳化,請將並行要求限制在指定不同廣告主的程序。
使用 filter
和 orderBy
參數
擷取多個資源時,請使用 list
方法,而非 get
方法。不過,由於頁面大小設有限制,list
呼叫可能仍會耗用大量配額。如果您只需要擷取完整清單回應的一部分,可以利用選用的 filter
和 orderBy
參數,最佳化配額用量。
filter
參數可讓您將 list
呼叫所擷取的資源,限制為屬性符合指定運算式的資源。這個參數在嘗試擷取時很實用:
- ID 不明但已知屬性的特定資源。如果您要搜尋特定資源,可以根據該資源的已知屬性篩選傳回的清單。例如,按已知
displayName
篩選委刊項、根據預期的creativeType
篩選廣告素材,以及依據相關exchange
篩選廣告空間來源。 - 相關資源。Display & Video 360 中的資源通常互有關聯。您可以使用篩選器,將傳回的資源限制為有特定關係的資源。例如擷取特定
campaignId
底下的所有廣告訂單,以及指派給委刊項的所有廣告素材。 - 僅限具有可操作屬性的資源。API 功能可讓您輕鬆檢查資源狀態,並以程式輔助方式做出回應。透過篩選器,您可以使用
list
呼叫,只取得需要動作的資源。例如擷取所有會顯示特定可執行lineItemWarningMessage
的委刊項、自指定日期時間起更新的所有廣告訂單,或失敗的所有廣告素材approvalStatus
。
orderBy
參數可讓您按照特定屬性以遞增或遞減的方式排序擷取的資源。orderBy
(尤其是與 filter
搭配使用時) 可用於限制在尋找特定資源之前,需要掃遍的網頁數量。還可讓您輕鬆取得資源清單的上下限。舉例來說,依 updateTime
排序可讓您快速找出廣告主最近更新的委刊項或廣告訂單。
使用大量函式和整個資源函式
Display & Video 360 API 提供多種大量資源及整個資源的功能,可以在單一要求中執行大量操作。舉例來說,這類函式包括:
- 大量編輯單一管道的網站。管道可以指派數千個網站。您不必透過個別
create
或delete
要求管理頻道的網站清單,您可以使用單一bulkEdit
或replace
要求新增及移除多個網站,或是分別取代頻道的所有內容。 - 管理廣告客戶的完整指定目標套件。系統會為多個指定類型指派資源的指定套件。資源層級指定函式 (例如
advertisers
服務中的listAssignedTargetingOptions
和editAssignedTargetingOptions
) 可讓您在單一要求中擷取、建立和移除多個指定類型的指定目標。這樣就能降低將廣告客戶指定套件設為單一請求的配額費用。 - 為多個委刊項設定相同的指定目標限制。如果您需要一次變更多個委刊項的相同指定目標,可以使用單一
advertisers.lineItems.bulkEditAssignedTargetingOptions
要求來完成。 - 啟用或暫停多個委刊項。必須先啟用委刊項才能開始放送如果您要快速連續建立多個委刊項,只要使用一個
advertisers.lineItems.bulkUpdate
要求,即可啟用所有委刊項。您可以運用相同的方法暫停多個委刊項來停止放送。
快取及檢查常用 ID
Display & Video 360 API 中的許多作業,需要使用透過 API 擷取的資源 ID,包括指定目標選項 ID、Google 目標對象 ID 等。為避免在每次使用時從 API 擷取 ID,建議您將這些 ID 儲存在本機。
不過,部分資源可能會遭到淘汰、刪除,或以其他方式無法使用。嘗試使用這些資源的 ID 可能會傳回錯誤。因此,建議您每週使用適當的 get
或經過篩選的 list
方法每週檢查所有快取 ID,確認系統仍可擷取且處於預期狀態。
為長時間執行的作業實施指數輪詢策略
在輪詢中查看長時間執行的作業 (例如 SDF 下載工作) 時,請利用指數輪詢策略來降低傳送頻率和要求總數。
指數輪詢是網路應用程式的標準錯誤處理策略,讓用戶端可以定期重試要求,越來越長。在正確的使用之下,指數輪詢可以提升頻寬使用效率、減少取得成功回應所需的要求數,並最大化並行環境中的要求總處理量。
您可以在 SDF 下載程式碼範例中找到透過用戶端程式庫實作的指數輪詢策略。實作簡易指數輪詢的逐步流程如下:
- 向 API 發出
sdfdownloadtasks.operations.get
要求。 - 擷取作業物件。
- 如果
done
欄位不正確,表示您應重試要求。 - 等待 5 秒 + 隨機的毫秒數,然後重試要求。
- 如果
- 擷取作業物件。
- 如果
done
欄位不正確,表示您應重試要求。 - 等待 10 秒 + 隨機毫秒數,然後重試要求。
- 如果
- 擷取作業物件。
- 如果
done
欄位不正確,表示您應重試要求。 - 等待 20 秒 + 隨機毫秒數,然後重試要求。
- 如果
- 擷取作業物件。
- 如果
done
欄位不正確,表示您應重試要求。 - 等待 40 秒 + 隨機毫秒數,然後重試要求。
- 如果
- 擷取作業物件。
- 如果
done
欄位不正確,表示您應重試要求。 - 等待 80 秒 + 隨機毫秒數,然後重試要求。
- 如果
- 繼續此模式,直到查詢物件更新或達到到達時間上限為止。