4.4 Управление кампанией
Введение
Важно предоставить продавцам возможность вносить изменения в свою кампанию после ее создания. Наиболее важные аспекты, которые они должны иметь возможность изменить, заключаются в следующем:
- Бюджет
- Статус (приостановка, включение, удаление)
- Геотаргетинг (рекомендуется, но необязательно)
- Любое другое поле, которое вы включили в интерфейс создания кампании.
UX-руководство
Покажите список кампаний на обзорной странице и на отдельной странице в рамках отчетов об эффективности кампании. Разрешить пользователям приостанавливать, удалять и редактировать кампании.
Редактирование кампании должно позволять продавцу изменять те же поля, которые он вводил при создании кампании. Пример того, как это может выглядеть, показан ниже:
Техническое руководство
Создав кампанию с максимальной эффективностью для розничной торговли, вы можете изменить следующие настройки кампании:
- Название кампании
- Бюджет кампании
- Статус кампании
- Критерии таргетинга кампании
Подробный обзор того, как изменять ресурсы, можно найти в Руководстве разработчика. Вы можете изменить определенный ресурс, используя предоставленную конечную точку службы для изменения этого ресурса (например, 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