最佳做法

影片:看看 2019 年工作坊的最佳做法演講

本指南將說明一些最佳做法,您可以將其用於最佳化應用程式的效率和效能。

持續維護

如何確保應用程式持續運作:

  • 確保 API 中心的開發人員聯絡電子郵件地址符合現況。這是我們用來與您聯絡的別名,如果我們無法在您詳閱《API 條款及細則》後與您聯絡,我們可能會撤銷您的 API 存取權。避免使用連結至個人或未受監控帳戶的個人電子郵件地址。

  • 如要掌握產品變更、維護停機時間、淘汰日期等問題

Google Ads API 團隊會定期監控論壇,因此很適合用來發布 API 相關問題。

  • 確保應用程式符合 Google Ads API 條款及細則 (T&C) 規定。如有需要,權杖審查和法規遵循團隊將透過您的聯絡電子郵件地址與您聯絡。如果您對《條款及細則》有任何疑問或疑慮,可以在審查開發人員權杖申請時,回覆他們寄給您的電子郵件,與審查團隊聯絡。

最佳化

批次作業

向 API 發出要求會產生多種固定費用,例如往返網路延遲、序列化與去序列化處理,以及對後端系統的呼叫。為了降低這些固定費用的影響,並提高整體效能,API 中大部分的 ad 方法都是專為接受一系列作業而設計。只要將多項作業批次處理至每個要求,就能減少您提出的要求數量,以及相關的固定費用。如果可以,請避免僅使用一項作業發出要求。

舉例來說,假設您要在多個廣告群組中新增 50,000 個關鍵字。與其送出 50,000 個請求,每個請求各 1 個關鍵字,不如就提出 100 個請求,每個要求各含 500 個關鍵字,甚至發出 10 個請求,每個請求 5,000 個關鍵字。每項要求允許的作業數量設有限制,因此您可能需要調整批次大小,才能獲得最佳效能。

傳送稀疏物件

將物件傳送至 API 時,欄位必須反序列化、驗證,然後儲存在資料庫中。如果您只想更新少數欄位,卻傳入完整物件,可能會延長處理時間並降低效能。為減緩此問題,Google Ads API 支援稀疏更新,讓您能只填入需要變更或必要物件中的欄位。稀疏更新程序較快,且較不容易產生錯誤。update_mask 中沒有的欄位 (也稱為 FieldMask) 不會變更。

舉例來說,更新關鍵字層級出價的應用程式使用稀疏更新的好處,因為只需要填入廣告群組 ID、條件 ID 和出價欄位。

處理及管理錯誤

您可能會在開發期間遇到錯誤。本節說明在應用程式中建構錯誤管理的注意事項和策略。除了本節之外,您也可以參閱疑難排解指南,進一步瞭解如何管理錯誤。

區別請求來源

有些應用程式主要是互動式 API 呼叫,用於回應使用者在 UI 中啟動的動作。其他供應商主要是離線作業,在定期後端程序中發出 API 呼叫。許多應用程式會合併兩者。考慮到錯誤管理時,不妨區分不同類型的要求。

針對使用者提出的要求,您需要的主要考量應提供良好的使用者體驗。請使用發生的特定錯誤,在 UI 中盡可能為使用者提供盡可能多的背景資訊。請他們提供幾個簡單的步驟,方便他們用來解決問題 (請參閱下方的建議)。

針對在後端發出的要求,請為應用程式可能會遇到的各種錯誤實作處理常式。一律加入預設處理常式來解決罕見或先前未發生的錯誤。預設處理常式的一個做法是將失敗的作業和錯誤加入佇列,讓操作人員審查並決定適當的解析度。

分辨錯誤類型

建構完善的錯誤處理機制時,請務必瞭解 Google Ads API 中不同錯誤類型的差異。常見的錯誤類型如下:

  1. 驗證錯誤
  2. 可重試的錯誤
  3. 驗證錯誤
  4. 同步處理相關錯誤

詳情請參閱錯誤類型常見錯誤

後端同步結束

如果應用程式的使用者能手動存取 Google Ads 帳戶,他們可能會修改應用程式,導致應用程式的本機資料庫無法同步。如錯誤類型指南所述,您可以在發生同步相關錯誤時立即處理,但也可以嘗試主動預防。有一個主動的策略是對所有帳戶執行夜間同步處理工作,擷取帳戶中的 Google Ads 物件,並與本機資料庫進行比較。

記錄檔錯誤

請務必記錄所有錯誤,以便偵錯及監控。請至少記錄要求 ID、造成錯誤的作業,以及錯誤本身。要記錄的其他資訊包括客戶 ID、API 服務、往返要求延遲時間、重試次數,以及原始要求和回應。

請務必監控 API 錯誤的趨勢,以便偵測並解決應用程式的問題。建議您建構自己的解決方案,或運用多種商業工具,運用您的記錄檔產生互動式資訊主頁並傳送自動快訊。

開發

使用測試帳戶

測試帳戶是指不會實際放送廣告的 Google Ads 帳戶。您可以使用測試帳戶使用 Google Ads API 進行實驗,並測試應用程式的連線能力、廣告活動管理邏輯或其他處理程序是否正常運作。開發人員權杖並不需要獲準用於測試帳戶,因此您可以在索取開發人員權杖後,立即開始使用 Google Ads API 進行開發,即使應用程式尚未通過審查。