4.4 Управление кампанией

Введение


Важно предоставить продавцам возможность вносить изменения в свою кампанию после ее создания. Наиболее важные аспекты, которые они должны иметь возможность изменить, заключаются в следующем:

  • Бюджет
  • Статус (приостановка, включение, удаление)
  • Геотаргетинг (рекомендуется, но необязательно)
  • Любое другое поле, которое вы включили в интерфейс создания кампании.

UX-руководство


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

pmax_campaign

Редактирование кампании должно позволять продавцу изменять те же поля, которые он вводил при создании кампании. Пример того, как это может выглядеть, показан ниже:

edit_pmax

Техническое руководство


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

  • Название кампании
  • Бюджет кампании
  • Статус кампании
  • Критерии таргетинга кампании

Подробный обзор того, как изменять ресурсы, можно найти в Руководстве разработчика. Вы можете изменить определенный ресурс, используя предоставленную конечную точку службы для изменения этого ресурса (например, CampaignService.MutateCampaigns ) или изменить несколько разных ресурсов, используя функцию массового изменения, доступную с помощью конечной точки GoogleAdsService.Mutate .

По возможности мы рекомендуем выполнять массовое изменение , чтобы сократить количество операций, необходимых для обновления кампании. Имея это в виду, вам следует спроектировать свою архитектуру с использованием конечной точки GoogleAdsService.Mutate вместо конечных точек отдельных ресурсов. Это также позволит упростить расширение функциональности в будущем.

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

Название кампании

Чтобы обновить название кампании, вам необходимо изменить поле Campaign.name .

Он не должен содержать нулевых символов (кодовая точка 0x0 ), перевода строки NL (кодовая точка 0xA ) или возврата каретки (кодовая точка 0xD ).

Бюджет кампании

Лучшей практикой считается обновление существующего бюджета вместо его замены новым бюджетом. Это гарантирует, что ваша кампания будет расходоваться в соответствии с ожиданиями и не приведет к перерасходу средств.

Вам следует только обновлять значение бюджета, а не изменять какие-либо другие поля, увеличивая значение ЕЖЕДНЕВНЫХ расходов.

Python
budget_resource_name = client.get_service(
        "CampaignBudgetService"
    ).campaign_budget_path(customer_id, budget_id)

mutate_operation = client.get_type("MutateOperation")
campaign_budget = mutate_operation.campaign_budget_operation.update

campaign_budget.resource_name = budget_resource_name

# update the budget amount to the new value

campaign_budget.amount_micros = 50000000

client.copy_from(
    mutate_operation.campaign_budget_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_budget._pb),
)
return mutate_operation

Статус кампании

Чтобы обновить статус (включить/приостановить/удалить) кампании, вам необходимо изменить поле Campaign.status и присвоить соответствующий статус из перечисления CampaignStatus .

Пример изменения статуса кампании вы можете найти в примере кода для обновления кампании .

Критерии кампании

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

Чтобы обновить критерии геотаргетинга, вы обновляете CampaignCriterion.location до значения новой константы геотаргетинга.

Python
criterion_rname = client.get_service(
    "CampaignCriterionService"
    ).campaign_criterion_path(
    customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the geo to the update geo targeting

campaign_criterion.location.geo_target_constant = (
   geo_target_constant_service.geo_target_constant_path("1022762")
) # Brooklyn

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation

Чтобы обновить критерии языкового таргетинга, вам необходимо обновить значение CampaignCriterion.language , указав новую языковую константу.

Python
campaign_criterion_service = client.get_service("CampaignCriterionService")

criterion_rname = campaign_criterion_service.campaign_criterion_path(
   customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the language to the updated language
# For a list of all language codes, see:
# https://developers.google.com/google-ads/api/data/codes-formats#languages
campaign_criterion.language.language_constant = (
    googleads_service.language_constant_path("1000")
)  # English

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation