Перечисление групповых фильтров в пакетных заданиях

При работе с фильтрами групп объявлений в контексте AdGroupCriterion.listing_group или AssetGroupListingGroupFilter , при проектировании интеграции следует учитывать следующие моменты.

Разделение на партии

Если в пакетном задании есть операции, содержащие критерии для групп объявлений или фильтры для групп активов, то при получении сервером Google Ads API эти операции разбиваются на несколько подпакетов . Обратите внимание, что в отличие от стандартных операций в пакетном задании, каждый подпакет, содержащий операции с фильтрами групп объявлений, обрабатывается атомарно.

Способ разделения пакетных заданий, содержащих фильтры групп, на подпакеты определяется следующими факторами:

  1. Тип фильтра группы объявлений
  2. Критерий AdGroupCriterion или AssetGroup на которые нацелен фильтр группы объявлений.
  3. Порядок действий

Рассмотрим, как сгруппированы операции:

  • Все последовательные операции AssetGroupListingGroupFilterOperation , нацеленные на одну и ту же AssetGroup группируются в атомарный подпакет (частичные сбои исключены).
  • Все последовательные операции AdGroupCriterionOperation , содержащие listing_group , нацеленный на одну и ту же AdGroup группируются в атомарный подпакет (частичные сбои исключены).
  • Все остальные последовательные операции группируются в неатомарные подгруппы (поведение, характеризующееся частичным отказом).

Следующая диаграмма иллюстрирует эту концепцию. Каждый из серых прямоугольников представляет собой пакетное задание, отправленное с использованием API Google Ads. Внутри серых прямоугольников отдельные операции сгруппированы по цвету, чтобы представить подпакеты, создаваемые сервером API Google Ads. Порядок операций в каждом из серых прямоугольников соответствует порядку, в котором операции были бы добавлены в пакетное задание.

изображение

Ограничения

При работе с фильтрами групп в контексте пакетных заданий действуют следующие ограничения:

  • Длина одной группы операций AdGroupCriterionOperation , содержащей listing_group и нацеленной на одну и ту же AdGroup , не может превышать 20 000 операций. Однако рекомендуется не превышать 10 000 операций.
  • В одной группе операций AssetGroupListingGroupFilterOperation , нацеленных на одну и ту же AssetGroup не может быть более 10 000 операций.
  • Нарушение любого из этих условий приводит к сбою всего пакетного задания.

Поиск неисправностей

Операции фильтрации по группам в пакетном задании обрабатываются как одна транзакция, что может привести к ситуациям, когда множество операций завершаются с ошибкой из-за небольшого количества ошибочных операций. Кроме того, из-за особенностей обработки операций BatchJob , первопричина сбоев может находиться в индексе до или после последующих сбоев.

Например, при обработке ответа от ListBatchJobResults вы можете обнаружить, что несколько операций завершились с ошибкой со статусом « Ad group is invalid due to the listing groups it contains . Это сообщение обычно указывает на то, что операция по этому индексу была отменена из-за неудачной операции по другому индексу. Чтобы определить первопричину проблемы, мы рекомендуем перебрать все сообщения о статусе в BatchJobResult — до и после индекса, Ad group is invalid — в поисках дополнительной информации об ошибке.