批处理

虽然大多数服务都提供同步 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 中不支持的操作