Fluxo completo, testado e seguro para criar campanhas de Pesquisa (Search) do CCA-F Prep (claudeprep.io) no Google Ads via MCP GOOGLE ADS B2 TECH. Use SEMPRE que o Bruno pedir para criar, montar, subir, lançar ou configurar campanha de Google Ads / Search / anúncios de pesquisa / tráfego pago para o CCA-F Prep, CCAF Prep, claudeprep.io, comunidade CCA-F, simulados CCA-F ou preparatório para a certificação Claude Certified Architect — mesmo que ele não diga "Google Ads" explicitamente. A skill já traz a copy validada do produto (headlines, descrições, keywords, sitelinks, callouts dentro dos limites), o orçamento padrão de R$ 20/dia e executa o funil correto (orçamento → campanha → ad group → RSA → keywords → sitelinks → callouts → geo → ativação), com os workarounds do wrapper, checagem anti-duplicação e conformidade de marca Anthropic. Acione esta skill ANTES de chamar qualquer tool de criação do Google Ads para este produto. Também roda headless via fila agent_jobs (kind=create_google_ads, `claude -p --dang
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Fluxo completo, testado e seguro para criar campanhas de Pesquisa (Search) do CCA-F Prep (claudeprep.io) no Google Ads via MCP GOOGLE ADS B2 TECH. Use SEMPRE que o Bruno pedir para criar, montar, subir, lançar ou configurar campanha de Google Ads / Search / anúncios de pesquisa / tráfego pago para o CCA-F Prep, CCAF Prep, claudeprep.io, comunidade CCA-F, simulados CCA-F ou preparatório para a certificação Claude Certified Architect — mesmo que ele não diga "Google Ads" explicitamente. A skill já traz a copy validada do produto (headlines, descrições, keywords, sitelinks, callouts dentro dos limites), o orçamento padrão de R$ 20/dia e executa o funil correto (orçamento → campanha → ad group → RSA → keywords → sitelinks → callouts → geo → ativação), com os workarounds do wrapper, checagem anti-duplicação e conformidade de marca Anthropic. Acione esta skill ANTES de chamar qualquer tool de criação do Google Ads para este produto. Também roda headless via fila agent_jobs (kind=create_google_ads, `claude -p --dangerously-skip-permissions ".claude/skills/criacao-de-campanha-google-ads-ccaf-prep"`).
Skill operacional específica de produto para subir campanhas de Pesquisa do CCA-F Prep (comunidade de preparação para o Claude Certified Architect — Foundations) pelo MCP GOOGLE ADS B2 TECH. Deriva da skill agnóstica criacao-de-campanha-google-ads; o método e os guardrails são os mesmos — aqui o produto, a copy e os defaults já vêm resolvidos.
Ficha do produto (defaults desta skill)
Parâmetro
Valor
Produto
CCA-F Prep — Comunidade + simulados + mentorias (12 meses)
URL final
https://claudeprep.io/
Orçamento diário
R$ 20,00/dia
Estratégia de lance
TARGET_SPEND (maximizar cliques)
Match type
PHRASE
Geo
Brasil ["2076"]
Idioma (keyword ideas)
language_id: "1014" (pt-BR)
Conta
customer_id: 4342319594 (Blog B2 Tech, BRL)
Display path
path1: "cca-f" · path2: "prep"
Nome da campanha
CCAF Prep - Search - TARGET_SPEND | {DD/MM HH:MM}
Oferta vigente (confirme se mudou antes de subir): founder R$ 2.497 ou 12x R$ 249,70 · 240 questões · 6 cenários · mentorias semanais · 12 meses de acesso. A copy pronta está em references/copy-ccaf-prep.md — leia antes de montar a chamada.
Se o Bruno pedir campanha para outro produto, esta skill não se aplica — use a skill agnóstica criacao-de-campanha-google-ads.
Princípios inegociáveis
Preview antes de criar, sempre. Toda tool de criação aceita preview: true — rode primeiro para validar limites e estrutura server-side, depois preview: false. Vale para campanha, sitelinks e callouts.
Tudo nasce PAUSED. O funil cria tudo pausado; nada gasta até ativação explícita. Ativar é passo separado e exige confirmação.
Se um passo falha no meio, os recursos já criados não sofrem rollback — voltam no retorno como inertes. Reaproveite-os no retry; nunca recrie do zero.
O funil NÃO é atômico.
resource_names
Confirmar antes de gastar. Ativação, mudança de orçamento ou geo exigem o "ok" do Bruno. Apresente o plano, espere a confirmação.
Modo headless (fila agent_jobs — kind create_google_ads)
Passo 0 — detecte o modo ANTES de qualquer outra coisa (antes até do pré-flight).
Rode via Bash:
O poller da fila agent_jobs sempre exporta AGENT_JOB_ID (poll-agent-jobs.sh linha 140);
numa sessão interativa com o Bruno essa env não existe. Não adivinhe o modo pelo tom do
prompt — um run da fila que "pergunta e sai com exit 0" é um bug silencioso: o job conta
como sucesso sem ter feito nem registrado nada.
Se MODO=headless: não há humano para responder. Regras que SUBSTITUEM os pontos
interativos desta skill:
NUNCA chame AskUserQuestion nem pare esperando confirmação — deadlock. Todas as
frases "confirme com o Bruno / espere o ok" valem só no modo interativo. No headless,
os defaults da ficha do produto valem integralmente (R$ 20/dia, TARGET_SPEND,
PHRASE, BR, copy de references/copy-ccaf-prep.md).
Anti-dup vira término gracioso. Se o pré-flight achar campanha com CCAF Prep ou
CCA-F Prep no nome com status ENABLED ou PAUSED criada há menos de 7 dias, NÃO
crie nada: grave o operation_logs de skip (passo 4 — OBRIGATÓRIO, não pule) com
summary explicando qual campanha já existe, e encerre com exit 0 (isso é
sucesso, não falha).
NUNCA ative nada. Pule o passo de ativação por completo (as tools update_*_status
nem estão no allowed-tools). A campanha fica PAUSED; ativação é manual do Bruno.
Persista em operation_logs via REST — no headless o MCP do Supabase é OAuth-gated
e NÃO está disponível; use curl com os envs que o runner já tem (SUPABASE_URL +
SUPABASE_SECRET_KEY). Uma linha por entidade criada (ou uma única de skip):
⚠️ A constraint operation_logs_action_check só aceita action em
create|update|delete|activate|pause — não existe skip. No skip use
action='update' (no-op) com o summary começando com SKIP (anti-dup headless, nenhuma alteracao feita): job <id> ... e meta_entity_id = resource_name da campanha
já existente. client_id do brunobracaioli é o acima. NÃO grave nas tabelas
campaigns/ad_sets/ads — o schema delas é específico da Meta. Este passo NÃO é
opcional: o run só está completo depois do POST retornar 2xx (confira com
-w '%{http_code}' se em dúvida).
Erro no meio do funil: siga o workaround do Caminho B reaproveitando os
resource_names já criados. Se ainda assim não der para concluir sem violar um limite,
grave operation_logs com action='update' e summary começando com ERROR: + o
request_id, e saia com exit ≠ 0 — nunca deixe recurso órfão sem registro.
⚠️ Conformidade de marca (específico deste produto)
O CCA-F Prep é um preparatório independente — não é afiliado, endossado nem patrocinado pela Anthropic. Isso vale também para os anúncios:
Nunca use copy que implique oficialidade: nada de "certificação oficial da B2 Tech", "curso oficial Anthropic", "parceiro oficial do exame" em headlines/descrições/sitelinks.
Pode citar nominativamente "CCA-F", "Claude Certified Architect" e "Anthropic" como referência ao exame (uso nominativo), como a copy validada já faz.
Se o Google reprovar algum asset por trademark, não brigue com variação de grafia — reporte ao Bruno; a decisão de contestar é dele (envolve os termos do Partner Network).
A landing já carrega o disclaimer legal; os anúncios devem apontar só para https://claudeprep.io/.
Intake — confirme antes de tocar em qualquer tool
Os defaults acima cobrem o caso padrão. Confirme com o Bruno, numa única pergunta consolidada, apenas o que fugir deles (orçamento diferente de R$ 20, outra estratégia de lance, geo restrito, teste A/B, etc.). Se ele só disse "sobe a campanha do CCAF Prep", os defaults valem.
⚠️ Pré-flight anti-duplicação (não pule)
Antes de criar qualquer coisa, rode list_campaigns na conta 4342319594 e verifique:
Já existe campanha do CCA-F Prep / claudeprep.io? Se sim, não duplique — pergunte ao Bruno se quer editar a existente, criar variante (ad group novo, teste A/B) ou seguir mesmo assim. Atenção: pode existir campanha antiga do produto apontando para domínio anterior — se achar, pergunte se pausa/atualiza a antiga.
O nome do orçamento é derivado do nome da campanha. Nome repetido → budget colide → funil quebra no passo budget/campaign. Garanta nome único incluindo data + hora: CCAF Prep - Search - TARGET_SPEND | {DD/MM HH:MM}.
Não há list_budgets exposta. Se suspeitar de budget órfão de um run anterior que falhou no meio, use o resource_name retornado naquele run para reaproveitá-lo no Caminho B, em vez de criar outro.
Pular este passo já levou um Claude a tentar recriar uma campanha que estava ENABLED e gastando. Não pule.
Conta e estratégia de lance
Conta de operação: customer_id: 4342319594 (Blog B2 Tech, BRL). Passe customer_id explicitamente sempre. A 1720061401 é manager/restrita — não veicule nela.
Default do produto: TARGET_SPEND. Se o Bruno pedir outra coisa: max conversões → MAXIMIZE_CONVERSIONS · max valor de conversão → MAXIMIZE_CONVERSION_VALUE · CPC manual → MANUAL_CPC.
Fluxo completo (ordem obrigatória)
Caminho A — create_search_campaign (all-in-one, preferido)
Monta budget → campaign → ad group → targeting → keywords → RSA numa chamada. Use a copy de references/copy-ccaf-prep.md: campaign_name (com data+hora), ad_group_name (ex: CCA-F Prep - Certificação), budget_amount: 20, final_urls: ["https://claudeprep.io/"], headlines (15), descriptions (4), keywords (PHRASE), geo_target_ids: ["2076"], path1: "cca-f", path2: "prep". Rode em preview: true, depois preview: false.
⚠️ Workaround — bug no passo campaign
Há histórico do passo campaign falhar com "The required field was not present." (erro genérico da Google Ads API, não nomeia o campo; independe da bidding_strategy). Quando ocorre:
O orçamento já foi criado e retorna em completed[] — anote o resource_name.
Não recrie o orçamento. Vá para o Caminho B reaproveitando esse budget.
Se o create_campaign standalone também falhar igual, é bug do wrapper (campo obrigatório omitido na mutation). Reporte ao Bruno com o request_id para corrigir o servidor; depois retome do passo que falhou.
Caminho B — funil manual (retry/controle)
Cada passo retorna o resource_name que alimenta o próximo:
Assets ficam a nível de campanha (campaignAssets), valem para todos os ad groups. Não-atômicos: se o link falhar, os assets voltam no retorno e são reutilizáveis.
Negativas — obrigatórias neste produto
O termo "cca-f"/"certificação claude" atrai busca informacional e caçador de material grátis. Após o funil, aplique add_negative_keywords a nível de campanha com a lista de negativas da copy (grátis, download, dumps, etc.). Se a tool não estiver exposta na versão corrente do MCP, avise o Bruno para aplicar no Ads Manager — deixe registrado no quadro final como item em aberto.
Geo e ativação
add_geo_targeting (campaign_resource_name, ["2076"]). Sem geo a campanha roda global e queima os R$ 20 com clique internacional — sempre trave Brasil. Pode aplicar com a campanha já ativa.
(Opcional) add_age_targeting no ad group.
Ativação — só após confirmação. Os três níveis nascem PAUSED:
Limites de caractere (respeite ou toma erro de validação)
Asset
Campo
Limite
RSA
headline
≤ 30 char (3–15 títulos)
RSA
description
≤ 90 char (2–4 descrições)
Sitelink
text
≤ 25 char
Sitelink
description1/description2
≤ 35 char cada — both-or-neither
Callout
frase
≤ 25 char (até 20)
Ad path
path1/path2
≤ 15 char cada
Acento conta como 1 caractere. A copy do produto já foi conferida contra esses limites — se editar qualquer asset, reconfira. Na dúvida, o preview confirma.
DKI — já embutida na copy
A copy validada usa 3 headlines com Inserção Dinâmica de Palavra-chave: {KeyWord:Simulado CCA-F}, {KeyWord:Certificação Claude} e {KeyWord:Curso CCA-F Prep}. Regras se for mexer:
Texto padrão (depois dos :) ≤ 30 char — é o fallback quando a keyword não cabe.
{KeyWord:...} = Title Case, padrão para headlines. Em descrição use {Keyword:...} (sentence case).
O ad group é temático (certificação CCA-F), então a inserção lê gramaticalmente. Se criar ad group novo com keywords de outro tema, revise se as DKI ainda fazem sentido.
Nunca use DKI em todos os títulos — o RSA precisa de fixos de marca/oferta.
Pesquisa de keywords (generate_keyword_ideas)
A lista base está na copy. Para expandir/dimensionar:
Sem paginação — controle por limit (máx 1000).
Use geo_target_ids: ["2076"] + language_id: "1014".
Multi-seed cirúrgico > seed amplo. Seeds bons para este produto: "certificação claude", "claude certified architect", "simulado cca-f", "certificação anthropic", "certificação de ia". Evite seeds genéricos ("inteligência artificial") — devolvem ruído informacional e CPC altíssimo.
Sempre cheque o lance de topo antes de adotar keyword nova: termo caro zera R$ 20/dia num clique.
Nicho pequeno (menos de 100 certificados no BR): volumes baixos são esperados. Não infle a lista com termo genérico de IA só para ter volume — melhor pouco tráfego qualificado do que budget queimado.
Fechamento
Termine sempre com um quadro do estado (campanha/RSA/keywords/sitelinks/callouts/negativas/geo + status). Lembre que os assets passam por revisão do Google (algumas horas) antes de servir — e que termos de marca de terceiros podem levar a revisão manual. Aponte itens em aberto (geo não travado, negativas pendentes, etc.). Nunca ative sem confirmação explícita.