批处理

虽然大多数服务都提供同步 API,需要您发出请求,然后等待响应,但 BatchJobService 提供了一种对多个服务执行批量操作的方法,而无需同步等待操作完成。

与特定于服务的 mutate 操作不同,BatchJobService 中的单个作业可以针对广告系列、广告组、广告、条件、标签和素材资源的混合集合运行。提交的作业并行运行,并且 BatchJobService 会自动重试因速率限制错误等瞬时错误而失败的操作。Google Ads API 仍会按照 API 操作计数说明,将每次操作计入您的每日操作次数上限

借助 BatchJobService,您还可以在请求中使用临时 ID,以便在单个作业中提交相关操作。

操作

BatchJobService 支持 MutateOperation 中列出的所有操作,这些操作的底层服务支持部分失败,以及明确豁免并以原子子批次执行(与相关的相互依赖的操作一起执行)的 AssetGroupOperationAssetGroupListingGroupFilterOperation

由于 Google Ads API 在启用了部分失败的作业中执行标准操作(原子子批次中除外),因此,如果作业被取消或单个操作失败,已成功完成的操作将不会回滚。

MutateOperation 中的以下操作必须是原子性的,并且不支持部分失败,因此在批处理作业中不受支持。如果向批量作业添加任何这些操作,系统会返回 MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE 错误(对于 BookCampaignsOperationQuoteCampaignsOperation,则返回 InternalError.INTERNAL_ERROR)。请改用 GoogleAdsService.Mutate 执行这些操作,并将 partial_failure 设置为 false(对于 QuoteCampaignsOperation,则将 validate_only 设置为 true)。

BatchJobService 中不支持的操作