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.

pmax_campaign

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:

edit_pmax

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