錯誤類型

我們將錯誤分為以下幾大類別:

  • 驗證
  • 可重試
  • 驗證
  • 與同步相關

雖然這些類別不涵蓋所有可能的錯誤,且有些錯誤可能屬於多個類別,但這些類別仍可做為應用程式錯誤處理作業的起點。如要進一步瞭解特定錯誤,請參閱下列資源:

驗證錯誤

驗證是指使用者是否已授予應用程式代表他們存取 Google Ads 的權限。系統會透過 OAuth2 流程產生的憑證管理驗證。

驗證錯誤最常見的原因是受到您無法控制的因素影響,例如已驗證的使用者撤銷了授予應用程式代表他們採取行動的權限。舉例來說,如果您的應用程式為獨立客戶管理個別的 Google Ads 帳戶,並在管理客戶帳戶時以個別客戶身分進行驗證,客戶隨時可以撤銷應用程式的存取權。視您何時遭到撤銷存取權而定,API 可能會直接傳回 AuthenticationError.OAUTH_TOKEN_REVOKED 錯誤,或是 用戶端程式庫中的內建憑證物件可能會擲回權杖撤銷例外狀況。無論是哪種情況,如果您的應用程式有用戶端 UI,可以要求他們重新啟動 OAuth2 流程,重新建立應用程式代表他們採取行動的權限。

可重試的錯誤

有些錯誤 (例如 TRANSIENT_ERRORINTERNAL_ERROR) 可能表示發生暫時性問題,只要稍微暫停後重試要求,即可解決。

針對使用者發起的要求,一種策略是在使用者介面中立即指出錯誤,並提供使用者可觸發重試的選項。或者,應用程式可以先自動重試要求,只有在達到重試次數上限或使用者總等待時間後,才在 UI 中顯示錯誤。

針對在後端啟動的請求,應用程式應自動重試要求,直到達到重試次數上限為止。

重試要求時,請使用指數輪詢政策。舉例來說,如果您在第一次重試前先暫停 5 秒,那麼在第二次重試後 10 秒,以及第三次重試後 20 秒,您可以暫停 指數輪詢可確保您不會過度頻繁地呼叫 API。

驗證錯誤

驗證錯誤表示作業的輸入內容不符合規定。例如 PolicyViolationErrorDateErrorDateRangeErrorStringLengthErrorUrlFieldError

驗證錯誤最常發生在使用者發起的要求中,也就是使用者輸入無效輸入內容的情況。在這種情況下,您應根據收到的特定 API 錯誤,向使用者提供適當的錯誤訊息。您也可以在呼叫 API 前,驗證使用者輸入的內容是否有常見錯誤,讓應用程式更有效率,並提高 API 使用效率。針對來自後端的請求,應用程式可以將失敗的作業加入佇列,供人工操作員審查。

許多 Google Ads 應用程式都會維護本機資料庫,用於儲存 Google Ads 物件。這種做法會遇到一個難題,就是本機資料庫可能會與 Google Ads 中的實際物件不同步。舉例來說,使用者可能會直接在 Google Ads 中刪除廣告群組,但應用程式和本機資料庫並未察覺這項變更,並繼續發出 API 呼叫,就好像廣告群組仍存在一樣。這些同步問題可能會導致各種錯誤,例如 DUPLICATE_CAMPAIGN_NAMEDUPLICATE_ADGROUP_NAMEAD_NOT_UNDER_ADGROUPCANNOT_OPERATE_ON_REMOVED_ADGROUPAD 等等。

針對使用者發起的要求,一種做法是提醒使用者可能發生的同步處理問題,立即啟動工作,擷取相關類別的 Google Ads 物件並更新本機資料庫,然後提示使用者重新整理使用者介面。

對於後端要求,某些錯誤會提供足夠的資訊,讓應用程式自動且逐步修正本機資料庫。舉例來說,CANNOT_OPERATE_ON_REMOVED_ADGROUPAD 應會讓應用程式在本機資料庫中將該廣告標示為已移除。如果您無法以這種方式處理錯誤,應用程式可能會啟動更完整的同步處理作業,或將錯誤加入佇列,供人工操作員審查。