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