Пакетная обработка для кампаний с максимальной эффективностью

Пакетная обработка позволяет отправлять набор операций, которые могут быть взаимозависимыми, в несколько сервисов, не дожидаясь синхронного завершения операций. Для создания кампаний с максимальной эффективностью и управления ими можно использовать пакетную обработку.

В этом руководстве приведены сведения о пакетной обработке в кампаниях с максимальной эффективностью. Общая информация о пакетной обработке приведена в руководстве по пакетной обработке, а подробные сведения о создании запросов для создания кампаний с максимальной эффективностью и управления ими – в руководстве по структурированию запросов.

Чтобы создать кампанию с максимальной эффективностью с помощью пакетной обработки, выполните следующие действия:

Как создать пакетное задание

Следуйте инструкциям по созданию задания пакетной обработки, чтобы создать ресурс BatchJob.

Подготовка списка операций изменения

Для создания кампаний с максимальной эффективностью требуется создать несколько связанных ресурсов, как описано в руководстве по структурированию запросов. Создайте объект MutateOperation для каждого ресурса, который должен быть включен в пакетное задание.

Требования к CampaignOperation и CampaignAssetOperation

Если для кампании с максимальной эффективностью Campaign включены правила фирменного оформления (brand_guidelines_enabled по умолчанию имеет значение true, если вы не задали значение false или не создали кампанию для целей туризма), вам нужно связать ресурсы бренда Asset с кампанией, используя ресурсы CampaignAsset. Кампании с максимальной эффективностью для местных услуг не поддерживают правила фирменного оформления и не используют ресурсы бренда CampaignAsset (при создании кампании задайте для brand_guidelines_enabled значение false). В кампаниях с максимальной эффективностью для розничной торговли (с фидом Merchant Center) можно не указывать ресурсы CampaignAsset бренда в одном атомарном подпакете, только если вы создаете кампанию без объектов и без пользовательских ресурсов AssetGroupAsset (кроме объектов MEDIA_BUNDLE HTML5) или если для brand_guidelines_enabled задано значение false.

В пакетном задании создайте эти ресурсы CampaignAsset сразу после создания самого ресурса Campaign (всего до 1000 операций в атомарном подпакете). Операция create Campaign (resource_name) и последующие операции create CampaignAsset (campaign) должны указывать один и тот же отрицательный временный идентификатор, а все необходимые операции create AssetOperation должны выполняться до создания Campaign. Если ресурсы CampaignAsset не создаются сразу после ресурса Campaign (когда включены правила фирменного оформления; см. устранение неполадок), запрос завершается ошибкой и возвращает CampaignError, указывая на отсутствующие объекты. Если вы добавите операции по созданию CampaignAsset в тот же список, это не поможет избежать ошибки.

Требования к AssetGroupOperation и AssetGroupAssetOperation

Когда вы создаете ресурсы AssetGroup со связанными ресурсами Asset, используя AssetGroupAsset, чтобы выполнить минимальные требования к объектам, объекты MutateOperation, которые создают ресурсы AssetGroup и AssetGroupAsset в пакетном задании, должны быть последовательными, без других операций между ними. Это связано с тем, как эти операции группируются в атомарные подпакеты (всего до 1000 операций на подпакет). Укажите один и тот же отрицательный временный идентификатор в операции AssetGroup create (resource_name) и в последующих операциях AssetGroupAsset create (asset_group). Все необходимые операции AssetOperation create должны выполняться до создания AssetGroup. В противном случае запрос не будет выполнен и вы получите ошибку AssetGroupError, указывающую на отсутствие некоторых объектов, даже если операции, необходимые для выполнения минимальных требований к объектам, включены в список операций позже.

AssetGroupListingGroupFilterOperation рекомендаций

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

Добавьте в задание операции изменения

Добавьте операции изменения из шага 2 в список и вызовите метод AddBatchJobOperations, чтобы добавить список изменений в пакетное задание, созданное на шаге 1. Чтобы добавить список операций изменения, выполните инструкции из раздела Добавление операций в общем руководстве по пакетной обработке.

Как запустить пакетное задание

Запустите загруженные операции, вызвав метод RunBatchJob. Пример приведен в разделе Запуск пакетного задания общего руководства по пакетной обработке.

Как запросить статус задания и получить результаты

Пакетные задания выполняются как продолжительные операции и обычно занимают некоторое время. После запуска задания используйте метод Operations.GetOperation в сервисе google.longrunning.Operations (или запрос batch_job.status с GoogleAdsService), чтобы опрашивать статус задания, пока оно не будет выполнено.

Когда пакетное задание будет выполнено, вызовите метод ListBatchJobResults, чтобы получить статус и ответ для каждой операции в задании. Пример приведен в разделе Как получить список всех результатов пакетного задания.