При работе с фильтрами групп листинга в контексте AdGroupCriterion.listing_group или AssetGroupListingGroupFilter при проектировании интеграции примите во внимание следующие соображения.
Разделение партии
Если в пакетном задании есть операции, содержащие критерии группы объявлений или фильтры групп объявлений, при получении сервером API Google Ads операции в пакетном задании разбиваются на несколько подпакетов . Обратите внимание, что в отличие от стандартных операций в пакетном задании, каждый подпакет, содержащий операции фильтров групп объявлений, обрабатывается атомарно.
Способ разделения пакетных заданий, содержащих фильтры групп листинга, на подпакеты определяется следующими факторами:
- Тип фильтра группы листинга
-
AdGroupCriterionилиAssetGroupна который нацеливается фильтр группы листинга - Порядок операций
Рассмотрим, как сгруппированы операции:
- Все последовательные операции
AssetGroupListingGroupFilterOperation, нацеленные на одну и ту жеAssetGroup, группируются вместе в атомарный подпакет (без поведения частичного сбоя). - Все последовательные операции
AdGroupCriterionOperation, содержащиеlisting_group, нацеленные на одну и ту жеAdGroupгруппируются вместе в атомарный подпакет (без поведения частичного сбоя). - Все остальные последовательные операции группируются в неатомарные подпакеты (поведение с частичным отказом).
Следующая диаграмма иллюстрирует эту концепцию. Каждый из серых блоков представляет собой пакетное задание, отправленное через API Google Рекламы. Внутри серых блоков отдельные операции сгруппированы по цветам, чтобы представить подпакеты, создаваемые сервером API Google Рекламы. Порядок операций в каждом из серых блоков соответствует порядку, в котором они были бы добавлены в пакетное задание.
Атомарность при разделении пакетов
API Google Ads может разбить операции в отправленном пакетном задании на более мелкие подпакеты для обработки. Если вы не группируете связанные операции, например, перечисление изменений групп в AssetGroup и AdGroup последовательно в рамках одного пакетного задания, API Google Ads может разбить эти операции на отдельные подпакеты. Такое разделение может привести либо к сбою всего изменения, либо к нестабильности состояния аккаунта.
Логическая группировка
AssetGroupListingGroupFilterOperation управляет группами объявлений внутри AssetGroup , что часто встречается в кампаниях с максимальной эффективностью. AdGroupCriterionOperation управляет группами объявлений внутри AdGroup , что часто встречается в стандартных торговых кампаниях. Оба они используются для определения таргетинга товаров. Если вы вносите изменения, влияющие на иерархию таргетинга товаров в обоих контекстах, сгруппируйте эти операции последовательно в пакетном задании, чтобы гарантировать их совместное применение.
Согласованность данных
Чтобы поддерживать согласованность данных и предотвращать частичные обновления, последовательно добавляйте связанные операции по группировке листингов в пакетное задание. Такой порядок позволяет группировать их в атомарные подпакеты с помощью логики разделения пакетов API, что предотвращает несогласованность данных в вашем аккаунте.
Ограничения
При работе с фильтрами групп листинга в контексте пакетных заданий действуют следующие ограничения:
- Длина одного пакета операций
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 — в поисках дополнительной информации об ошибке.