Google Ads API 提供多種資源變動方式,視您的用途而定:
- 資源服務會變動:每個可變動的資源都有專屬服務,可執行該特定資源類型的作業。舉例來說,
Campaign資源會使用CampaignService.MutateCampaigns端點建立、更新或移除廣告活動。 - 大量變更:
GoogleAdsService.Mutate端點會將多個資源類型的一連串變更作業 (以及第 23 版和後續版本支援的動作作業,例如預訂或報價廣告活動) 包裝在單一同步要求中。 - 非同步批次工作:對於大規模變動或長期執行的工作負載,
BatchJobService會非同步執行作業,不會有同步要求逾時的風險。與GoogleAdsService.Mutate不同,BatchJobService一律會以部分失敗語意執行,且不支援validate_only模式或動作作業 (book_campaigns_operation、quote_campaigns_operation)。由於部分失敗一律處於啟用狀態,因此如果基礎服務不支援部分失敗 (例如CustomerOperation、CampaignConversionGoalOperation、ConversionGoalCampaignConfigOperation、CustomConversionGoalOperation和CustomerConversionGoalOperation),BatchJobService會以MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE拒絕資源作業。
大量變動的優點
使用 GoogleAdsService.Mutate 可享有下列優點 (如需實作指引,請參閱 Mutate 最佳做法):
- 不同資源服務的動作分組:個別資源服務呼叫只接受單一資源類型的作業,但
GoogleAdsService.Mutate可讓您在一次呼叫中變動多個資源類型。 - 暫時資源名稱:您可以將負整數 ID (例如
customers/CUSTOMER_ID/campaigns/-1) 指派給新建立的父項實體,並在同一項要求中的子項作業中參照這些暫時 ID。
有了這些功能,您可以使用 GoogleAdsService.Mutate 以原子方式建立整個廣告活動階層,讓所有作業一併成功或失敗,也可以將 partial_failure 設為 true,獨立提交有效作業。