4.4 Gerenciamento de campanhas
Introdução
É importante que os comerciantes possam fazer mudanças nas campanhas depois que elas forem criadas. Os aspectos mais importantes que eles precisam conseguir alterar são os seguintes:
- Orçamento
- Status (pausando, ativando, removendo)
- Segmentação por área geográfica (recomendada, mas opcional)
- Qualquer outro campo que você incluiu na interface de criação da campanha
Orientação sobre UX
Mostrar a lista de campanhas na página de visão geral e em uma página separada como parte dos relatórios de performance de campanhas. Permitir que os usuários pausem, excluam e editem campanhas.
A edição de uma campanha precisa permitir que o comerciante modifique os mesmos campos que incluiu durante a criação. Confira abaixo um exemplo de como isso pode ficar:
Orientação técnica
Depois de criar uma campanha Performance Max para varejo, você pode mudar as seguintes configurações:
- Nome da campanha
- Orçamento da campanha
- Campaign status
- Critérios de segmentação da campanha
Confira uma visão geral detalhada de como modificar recursos no
Guia para desenvolvedores. É possível modificar um recurso específico usando o endpoint de serviço exposto para modificar esse recurso (por exemplo, CampaignService.MutateCampaigns
) ou mudar em vários recursos diferentes usando a funcionalidade de modificação em massa disponível com o endpoint GoogleAdsService.Mutate
.
Sempre que possível, recomendamos fazer alterações em massa para reduzir o número de operações necessárias para atualizar uma campanha. Com isso em mente, projete sua arquitetura usando o endpoint GoogleAdsService.Mutate
em vez de endpoints de recursos individuais. Isso também permite uma extensão mais fácil de
funcionalidade no futuro.
Os exemplos posteriores presumem que você já tem os IDs relevantes armazenados no seu banco de dados local.
Nome da campanha
Para atualizar o nome de uma campanha, é necessário modificar o campo Campaign.name
.
Ele não pode conter caracteres nulos (ponto de código 0x0
), feed de linha NL (ponto de código 0xA
)
ou retorno de carro (ponto de código 0xD
).
Orçamento da campanha
Recomendamos atualizar um orçamento atual em vez de substituí-lo por um novo. Isso garante que sua campanha gaste conforme esperado e não leve a um excesso de exibição.
Atualize apenas o valor do orçamento e não altere nenhum outro campo, aumentando o valor do gasto DIÁRIO.
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
Para atualizar o status (ativar/pausar/remover) de uma campanha, mude o campo
Campaign.status
e atribua o status relevante do tipo enumerado
CampaignStatus
.
Confira um exemplo de modificação do status da campanha no exemplo de código para atualizar campanha.
Critérios da campanha
Ao atualizar os critérios da campanha, você só precisa oferecer a capacidade de atualizar os critérios expostos ao usuário. Isso é, no mínimo, a segmentação por área geográfica e, possivelmente, a segmentação por idioma. Você pode encontrar um exemplo de atualização de um critério de campanha no código de amostra para atualizar o modificador de lance do critério da campanha.
Para atualizar os critérios de segmentação por área geográfica, atualize o CampaignCriterion.location
para o valor da nova constante de segmentação por área geográfica.
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
Para atualizar os critérios de segmentação por idioma, é necessário atualizar o valor de
CampaignCriterion.language
com a nova constante de idioma.
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