Pular para o artigo
← Voltar ao blog TRáFEGO PAGO

Como criar uma campanha de Google Ads inteira via MCP: orçamento, campanha, grupo, keywords e RSA

A cadeia completa de criação de campanha de Pesquisa via MCP, o papel de cada resourceName e por que a versão atômica evita estrutura órfã na conta.

Criar uma campanha de Pesquisa no Google Ads pela interface leva de 40 a 60 minutos quando você faz direito. Não porque seja difícil, mas porque são cinco objetos encadeados, cada um dependendo do anterior, espalhados por telas diferentes. Via MCP, a mesma estrutura sai em uma chamada — se você entender a cadeia. É isso que este artigo destrincha.

Se você ainda não viu o panorama geral, comece pelo guia de Google Ads MCP. Aqui eu vou direto na operação.

A cadeia: cinco objetos, uma ordem obrigatória

A API do Google Ads não deixa você criar campanha sem orçamento, nem anúncio sem grupo. A ordem é rígida:

  1. Orçamento (ads_create_budget) → devolve um resourceName
  2. Campanha (ads_create_search_campaign) → consome o resourceName do orçamento, devolve o dela
  3. Grupo de anúncios (ads_create_ad_group) → consome o da campanha
  4. Palavras-chave (ads_add_keywords) → consome o do grupo
  5. Anúncio RSA (ads_create_responsive_search_ad) → consome o do grupo

O resourceName é o identificador canônico de cada objeto na API. Formato: customers/1234567890/campaignBudgets/987654321. Não é o ID que você vê na interface — é o caminho completo, incluindo a conta. Toda tool de escrita que atua sobre um objeto existente pede esse caminho, não o ID solto.

Passo 1 — Orçamento

Parâmetros mínimos: customerId, name e dailyAmount. O valor vai na moeda da conta, em unidade normal: 30 significa R$ 30,00 por dia. Nada de micros aqui — a conversão para micros acontece dentro da tool, e isso evita a classe de erro mais comum de quem mexe na API do Ads na unha.

Detalhe operacional: nomeie o orçamento com a mesma convenção da campanha. Você vai precisar achá-lo depois para ads_update_budget, e conta de cliente antiga costuma ter uma dezena de orçamentos órfãos com nome genérico.

Passo 2 — Campanha

Pede customerId, name e budgetResourceName. Os opcionais é que definem a qualidade do que você sobe:

  • biddingStrategyMANUAL_CPC (padrão), MAXIMIZE_CLICKS ou MAXIMIZE_CONVERSIONS
  • searchNetwork — parceiros de pesquisa, padrão true
  • contentNetwork — Rede de Display, padrão false
  • startDate / endDate — formato YYYY-MM-DD
  • status — padrão PAUSED

Dois desses merecem atenção. Display vem desligado por padrão, e isso está certo. Campanha de Pesquisa com Display ligado é a origem clássica de tráfego lixo em conta pequena — a interface do Google marca essa caixa para você e muita gente nunca desmarca.

E a campanha nasce pausada. Isso é proteção, não limitação. Você sobe a estrutura, revisa, e só então ativa. Não existe cenário de “a IA criou e começou a gastar” se o padrão é pausado.

Sobre estratégia de lance: não suba MAXIMIZE_CONVERSIONS em campanha nova sem histórico de conversão na conta. O algoritmo não tem sinal para otimizar e você vai queimar orçamento aprendendo. MANUAL_CPC ou MAXIMIZE_CLICKS nas primeiras semanas, depois migra.

Passo 3 — Grupo de anúncios

campaignResourceName, customerId, name. Opcionalmente defaultCpc (ex: 1.50) e status, que aqui nasce ENABLED — faz sentido, já que a campanha acima está pausada e segura tudo.

Se a campanha é MANUAL_CPC, defina o defaultCpc. Sem ele o grupo herda um lance que raramente é o que você quer.

Passo 4 — Palavras-chave

Recebe uma lista com text e matchType (BROAD, PHRASE, EXACT). Duas coisas importam:

