配額最佳化

所有使用 Display & Video 360 API 的應用程式都必須進行配額最佳化。將配額用量最佳化可以簡化 API 要求,並避免超過所設頻率限制時傳回的錯誤,藉此提升效能。

本頁將詳述一般最佳做法,並重點介紹 Display & Video 360 API 中有助於降低配額用量的補充功能。

對多個廣告主同時發出請求

Display & Video 360 API 的大多數方法都會在網址中指定廣告客戶。除了全專案的配額外,當您呼叫指定相同廣告客戶的呼叫時,這些方法會強制執行更嚴格的「每個廣告客戶每項專案」頻率限制

如要針對這項配額進行最佳化,請將並行要求限制在指定不同廣告主的程序。

使用 filterorderBy 參數

擷取多個資源時,請使用 list 方法,而非 get 方法。不過,由於頁面大小設有限制,list 呼叫可能仍會耗用大量配額。如果您只需要擷取完整清單回應的一部分,可以利用選用的 filterorderBy 參數,最佳化配額用量。

filter 參數可讓您將 list 呼叫所擷取的資源,限制為屬性符合指定運算式的資源。這個參數在嘗試擷取時很實用:

orderBy 參數可讓您按照特定屬性以遞增或遞減的方式排序擷取的資源。orderBy (尤其是與 filter 搭配使用時) 可用於限制在尋找特定資源之前,需要掃遍的網頁數量。還可讓您輕鬆取得資源清單的上下限。舉例來說,依 updateTime 排序可讓您快速找出廣告主最近更新的委刊項廣告訂單

使用大量函式和整個資源函式

Display & Video 360 API 提供多種大量資源及整個資源的功能,可以在單一要求中執行大量操作。舉例來說,這類函式包括:

  • 大量編輯單一管道網站管道可以指派數千個網站。您不必透過個別 createdelete 要求管理頻道的網站清單,您可以使用單一 bulkEditreplace 要求新增及移除多個網站,或是分別取代頻道的所有內容。
  • 管理廣告客戶的完整指定目標套件。系統會為多個指定類型指派資源的指定套件。資源層級指定函式 (例如 advertisers 服務中的 listAssignedTargetingOptionseditAssignedTargetingOptions) 可讓您在單一要求中擷取、建立和移除多個指定類型的指定目標。這樣就能降低將廣告客戶指定套件設為單一請求的配額費用。
  • 為多個委刊項設定相同的指定目標限制。如果您需要一次變更多個委刊項的相同指定目標,可以使用單一 advertisers.lineItems.bulkEditAssignedTargetingOptions 要求來完成。
  • 啟用或暫停多個委刊項。必須先啟用委刊項才能開始放送如果您要快速連續建立多個委刊項,只要使用一個 advertisers.lineItems.bulkUpdate 要求,即可啟用所有委刊項。您可以運用相同的方法暫停多個委刊項來停止放送。

快取及檢查常用 ID

Display & Video 360 API 中的許多作業,需要使用透過 API 擷取的資源 ID,包括指定目標選項 IDGoogle 目標對象 ID 等。為避免在每次使用時從 API 擷取 ID,建議您將這些 ID 儲存在本機。

不過,部分資源可能會遭到淘汰、刪除,或以其他方式無法使用。嘗試使用這些資源的 ID 可能會傳回錯誤。因此,建議您每週使用適當的 get 或經過篩選的 list 方法每週檢查所有快取 ID,確認系統仍可擷取且處於預期狀態。

為長時間執行的作業實施指數輪詢策略

在輪詢中查看長時間執行的作業 (例如 SDF 下載工作) 時,請利用指數輪詢策略來降低傳送頻率和要求總數。

指數輪詢是網路應用程式的標準錯誤處理策略,讓用戶端可以定期重試要求,越來越長。在正確的使用之下,指數輪詢可以提升頻寬使用效率、減少取得成功回應所需的要求數,並最大化並行環境中的要求總處理量。

您可以在 SDF 下載程式碼範例中找到透過用戶端程式庫實作的指數輪詢策略。實作簡易指數輪詢的逐步流程如下:

  • 向 API 發出 sdfdownloadtasks.operations.get 要求。
  • 擷取作業物件。
    • 如果 done 欄位不正確,表示您應重試要求。
    • 等待 5 秒 + 隨機的毫秒數,然後重試要求。
  • 擷取作業物件。
    • 如果 done 欄位不正確,表示您應重試要求。
    • 等待 10 秒 + 隨機毫秒數,然後重試要求。
  • 擷取作業物件。
    • 如果 done 欄位不正確,表示您應重試要求。
    • 等待 20 秒 + 隨機毫秒數,然後重試要求。
  • 擷取作業物件。
    • 如果 done 欄位不正確,表示您應重試要求。
    • 等待 40 秒 + 隨機毫秒數,然後重試要求。
  • 擷取作業物件。
    • 如果 done 欄位不正確,表示您應重試要求。
    • 等待 80 秒 + 隨機毫秒數,然後重試要求。
  • 繼續此模式,直到查詢物件更新或達到到達時間上限為止。