虽然大多数服务都提供同步 API,需要您发出请求
然后等待响应,但 BatchJobService 提供了一种
对多个服务执行批量操作的方法,而无需同步
等待操作完成。
与特定于服务的 mutate 操作不同,
BatchJobService 中的单个作业可以针对
广告系列、广告组、广告、条件、标签和素材资源的混合集合运行。提交的作业并行运行,BatchJobService 会自动重试因瞬时错误(例如速率限制错误)而失败的操作。Google Ads API 仍会按照
API 操作计数说明,将每个操作计入您的
每日操作限制。
BatchJobService 还允许您在请求中使用
临时 ID,以便您可以在单个作业中提交依赖性
操作。
操作
BatchJobService 支持
MutateOperation 中列出的所有操作(其底层服务支持
部分失败),以及
AssetGroupOperation 和
AssetGroupListingGroupFilterOperation,这些操作会被
明确豁免,并在
原子子批次中执行(以及相关的相互依赖的操作)。
由于 Google Ads API 会在启用了 部分失败的作业中执行标准操作( 原子子批次内除外),因此,如果作业被取消或 单个操作失败,则成功的操作不会回滚。
MutateOperation 中的以下操作必须是
原子的,并且不支持部分失败,因此在批量作业中不受支持。如果将其中任何操作添加到批量作业,系统会返回
MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE
错误(对于
BookCampaignsOperation和
QuoteCampaignsOperation,则返回InternalError.INTERNAL_ERROR)。请改为使用
GoogleAdsService.Mutate执行这些操作,并将partial_failure设置为false(对于
QuoteCampaignsOperation,则将validate_only设置为true)。
BatchJobService 中不支持的操作
BookCampaignsOperation(在MutateOperation中提供)CampaignConversionGoalOperationConversionGoalCampaignConfigOperationCustomConversionGoalOperationCustomerConversionGoalOperationCustomerOperationQuoteCampaignsOperation(在MutateOperation中提供;需要将validate_only设置为true)