Bing 廣告 API 服務通訊協定
您可以使用任何支援 Web 服務的語言撰寫 Bing 廣告 API 應用程式。 已為每個 Web 服務定義 Web 服務 (WSDL) 檔的 Web 服務描述語言。 WSDL 會定義 Web 服務所提供的作業,以及用戶端傳送至作業及接收作業的要求和回應訊息格式。 要求和回應訊息會定義用戶端與作業交換的資料名稱和類型。 如需 WSDL 的詳細資訊,請參閱 W3C WSDL 規格。
適用于 Bing 廣告 API 的 SOAP
Bing 廣告 API 支援簡易物件存取通訊協定 (SOAP) 。 C# 和 JAVA 等某些語言提供可從 WSDL 產生 Proxy 類別的工具。 如果您選擇的語言未提供產生 Proxy 類別的工具,您必須產生自己的 Proxy 類別或 SOAP 信封。 若要產生 Proxy 類別,您需要所要使用之服務的 WSDL 檔案網址。 Microsoft Advertising 沙箱和生產環境各有唯一的位址。 這些位址也包含主要 Bing 廣告 API 版本專屬的 WSDL 版本號碼。 如需最新 Bing 廣告 API 版本的生產和沙箱服務 WSDL,請參閱 Bing 廣告 API Web 服務位址。
SOAP XML 元素順序
當您建立 SOAP 要求訊息時,SOAP 主體內專案的順序很重要。 元素的順序必須與 Web 服務描述語言 (WSDL) 中所定義的順序相同。 如果必要元素的順序不符,呼叫將會失敗。 如果選擇性元素的順序不符,呼叫可能會失敗,否則會忽略元素。 WSDL 語法會顯示專案的正確順序,並包含在參考內容中記載的每個要求訊息、回應訊息和資料物件中。 此外,每個要求和回應訊息都會顯示範例 SOAP 信封。
注意事項
XML 會區分大小寫。 您必須針對值名稱使用正確的大小寫。 如 C# 的強型別程式設計語言,請先確定您有正確的案例,才能進行編譯。 如果未使用正確的案例,其他語言可能不會提供編譯錯誤;不過,程式碼會在執行時間失敗。
部分成功
Bing 廣告 API 支援部分完成新增、更新和刪除作業;如果您要加入、更新或刪除之物件清單中的其中一個物件失敗,則集合中的其他物件作業可能會成功。 當您呼叫接受識別碼清單的 Get 作業時,例如 GetKeywordsByIds 作業,且清單中的其中一個識別碼無效,作業將會成功,而對應至無效要求識別碼的回應專案將會是 nil。
部分更新
行銷活動管理部分更新
大部分的行銷活動管理資料物件都支援部分更新,但並非所有行銷活動管理資料物件都支援。 例如,更新ExpandedTextAd的Text屬性時,您只需要指定Id和Text元素。 廣告編輯狀態之類的唯讀元素必須保留 nil 或空白。 除非另有明確記載,否則選擇性元素可能會保留空白,而且其現有的設定會保持不變。
廣告延伸模組不支援部分更新。 任何未隨更新要求一起傳送的選擇性元素,將會從個別的廣告延伸模組中刪除。
客戶管理部分更新
客戶管理服務會執行實體的完整更新,因此除了記載的必要屬性之外,您還必須為您不想為 nil 或空白的所有選擇性屬性提供值。
注意事項
此規則的一個例外是任何物件的 ForwardCompatibilityMap 元素。 例如,如果您未提供PublisherAccount的ForwardCompatibilityMap元素,則服務將不會更新或將以索引鍵和值組表示的任何屬性 null 化。
在本機儲存您的實體識別碼
您應該維護帳戶和行銷活動實體的本機存放區。 具體而言,您應該在本機儲存帳戶、客戶、行銷活動、廣告群組和關鍵字的識別碼。 大部分呼叫都需要實體的識別碼。 如果您儲存識別碼,請排除取得識別碼所需的呼叫。
例如,許多行銷活動管理呼叫都需要帳戶識別碼。 若要取得帳戶識別碼,您可以使用客戶管理服務。 不過,不要重複呼叫服務,而是將帳戶識別碼儲存在本機,以便在後續呼叫中使用它。
管理與進行 Web 服務呼叫相關聯的額外負荷
以下是與每個 Web 服務呼叫相關聯的處理時間額外負荷成本。
- 建立 Web 服務的 HTTPS 連線。
- 驗證使用者名稱和密碼。
- 驗證開發人員權杖。
不論您是處理單一專案或一組專案,都會產生這些成本。 為了將額外負荷降至最低,一般而言,您應該嘗試在一次呼叫中盡可能處理多個專案。 例如,不要針對您想要更新的每個行銷活動呼叫 UpdateCampaigns ,而是只針對您想要更新的多個行銷活動呼叫它一次。 若要管理大規模資料,特別是當您需要在帳戶中的多個廣告群組或行銷活動之間新增或更新廣告和關鍵字時,您應該使用 大量服務。 大量服務可讓您下載資料作為 TSV 或 CSV 檔案、視需要加以修改,然後上傳您的變更。 如需使用大量服務的詳細資訊,請參閱 大量下載和上傳。
由於建立 Web 服務連線的相關成本,因此只要需要連線,您就應該維持連線。 例如,如果您需要要求多個報表,請針對所有 Reporting Service 作業呼叫使用相同的 Reporting Service 用戶端物件。 當您不再需要服務時,請明確關閉連線。
處理節流
節流極高的使用量可維持所有 Microsoft Advertising 用戶端的公平使用量。
Ad Insight API
針對 Ad Insight 服務,節流會限制任何一位使用者在一分鐘內可以對 API 發出的呼叫數目。
在客戶層級,客戶可以對客戶資料發出的呼叫數目會限制使用具有 60 秒視窗的滑動通訊協定。
如果您超過服務通話限制,您會看到下列錯誤:
- 數值錯誤碼:117
- 符號錯誤碼:CallRateExceeded
- 訊息:您已超過一分鐘內允許撥打的通話數目。 請減少您每分鐘撥打的通話數目。
當您觀察到此錯誤時,您可以在等候 60 秒之後,于限制下重新提交要求。
大量 API
大量服務會限制您可以對 DownloadCampaignsByAccountIds、 DownloadCampaignsByCampaignIds和 GetBulkUploadUrl提出的要求數目。 服務限制的詳細資料是內部的,而且可能會變更。
如果您達到服務通話限制,您會看到下列錯誤:
- 數值錯誤碼: 4204
- 符號錯誤碼: BulkServiceNoMoreCallsPermittedForTheTimePeriod
- 訊息: 在目前期間內,此帳戶將不再允許大量上傳或下載呼叫。如果您已達到大量上傳限制,則大量下載作業可能仍可供使用,反之亦然。
如果您觀察到此錯誤,您可以在等候最多 15 分鐘後重新提交要求。 如需詳細資訊,請 參閱大量下載最佳做法 和 大量上傳最佳做法。
另請注意,在生產環境中大量上傳的每個檔案大小限制為 100 MB 和最多 4 百萬個數據列。 針對 沙箱 ,限制為 2 萬個數據列。
行銷活動管理 API
針對行銷活動管理服務,節流會限制任何一位使用者在一分鐘內可以對 API 發出的呼叫數目。
在客戶層級,客戶可以對客戶資料發出的呼叫數目會限制使用具有 60 秒視窗的滑動通訊協定。
如果您達到服務通話限制,您會看到下列錯誤:
- 數值錯誤碼:117
- 符號錯誤碼:CallRateExceeded
- 訊息:您已超過一分鐘內允許撥打的通話數目。 請減少您每分鐘撥打的通話數目。
當您觀察到此錯誤時,您可以在等候 60 秒之後,于限制下重新提交要求。
報告 API
Reporting 服務會限制您可以對 SubmitGenerateReportRequest提出的要求數目。 服務限制的詳細資料是內部的,而且可能會變更。
如果您達到服務通話限制,您會看到下列錯誤:
- 數值錯誤碼:207
- 符號錯誤碼:ConcurrentRequestOverLimit
- 訊息:您已達到並行報表要求的最大數目。 請等到先前的報告完成,然後嘗試提交新的要求。
如果您觀察到此錯誤,請等到先前的報告完成,然後嘗試提交新的要求。