API 結構

影片:觀看 2019 年研討會的「服務與資源」講座

本指南將介紹 Google Ads API 的主要元件, Google Ads API 包含資源服務。資源代表 Google Ads 則由服務擷取及操控 Google Ads 實體。

物件階層

Google Ads 帳戶可以視為一個物件階層。

廣告活動模式

  • 帳戶的頂層資源是 客戶

  • 每個客戶都包含一或多個有效 廣告活動

  • 每個廣告活動都包含一或多個廣告群組, 按照邏輯將廣告分門別類

  • 廣告群組廣告是指您 備用資源除了每則廣告只能有一個廣告群組廣告的應用程式廣告活動以外 每個廣告群組都包含一或多個廣告群組廣告。

您可以附加一或多個「AdGroupCriterion」 或 CampaignCriterion 連結到廣告群組 廣告活動。這些代表定義廣告如何觸發的條件。

條件類型有很多種 例如關鍵字、年齡層和位置廣告活動定義的條件 層級會影響廣告活動內的所有其他資源。您也可以指定 廣告活動層級預算和日期。

最後,您可以將擴充功能附加在 帳戶、廣告活動或廣告群組層級您可以使用擴充功能 相關資訊,例如電話號碼、街道地址或促銷活動。

資源

資源代表您 Google Ads 帳戶中的實體。CampaignAdGroup 是兩個範例 您不僅認識了這個工具箱 也學會運用不同資源來建立 AI/機器學習專案

物件 ID

Google Ads 中的每個物件都是以專屬 ID 識別。其中一些編號 在所有 Google Ads 帳戶中沒有重複的 拒絕範圍

物件 ID 獨特性範圍 全域唯一?
預算 ID 全域
廣告活動編號 全域
AdGroup 編號 全域
廣告編號 廣告群組 否,但 (AdGroupIdAdId) 配對具有全域唯一性
AdGroupCriterion 編號 廣告群組 否,但 (AdGroupIdCriterionId) 配對具有全域唯一性
CampaignCriterion 編號 廣告活動 否,但 (CampaignIdCriterionId) 配對具有全域唯一性
廣告額外資訊 廣告活動 否,但 (CampaignIdAdExtensionId) 配對具有全域唯一性
動態饋給ID 全域
資訊提供項目編號 全域
資訊提供屬性編號 資訊提供
資訊提供對應編號 全域
標籤編號 全域
使用者名單 ID 全球

為 Google Ads 設計本機儲存空間時,這些 ID 規則非常實用 如需儲存大量結構化物件 建議使用 Cloud Bigtable

某些物件可用於多種實體類型。在這種情況下 包含說明其內容的 type 欄位。例如: AdGroupAd 可參照物件,例如文字廣告 飯店廣告或區域廣告您可以透過 AdGroupAd.ad.type 欄位,然後傳回 AdType 列舉

資源名稱

每個資源都會由 resource_name 字串唯一識別, 將資源及其父項串連為一個路徑。例如,廣告活動 資源名稱的格式如下:

customers/customer_id/campaigns/campaign_id

因此,適用於客戶 ID 的 Google Ads 帳戶中 ID 為 987654 的廣告活動 1234567resource_name 會是:

customers/1234567/campaigns/987654

服務

您可以使用「服務」擷取及修改 Google Ads 實體。共有三種類型 服務:修改、物件和統計資料擷取,以及中繼資料擷取 免費 Google Cloud 服務

修改 (變更) 物件

這些服務會使用 mutate 修改相關聯資源類型的執行個體 請求。並提供用於擷取單一資源的 get 要求 非常適合用來檢查資源結構。

服務範例:

每個 mutate 要求都必須包含對應的 operation 物件。適用對象 例如,CampaignService.MutateCampaigns 方法需要一或多個 CampaignOperation 例項。詳情請見 變更及檢查物件 詳細說明作業

同時變更

Google Ads 物件無法同時由多個來源修改,這個 如有多位使用者更新同一個物件,可能會發生錯誤 或是您對 Google Ads 物件同時變更多個項目 。這包括在相同容器中,透過多個執行緒更新物件 或來自其他應用程式 (例如您的應用程式 同時 Google Ads UI 工作階段)。

API 並未提供在更新前鎖定物件的方法;假設有兩個來源 嘗試同時變更物件,API 會引發 DatabaseError.CONCURRENT_MODIFICATION_ERROR

非同步與同步變更

Google Ads API 的 變更 方法為同步性質。API 呼叫只會傳回回應 物件發生變更之後,您必須等待每個 Pod 的回應 請求。雖然這個做法就較易於編寫程式碼,但可以 如果強制將程序 等待通話完成

另一種方法是使用 BatchJobService,會批次執行 讓您不必等待服務完成,就能對多項服務執行多項作業我們 批次工作提交後,Google Ads API 伺服器會以非同步方式執行作業 釋出程序來執行其他作業您可以定期查看 工作狀態。

詳情請參閱批次處理指南 非同步處理作業

變更驗證

大多數的 變更 請求都可以在不需要實際執行呼叫的情況下進行驗證 與實際資料相互搭配您可以測試缺少參數和錯誤的要求 ] 欄位值,而不會實際執行該作業。

如要使用這項功能,請將要求的選用 validate_only 布林值欄位設為 true。接著,請求會完全通過驗證 但略過最後的執行作業如果沒有發現錯誤,則會顯示空白 回應。如果驗證失敗,回應中的錯誤訊息 會指出失敗點

validate_only 特別適合用來測試廣告是否屬於常見政策 。自動拒絕的廣告會自動拒絕,例如, 含有特定字詞、標點符號、大寫字母或長度。單一惡質廣告 可能會導致整個批次作業失敗在 validate_only 內測試新廣告 顯示任何這類違規事件請參閱程式碼範例,瞭解處理方式 查看政策違規錯誤 實際操作

取得物件和效能統計資料

GoogleAdsService 是單一的整合式廣告 服務來擷取物件和效能統計資料。

GoogleAdsService 的所有 SearchSearchStream 要求都需要指定資源 要擷取的資源屬性和效能指標 篩選要求的述詞,以及用於進一步的區隔 細分成效統計資料如要進一步瞭解查詢格式 請參閱 Google Ads 查詢語言指南

擷取中繼資料

GoogleAdsFieldService 擷取 Google Ads API 中資源的相關中繼資料,例如 資源及其資料類型

這項服務提供建構查詢所需的資訊, GoogleAdsService。為了方便起見, 由 GoogleAdsFieldService 也可使用 請參閱欄位參考說明文件中的相關資訊。