批处理提供了一种将一组操作(可能相互依赖)分派到多个服务的方法,而无需同步等待操作完成。您可以使用批处理来制作和管理效果最大化广告系列。
本指南详细介绍了使用批处理时效果最大化广告系列特有的细节。通用的批处理指南提供了有关批处理的一般信息,而结构化请求指南则包含有关如何构建请求以制作或管理效果最大化广告系列的详细信息。
如需使用批处理制作效果最大化广告系列,请按以下步骤操作:
创建新的批量作业
准备一个 mutate 操作列表
效果最大化广告系列需要通过操作来创建多个相关资源,结构化请求指南中对此进行了详细介绍。为应包含在批量作业中的每个资源创建一个 MutateOperation。
CampaignOperation 和 CampaignAssetOperation 要求
为效果最大化广告系列 Campaign(brand_guidelines_enabled 默认为 true,除非您将其设置为 false 或制作指定旅行目标的广告系列)启用品牌规范后,您必须使用 CampaignAsset 资源将品牌 Asset 资源关联到该广告系列。本地生活服务效果最大化广告系列不支持品牌规范,并会忽略品牌 CampaignAsset 资源(在制作广告系列时将 brand_guidelines_enabled 设置为 false)。仅当您制作不含自定义 AssetGroupAsset 资源(HTML5 MEDIA_BUNDLE 素材资源除外)的无素材资源广告系列时,或者当 brand_guidelines_enabled 设置为 false 时,零售效果最大化广告系列(具有 Merchant Center Feed)才能在同一原子子批次中省略品牌 CampaignAsset 资源。
在批量作业中,创建 Campaign 资源本身后,立即创建这些 CampaignAsset 资源(原子子批次中总共最多 1,000 项操作)。Campaign create 操作 (resource_name) 及其后续 CampaignAsset create 操作 (campaign) 必须指定相同的负临时 ID,并且任何前提条件 AssetOperation create 操作都必须放在 Campaign 创建之前。如果 CampaignAsset 资源未在 Campaign 资源之后立即创建(启用品牌规范时;请参阅问题排查),请求会失败并返回 CampaignError,表示缺少素材资源。即使在同一操作列表的后面包含 CampaignAsset 创建操作,也无法避免此错误。
AssetGroupOperation 和 AssetGroupAssetOperation 要求
当您使用 AssetGroupAsset 创建 AssetGroup 资源和关联的 Asset 资源,以满足最低素材资源要求时,在批量作业中创建 AssetGroup 和 AssetGroupAsset 资源的 MutateOperation 对象必须按顺序排列,中间不能有其他操作,因为这些操作会分组到原子子批次中(每个子批次总共最多 1,000 项操作)。在 AssetGroup create 操作 (resource_name) 及其连续的 AssetGroupAsset create 操作 (asset_group) 中指定相同的负临时 ID,并将所有前提条件 AssetOperation create 操作放在 AssetGroup 创建之前。否则,请求会失败,并显示 AssetGroupError,指明缺少某些素材资源,即使满足最低素材资源要求所需的操作稍后包含在操作列表中也是如此。
AssetGroupListingGroupFilterOperation 最佳实践
创建、更新或移除 AssetGroupListingGroupFilter 资源时,请将针对同一 AssetGroup 的所有 AssetGroupListingGroupFilterOperation 操作连续添加到批量作业中,以便在批量拆分期间将这些操作分组到一个原子子批次中。如需详细了解批次拆分以及影响产品信息组的其他因素,请参阅产品信息组批处理指南。
将变更操作添加到作业
将第 2 步中的更改操作添加到列表中,然后调用 AddBatchJobOperations 方法,将更改列表添加到第 1 步中创建的批量作业中。按照常规批处理指南中的添加操作步骤,添加 mutate 操作列表。
运行批量作业
通过调用 RunBatchJob 方法开始运行上传的操作。如需查看示例,请参阅常规批处理指南中的运行批量作业步骤。
轮询作业状态并检索结果
批量作业作为长时间运行的操作运行,通常需要一些时间才能完成。启动作业后,请对 google.longrunning.Operations 服务使用 Operations.GetOperation 方法(或使用 GoogleAdsService 查询 batch_job.status),以轮询作业的状态,直到作业完成。
批量作业完成后,调用 ListBatchJobResults 方法,检索作业中每项操作的状态和响应。如需查看示例,请参阅列出所有批量作业结果。