Primeiro, a tool aceita partialFailure, ligado por padrão. Se você mandar 60 keywords e 4 tiverem caractere inválido ou passarem do limite de tamanho, as 56 boas entram e você recebe succeeded[] e failed[]. Sem isso, uma keyword ruim abortaria o lote e você ficaria sem saber o estado da conta.

Segundo, não misture tipos de correspondência no mesmo grupo sem intenção. Broad e exact no mesmo grupo competindo pelo mesmo termo é o jeito mais rápido de tornar o relatório de termos de busca ilegível.

Passo 5 — Anúncio responsivo

ads_create_responsive_search_ad pede o grupo, as headlines, as descriptions e a final URL. Os limites do Google seguem valendo: headline até 30 caracteres, description até 90, até 15 headlines e 4 descriptions.

Se você mandar 3 headlines porque “é o mínimo”, o ad strength vai sair POOR e você perde alcance no leilão. Mande pelo menos 8 headlines com ângulos distintos — benefício, prova, urgência, termo exato da keyword, chamada para ação. O modelo escreve isso bem se você der contexto do negócio; o que ele não faz sozinho é saber que o cliente não pode prometer resultado por questão regulatória. Esse filtro é seu.

O atalho: criação atômica

Fazer os cinco passos separados tem um problema real: se o passo 4 falhar, você fica com orçamento, campanha e grupo vazios na conta. Estrutura órfã, que ninguém lembra de limpar e que aparece meses depois como “o que é isso aqui?”.

ads_create_full_search_campaign resolve isso executando a cadeia inteira numa transação atômica: orçamento → campanha → grupo → keywords → RSA. Ou tudo entra, ou nada entra.

Use a versão atômica para cliente novo e estrutura padrão. Use os passos separados quando estiver construindo algo incomum, ou quando precisar inspecionar o retorno de um passo antes de decidir o próximo.

O que a cadeia não faz — e que você precisa fazer depois

Este é o ponto que mais gera campanha ruim no ar. A cadeia de criação não define segmentação geográfica nem idioma. Sem isso, a campanha roda no padrão da conta, que costuma ser “todos os países e todos os idiomas”.

Uma campanha de advogado previdenciário em Maringá rodando para o mundo inteiro é dinheiro evaporando em clique irrelevante. Duas chamadas resolvem: ads_search_geo_targets para achar o ID do local por nome, e ads_add_campaign_locations para aplicar. Mais ads_add_campaign_languages para travar em português.

Também não entram: negativas iniciais, extensões de anúncio e ação de conversão. As negativas de partida você aplica com ads_add_negative_keywords logo depois — nunca suba campanha nova sem a lista básica de negativas do nicho.

Sempre valide antes

Toda tool dessa cadeia aceita validateOnly: true. Com ele, a chamada vai até a API do Google, é validada de verdade, e não persiste nada. Você descobre que o nome do orçamento já existe, que a headline passou de 30 caracteres ou que a estratégia de lance é incompatível — antes de sujar a conta do cliente.

O fluxo que eu uso é sempre o mesmo: monta a chamada completa, roda com validateOnly, lê os erros, corrige, roda de novo em dry-run até vir limpo, e só então executa de verdade. Custa uma chamada extra e evita a conversa de “por que tem três campanhas com o mesmo nome aqui”.

Checklist antes de ativar

  • Segmentação geográfica aplicada e conferida
  • Idioma travado
  • Display desligado (a menos que você queira)
  • Negativas iniciais do nicho no grupo
  • Ad strength do RSA acima de POOR
  • Final URL abrindo, com rastreamento funcionando
  • Ação de conversão existente e recebendo dado
  • Orçamento diário compatível com o CPC do nicho

Só depois disso, ads_update_campaign_status para ENABLED.

Nos próximos artigos eu abro a segmentação geográfica em detalhe e o setup de conversão ligando Google Ads e GA4 — os dois pontos onde a estrutura criada via MCP costuma ficar incompleta.

Quer levar isso para a sua operação?

Quer montar uma campanha de Pesquisa inteira em uma conversa?

Posso te mostrar como orçamento, campanha, grupo, keywords e RSA saem numa cadeia só, sem estrutura órfã na conta.

Falar com Maycon no WhatsApp

Atendimento direto pelo WhatsApp.