在 AdGroupCriterion.listing_group
或 AssetGroupListingGroupFilter
的上下文中处理商品详情组过滤条件时,请在设计集成时考虑以下事项。
批次拆分
如果批处理作业中包含任何广告组条件或素材资源组商品详情组过滤条件,则当 Google Ads API 服务器收到该批处理作业时,其中的操作会被拆分为多个子批处理作业。请注意,与批处理作业中的标准操作不同,包含商品详情组过滤操作的每个子批处理都会被视为原子操作。
包含商品详情组过滤条件的批处理作业拆分为子批次的方式取决于以下因素:
- 商品详情组过滤条件的类型
- 相应产品信息组过滤条件所定位的
AdGroupCriterion
或AssetGroup
- 操作顺序
考虑操作的分组方式:
- 以同一
AssetGroup
为目标的所有连续AssetGroupListingGroupFilterOperation
操作都将分组到原子子批次中(不会出现部分失败行为)。 - 所有包含以同一
AdGroup
为目标的listing_group
的连续AdGroupCriterionOperation
操作都将分组到原子子批次中(不会出现部分失败行为)。 - 所有其他连续操作都将分组到非原子子批次中(部分失败行为)。
下图展示了这一概念。每个灰色框都表示使用 Google Ads API 提交的批处理作业。在灰色框内,各个操作按颜色分组,表示 Google Ads API 服务器创建的子批次。每个灰色框中的操作顺序与将操作添加到批处理作业的顺序相对应。
限制
在批处理作业中使用商品详情组过滤条件时,有以下限制:
- 包含
listing_group
且以同一AdGroup
为目标的一批AssetGroupListingGroupFilterOperation
操作不得超过 20,000 个。不过,建议不要超过 10,000 次操作。 - 针对同一
AssetGroup
的单个批次AssetGroupListingGroupFilterOperation
操作不得超过 10,000 个操作。 - 如果违反其中任一条件,整个批处理作业都会失败。
问题排查
批处理作业中的商品详情组过滤条件操作会作为一个事务进行处理,这可能会导致因少量错误操作而导致许多操作失败。此外,由于 BatchJob
操作的处理方式,故障的根本原因可能会出现在下游故障之前的索引处,也可能会出现在下游故障之后的索引处。
例如,在处理 ListBatchJobResults
的响应时,您可能会发现多项操作失败,并显示状态消息 Ad group is invalid due to the listing
groups it contains
。此消息通常表示,由于其他索引处的操作失败,此索引处的操作已被取消。为了确定问题的根本原因,我们建议您遍历 BatchJobResult
中的所有状态消息(包括 Ad group is invalid
错误消息的索引之前和之后的消息),以查找其他错误信息。