我們將錯誤分為以下幾大類別:
- 驗證
- 可重試
- 驗證
- 與同步相關
雖然這些類別不涵蓋所有可能的錯誤,且有些錯誤可能屬於多個類別,但這些類別仍可做為應用程式錯誤處理作業的起點。如要進一步瞭解特定錯誤,請參閱下列資源:
- 常見錯誤會提供特定錯誤的詳細資訊。
- 如要進一步瞭解 API 使用的邏輯錯誤模型,請參閱 google.rpc.Status。
驗證錯誤
驗證是指使用者是否已授予應用程式代表他們存取 Google Ads 的權限。系統會透過 OAuth2 流程產生的憑證管理驗證。
驗證錯誤最常見的原因是受到您無法控制的因素影響,例如已驗證的使用者撤銷了授予應用程式代表他們採取行動的權限。舉例來說,如果您的應用程式為獨立客戶管理個別的 Google Ads 帳戶,並在管理客戶帳戶時以個別客戶身分進行驗證,客戶隨時可以撤銷應用程式的存取權。視您何時遭到撤銷存取權而定,API 可能會直接傳回 AuthenticationError.OAUTH_TOKEN_REVOKED
錯誤,或是 用戶端程式庫中的內建憑證物件可能會擲回權杖撤銷例外狀況。無論是哪種情況,如果您的應用程式有用戶端 UI,可以要求他們重新啟動 OAuth2 流程,重新建立應用程式代表他們採取行動的權限。
可重試的錯誤
有些錯誤 (例如 TRANSIENT_ERROR
或 INTERNAL_ERROR
) 可能表示發生暫時性問題,只要稍微暫停後重試要求,即可解決。
針對使用者發起的要求,一種策略是在使用者介面中立即指出錯誤,並提供使用者可觸發重試的選項。或者,應用程式可以先自動重試要求,只有在達到重試次數上限或使用者總等待時間後,才在 UI 中顯示錯誤。
針對在後端啟動的請求,應用程式應自動重試要求,直到達到重試次數上限為止。
重試要求時,請使用指數輪詢政策。舉例來說,如果您在第一次重試前先暫停 5 秒,那麼在第二次重試後 10 秒,以及第三次重試後 20 秒,您可以暫停 指數輪詢可確保您不會過度頻繁地呼叫 API。
驗證錯誤
驗證錯誤表示作業的輸入內容不符合規定。例如 PolicyViolationError
、DateError
、DateRangeError
、StringLengthError
和 UrlFieldError
。
驗證錯誤最常發生在使用者發起的要求中,也就是使用者輸入無效輸入內容的情況。在這種情況下,您應根據收到的特定 API 錯誤,向使用者提供適當的錯誤訊息。您也可以在呼叫 API 前,驗證使用者輸入的內容是否有常見錯誤,讓應用程式更有效率,並提高 API 使用效率。針對來自後端的請求,應用程式可以將失敗的作業加入佇列,供人工操作員審查。
同步處理相關錯誤
許多 Google Ads 應用程式都會維護本機資料庫,用於儲存 Google Ads 物件。這種做法會遇到一個難題,就是本機資料庫可能會與 Google Ads 中的實際物件不同步。舉例來說,使用者可能會直接在 Google Ads 中刪除廣告群組,但應用程式和本機資料庫並未察覺這項變更,並繼續發出 API 呼叫,就好像廣告群組仍存在一樣。這些同步問題可能會導致各種錯誤,例如 DUPLICATE_CAMPAIGN_NAME
、DUPLICATE_ADGROUP_NAME
、AD_NOT_UNDER_ADGROUP
、CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
等等。
針對使用者發起的要求,一種做法是提醒使用者可能發生的同步處理問題,立即啟動工作,擷取相關類別的 Google Ads 物件並更新本機資料庫,然後提示使用者重新整理使用者介面。
對於後端要求,某些錯誤會提供足夠的資訊,讓應用程式自動且逐步修正本機資料庫。舉例來說,CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
應會讓應用程式在本機資料庫中將該廣告標示為已移除。如果您無法以這種方式處理錯誤,應用程式可能會啟動更完整的同步處理作業,或將錯誤加入佇列,供人工操作員審查。