在 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
操作的长度不得超过 2 万个操作。不过,建议不要超过 10,000 个操作。 - 针对同一
AssetGroup
的单个批量AssetGroupListingGroupFilterOperation
操作不得超过 10,000 个操作。 - 如果违反上述任一条件,整个批处理作业都会失败。
问题排查
批量作业中的列表群组过滤操作会作为一个事务进行处理,这可能会导致由于少数错误操作而导致许多操作失败。此外,由于 BatchJob
操作的处理方式,失败的根本原因可能会出现在下游失败之前或之后的索引中。
例如,在处理来自 ListBatchJobResults
的响应时,您可能会发现有多个操作失败,并收到状态消息 Ad group is invalid due to the listing
groups it contains
。此消息通常表示由于其他索引上的操作失败,此索引上的操作已被取消。为了找出问题的根本原因,我们建议您迭代 BatchJobResult
中的所有状态消息(在 Ad group is invalid
错误消息的索引之前和之后),以查找其他错误信息。