MCP: Ads
Ad accounts, performance, audits and changes through the MCP. 22 tools.
Tools in this area, generated from the server code. The descriptions come from that code, in Portuguese. To connect, see the XBASE MCP.
ads_apply_mutation
APLICA na plataforma de anúncios uma mudança que uma pessoa JÁ APROVOU em XBASE → Anúncios → Avisos (status "approved"); não aprova nada. Só funciona com token MCP criado listando esta ferramenta explicitamente (token "todas as ferramentas" não aplica: o backend recusa com 403). Ação real: mexe em campanhas no ar e em dinheiro de verdade, sem desfazer automático. Só use quando o usuário pedir para aplicar aquela mudança específica. Rascunho não aprovado, rejeitado ou já aplicado é recusado, assim como canal sem escrita verificada; se a plataforma recusar, a mudança fica "failed" e a ferramenta devolve erro com o motivo. Pegue o mutationId em ads_list_mutations { status: "approved" }.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
mutationId | yes | Id da mutação aprovada (de ads_list_mutations) |
ads_assistant_funnel
Cliente reclamando: o furo está no tráfego ou no comercial? Resultado e custo do objetivo principal (Meta) e, no CRM, as conversas vindas dos anúncios da conta: respondidas, ignoradas, engajadas (o lead respondeu depois da 1ª resposta; costPerEngaged) e a mediana da 1ª resposta. Devolve o veredito (comercial | trafego | ambos | engajamento = o lead não volta | ok | sem-meta = falta a meta de custo, com costGoal.suggestedTargetCpl pelo ticket ou pela média | sem-crm | sem-dados) e uma mensagem pronta para mandar ao cliente (só com números medidos). Sem meta cadastrada o veredito nunca é ok: peça a meta ao usuário.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Conta de anúncios da Meta (act_<id>) |
days | no | Período em dias (padrão 30) |
ads_assistant_panorama
Panorama da conta da Meta com TODO o histórico: investido, campanhas, resultado e custo por objetivo (WhatsApp, formulário, leads e vendas no site, tráfego), melhor público (sexo e idade), melhor região e criativo campeão. Leitura pesada na Meta: chame uma vez por conversa.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Conta de anúncios da Meta (act_<id>) |
ads_assistant_scale
Plano de escala do vencedor: a campanha ativa com mais resultado dentro da meta (10+ resultados, fora do aprendizado) e os passos (subir 20% agora, repetir a cada 3 dias, abrir público novo, quando parar). O primeiro passo traz mutation { level, targetExternalId, kind, payload } para ads_draft_mutation (accountId = adAccountId, dailyBudget = payload.dailyBudget).
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Conta de anúncios da Meta (act_<id>) |
days | no | Período em dias (padrão 14) |
ads_assistant_xray
Raio-X das campanhas ativas da Meta no período: sugestões de pausar anúncio caro (custo ≥ 2× a campanha), subir ou reduzir verba (pela meta do workspace ou pela média da conta) e o que fica só observando. Cada sugestão traz mutation { level, targetExternalId, kind, payload, reason } e a resposta traz adAccountId. Para aplicar, chame ads_draft_mutation com accountId = adAccountId, level, targetExternalId, kind, dailyBudget = payload.dailyBudget (só em set_daily_budget) e reason; a pessoa aprova em Avisos. adAccountId nulo = conta ainda não sincronizada em Canais (não dá para aplicar).
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Conta de anúncios da Meta (act_<id>) |
days | no | Período em dias (padrão 14) |
ads_create_campaign
Cria uma campanha de PESQUISA no Google Ads (hoje o único tipo e canal) numa conta conectada pela API, num envio só: orçamento diário, campanha, locais, idiomas, palavras negativas, um grupo com as palavras-chave e um anúncio responsivo (3 a 15 títulos de até 30 caracteres, 2 a 4 descrições de até 90). A campanha nasce PAUSADA e não gasta; para ligar, rascunhe ads_draft_mutation { kind: "activate", level: "campaign" } e uma pessoa aprova em XBASE → Anúncios → Avisos. O link sai com UTM automática (utm_source=google, campanha, palavra-chave e criativo); finalUrlSuffix substitui o padrão ("" = sem rastreamento). Exige token de quem pode gerenciar integrações. accountId vem de ads_list_accounts (provider google, source api, selected). Locais e idiomas são ids do Google: 2076 = Brasil, 1014 = português.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Id interno da conta Google (de ads_list_accounts) |
name | yes | Nome da campanha |
dailyBudget | yes | Orçamento diário na moeda da conta (ex.: 10 = R$ 10) |
bidding | yes | maximize_clicks (sem histórico de conversão) ou maximize_conversions |
finalUrl | yes | Página de destino (https://...) |
finalUrlSuffix | no | Opcional: UTM no lugar do padrão (chave=valor&..., aceita {keyword}, {creative}); "" = sem rastreamento |
keywords | yes | Palavras-chave do grupo, com a correspondência (phrase é o meio-termo seguro) |
negativeKeywords | no | Termos que não disparam o anúncio (negativa de campanha, ampla). Ex.: ["grátis", "vaga", "curso"] |
headlines | yes | 3 a 15 títulos, até 30 caracteres |
descriptions | yes | 2 a 4 descrições, até 90 caracteres |
locations | yes | Ids de local do Google (2076 = Brasil) |
languages | yes | Ids de idioma do Google (1014 = português) |
ads_draft_mutation
Cria um RASCUNHO de mudança numa campanha, conjunto (adgroup) ou anúncio. NÃO muda nada na plataforma: uma pessoa revisa e aprova em XBASE → Anúncios → Avisos. Só canal com escrita liberada (hoje Meta e Google/YouTube; no Google: pausar/ativar campanha, grupo e anúncio, orçamento e nome da campanha, nome do grupo) e conta conectada pela API: nos outros o backend recusa — entregue a recomendação em texto. Tipos: pause, activate, set_daily_budget (dailyBudget na moeda da conta, ex.: 150.5; só campaign/adgroup), rename (name), delete (só Meta; exclui campanha, conjunto ou anúncio na plataforma, irreversível — a pessoa confirma ao aplicar), set_targeting (targeting { devices?, os?, geo?, ageMin?, ageMax? } — só o que muda; geo substitui todos os locais e usa as keys de ads_search_locations) e set_schedule (schedule { mode: "always" } ou { mode: "windows", windows: [{ days: [1,2,3,4,5], start: "08:00", end: "18:00" }] }, 0 = domingo, hora cheia, até 7 janelas; no fuso da conta) — esses dois só com level=adgroup; leia antes ads_get_entity_settings. Regras de valor (Meta; leia antes ads_list_value_rules): set_value_rules (level=adgroup, valueRuleSetId ou null para tirar), save_value_rule_set (level=account, targetExternalId = id do conjunto de regras ou "new", valueRuleSet { name, rules } — substitui o conjunto inteiro) e delete_value_rule_set (level=account; recusado se algum conjunto ainda usa). Anúncio novo do Estúdio (só Meta): create_ad (level=adgroup, targetExternalId = id do conjunto, ad { name, studioProductionId, primaryText, headline?, destination { type: "whatsapp", prefilledMessage? } ou { type: "website", url, callToAction, urlTags? }, enhancements?, status? }) — sobe o Reels (9:16 com som) ou a imagem única da produção pronta e cria o anúncio no conjunto, pausado por padrão; destino WhatsApp só em conjunto de conversas no WhatsApp. Só Google Ads (leia antes ads_get_campaign_details): add_keywords (level=adgroup, targetExternalId = id do grupo, keywords [{ text ≤80, matchType broad|phrase|exact }], até 50), update_keyword (level=adgroup, criterionId + action pause|enable|remove), add_negative_keywords (level=campaign, keywords; termos de ads_get_search_terms que gastam sem converter), remove_negative_keyword (level=campaign, criterionId), update_ad (level=ad, anúncio responsivo: headlines 3–15 de até 30, descriptions 2–4 de até 90, finalUrl https; ao menos um — o que vier substitui tudo) e set_url_suffix (level=campaign, finalUrlSuffix chave=valor&… com ValueTrack; "" = sem rastreamento). Limite de orçamento (padrão ±50% do orçamento atual por mudança; o workspace pode mudar, até 100%) é checado já no rascunho e de novo ao aplicar. reason é obrigatório (mín. 10 caracteres): escreva o porquê com os números que justificam. accountId e targetExternalId vêm de ads_list_entities (externalId), das linhas de ads_get_performance com groupBy campaign/adgroup/ad (externalId) ou do campaign de ads_get_insights (externalId, nunca key); se veio de uma auditoria, informe auditRunId. Não cria campanha.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Id interno da conta (de ads_list_accounts / ads_list_entities) |
level | yes | campaign | adgroup | ad | account (só conjunto de regras de valor) |
targetExternalId | yes | Id da campanha/conjunto/anúncio NA PLATAFORMA (externalId de ads_list_entities, de ads_get_performance por campanha/conjunto/anúncio ou de ads_get_insights; nunca o key) |
kind | yes | pause | activate | set_daily_budget | rename | delete | create_ad | set_targeting | set_schedule | set_value_rules | save_value_rule_set | delete_value_rule_set | add_keywords | update_keyword | add_negative_keywords | remove_negative_keyword | update_ad | set_url_suffix (os 6 últimos só no Google) |
dailyBudget | no | Só com set_daily_budget: novo orçamento diário na moeda da conta (não em centavos) |
name | no | Só com rename: novo nome |
targeting | no | Só com set_targeting: { devices?, os?, geo?: { countries?, regions?, cities? }, ageMin?, ageMax? } (só o que muda) |
schedule | no | Só com set_schedule: { mode: "always" } ou { mode: "windows", windows: [{ days, start, end }] } |
valueRuleSetId | no | Só com set_value_rules: id do conjunto de regras (ads_list_value_rules) ou null para tirar |
valueRuleSet | no | Só com save_value_rule_set: o conjunto INTEIRO { name, rules } (regra com id = mantém; ausente = apaga) |
ad | no | Só com create_ad: o anúncio novo (mídia da produção do Estúdio) |
keywords | no | Só com add_keywords / add_negative_keywords (Google): [{ text, matchType }] |
criterionId | no | Só com update_keyword / remove_negative_keyword (Google): criterionId de ads_get_campaign_details |
action | no | Só com update_keyword: pause | enable | remove |
headlines | no | Só com update_ad: 3–15 títulos (≤30) |
descriptions | no | Só com update_ad: 2–4 descrições (≤90) |
finalUrl | no | Só com update_ad: nova URL final (https://) |
finalUrlSuffix | no | Só com set_url_suffix: chave=valor&chave=valor (ValueTrack ok, ex.: utm_term={keyword}); "" = sem rastreamento |
reason | yes | Por que fazer a mudança (mín. 10 caracteres; quem aprova lê) |
auditRunId | no | Opcional: auditoria que motivou a mudança (auditId) |
ads_get_audit
Abre uma auditoria já feita, no mesmo resumo de ads_run_audit. full=true devolve o pacote completo do claude-ads (grande: só quando precisar das evidências ou de todos os achados).
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
auditId | yes | Id da auditoria (auditId de ads_run_audit) |
full | no | true = pacote completo; padrão false (resumo) |
ads_get_breakdown
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Id interno da conta (de ads_list_accounts / linhas de ads_get_performance) |
level | yes | campaign | adgroup |
entityId | yes | Id da campanha ou do conjunto NA PLATAFORMA (externalId) |
breakdown | yes | age | gender | region | placement | device |
period | no | today | yesterday | 7d | 14d | 30d | 90d (fuso de Brasília). Não use com since/until |
since | no | Opcional, sem period: início, YYYY-MM-DD |
until | no | Opcional, sem period: fim, YYYY-MM-DD |
ads_get_campaign_details
Detalhes de UMA campanha do Google Ads, lidos ao vivo: campaign (status, channelType, biddingStrategy, dailyBudget, finalUrlSuffix, networks, locations e languages), adGroups, keywords (criterionId, text, matchType, status, qualityScore e métricas impressions/clicks/cost/conversions do período), negatives (de campanha e de grupo) e ads (anúncio responsivo: headlines, descriptions, finalUrls, approvalStatus). Use antes de rascunhar add_keywords, update_keyword, add_negative_keywords, remove_negative_keyword, update_ad ou set_url_suffix. Só Google (outro canal = erro). Período (só para as métricas das palavras-chave): since/until YYYY-MM-DD; sem eles, 30 dias no fuso da conta.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Id interno da conta do Google (de ads_list_accounts / ads_list_entities) |
campaignId | yes | Id da campanha NO GOOGLE (externalId) |
since | no | Opcional: início, YYYY-MM-DD |
until | no | Opcional: fim, YYYY-MM-DD |
ads_get_entity_settings
Segmentação e horário ATUAIS de um conjunto de anúncios (lidos ao vivo na plataforma; hoje só Meta): devices (mobile/desktop), os (all/ios/android), geo (countries, regions e cities com key, nome e raio em km; otherTypes = outros tipos de local que somem se geo for trocado), ageMin/ageMax, budgetType (daily | lifetime), schedule { source: native | rules | none, windows } no fuso da conta (timezone) e capabilities (o que o canal aceita mudar). Use antes de rascunhar set_targeting ou set_schedule. Com orçamento diário a XBASE faz o horário com regras automáticas (source rules); com vitalício, programação nativa.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Id interno da conta (de ads_list_accounts / ads_list_entities) |
entityId | yes | Id do conjunto NA PLATAFORMA (externalId de ads_list_entities com level=adgroup) |
ads_get_insights
"O que mudou" nos anúncios: destaques do período comparado com o anterior de mesmo tamanho (padrão 7d = últimos 7 dias incluindo hoje × os 7 dias antes). Cada destaque traz id da regra, severity (critical | warning | info | positive), title, detail com os números e, quando é de uma campanha, campaign { externalId, accountId, name, provider }. Regras fixas e determinísticas sobre os dados sincronizados e os leads do CRM: campanha que trazia leads parou, gasto sem lead, verba mudou de lugar, CTR caiu, clique mais caro, gasto acima do orçamento, anúncios ativos sem entrega, leads subiram/caíram e melhor anúncio em leads; até 8, do mais grave. Só lê: nunca muda nada na conta. Use como PONTO DE PARTIDA da análise: confirme com ads_get_performance { period, compare: true } e desça campanha → conjunto → anúncio antes de concluir; nenhum destaque não quer dizer que está tudo bem. Sugira rascunho (ads_draft_mutation com campaign.externalId e campaign.accountId; key é id interno) só em canal com escrita liberada (hoje Meta); nos outros, entregue o passo a passo. Período: period OU since/until.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
period | no | today | yesterday | 7d | 14d | 30d | 90d, no fuso de Brasília (padrão 7d = últimos 7 dias INCLUINDO hoje). Não use junto com since/until |
since | no | Opcional, sem period: início, YYYY-MM-DD |
until | no | Opcional, sem period: fim, YYYY-MM-DD |
provider | no | Opcional: só este canal |
ads_get_performance
Desempenho dos anúncios: investimento (spend), impressões, cliques, CTR, CPC, conversões da plataforma (conversions, cpa; conversionValue e roas quando há valor) e leads do CRM da XBASE (leads, cpl; engagedConversations = o contato respondeu depois da 1ª resposta do workspace, costPerEngaged; qualified e sales quando o funil está configurado), agrupado por canal (padrão), conta, campanha, conjunto (adgroup), anúncio (ad) ou dia. Período: period (today | yesterday | 7d | 14d | 30d | 90d, fuso de Brasília; 7d = últimos 7 dias INCLUINDO hoje) OU since/until (os dois juntos = erro); sem nenhum, 30 dias terminando ontem. compare=true (padrão false; use sempre que for comparar): cada linha ganha previous (o mesmo recorte no período anterior de mesmo tamanho; null = não existia ou não gastou) e a resposta previousTotals; campanha que parou de gastar aparece zerada. LEADS x CONVERSÕES: leads são conversas do CRM atribuídas a um anúncio e PODEM ser somadas entre canais (resposta: leads { total, qualified, sales, cpl, unmatched }); conversions são contadas por cada plataforma (janela e evento próprios): NUNCA some entre canais (use conversionsByProvider) e compare só dentro da mesma plataforma. Quando o objetivo é conversa, julgue por leads e cpl. Valores na moeda de cada conta (totals por moeda; não some moedas). DRILL-DOWN: groupBy campaign → groupBy adgroup + campaignId (externalId da campanha) → groupBy ad + adgroupId. Linhas de campanha/conjunto/anúncio trazem externalId (id na plataforma = targetExternalId de ads_draft_mutation), accountId, status, dailyBudget e effectiveDailyBudget (campanha sem orçamento próprio = soma dos conjuntos ativos) e activeAdgroups (campanha; 0 = não entrega). FRESCOR: sync de hora em hora; dataAsOf = último sync da conta mais desatualizada do recorte; hoje é parcial e conversões da plataforma chegam com atraso. truncated=true: havia mais linhas que o limite (os totais continuam completos) — filtre por canal/conta/campanha ou encurte o período.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
period | no | today | yesterday | 7d | 14d | 30d | 90d, no fuso de Brasília; 7d = últimos 7 dias INCLUINDO hoje (parcial). Não use junto com since/until |
since | no | Início, YYYY-MM-DD (inclusivo), sem period. Padrão: 29 dias antes de until |
until | no | Fim, YYYY-MM-DD (inclusivo), sem period. Padrão: ontem (fuso de Brasília) |
provider | no | Opcional: só este canal |
accountId | no | Opcional: só esta conta (id de ads_list_accounts) |
groupBy | no | provider (padrão) | account | campaign | adgroup | ad | day |
campaignId | no | Opcional: id da campanha NA PLATAFORMA (externalId de uma linha groupBy campaign). Filtra a campanha e o que está dentro dela; com groupBy adgroup lista os conjuntos dela |
adgroupId | no | Opcional, só com groupBy adgroup ou ad: id do conjunto NA PLATAFORMA (externalId de uma linha groupBy adgroup). Com groupBy ad lista os anúncios dele |
compare | no | true = compara com o período anterior de mesmo tamanho (previous em cada linha). Padrão false |
ads_get_playbook
Manual do gestor de tráfego (conhecimento do claude-ads + regras da XBASE). LEIA ANTES de analisar ou propor mudanças. Sem argumentos: a skill da XBASE (fluxo playbook → desempenho → auditoria → rascunho → aprovação humana) + o índice de skills e referências. Com provider: a skill do canal (ads-<canal>) e o checklist de auditoria dele (<canal>-audit) — specs de criativo não vêm junto (abra kind "reference", name "<canal>-creative-specs" quando existir no índice). Com kind + name: um documento do índice. Documentos acima de 40 mil caracteres vêm cortados.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
provider | no | Canal: traz a skill ads-<canal> e a referência <canal>-audit |
kind | no | skill | reference (junto com name) |
name | no | Nome no índice, ex.: "ads-budget" (skill) ou "benchmarks" (reference) |
ads_get_search_terms
Termos de pesquisa de uma campanha do Google Ads no período, lidos ao vivo: o que as pessoas digitaram e mostrou o anúncio (term, adGroupExternalId, status ADDED | EXCLUDED | ADDED_EXCLUDED | NONE, impressions, clicks, cost, conversions), por cliques, até 500 linhas. Termo com gasto e sem conversão vira candidato a add_negative_keywords; termo que converte e não é palavra-chave (NONE) vira candidato a add_keywords. Só Google. since/until YYYY-MM-DD (sem eles, 30 dias no fuso da conta).
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Id interno da conta do Google (de ads_list_accounts / ads_list_entities) |
campaignId | yes | Id da campanha NO GOOGLE (externalId) |
since | no | Opcional: início, YYYY-MM-DD |
until | no | Opcional: fim, YYYY-MM-DD |
ads_list_accounts
Lista as contas de anúncios do workspace (via API ou CSV importado): id interno (é o accountId das outras ferramentas), canal, origem (api | csv), id na plataforma, nome, moeda, fuso, se entra no sync e o resultado do último sync. Conta CSV que repete uma conta conectada pela API fica fora do desempenho e da auditoria. Contas da Meta pela API trazem funding (lido ao vivo): saldo pré-pago, limite de gasto, gasto médio de 3 dias e daysLeft (status low = acaba em menos de 3 dias; empty = parou).
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
provider | no | Opcional: só as contas deste canal (ex.: "meta", "google") |
ads_list_channels
Lista os 12 canais de anúncios (meta, google, youtube, tiktok, linkedin, microsoft, apple, amazon, reddit, pinterest, snapchat, x) e o estado de cada um no workspace: available (integração existe), configured (app da plataforma configurado na XBASE) e missingEnv, a conexão (status, último erro), as capacidades (read/write/csvImport; só write "live-write-verified" aceita rascunhos de mudança — hoje Meta e Google/YouTube) e accounts { api, csv, selected }. Comece por aqui para saber quais canais têm dados. Conectar um canal ou importar CSV é feito por uma pessoa em XBASE → Anúncios → Canais.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
ads_list_entities
Lista campanhas, conjuntos (adgroup) e anúncios com status, orçamento diário (na moeda da conta), objetivo e métricas dos últimos 30 dias. Use para achar o accountId e o externalId (id na plataforma = targetExternalId de ads_draft_mutation) antes de rascunhar. Filtros: canal, conta, nível, status e trecho do nome. includeDestination=true (só level=ad, só Meta: use provider "meta") lê o criativo ao vivo e devolve destination { link, cta, whatsappNumber, prefilledText } de cada anúncio (link wa.me com o texto pré-preenchido); anúncio de conta por CSV ou de canal sem essa leitura volta com destination null.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
provider | no | Opcional: só este canal |
accountId | no | Opcional: só esta conta (id de ads_list_accounts) |
level | no | Opcional: campaign | adgroup | ad |
status | no | Opcional: active | paused | removed | other |
search | no | Opcional: trecho do nome |
limit | no | Máximo de itens (1 a 200, padrão 50) |
includeDestination | no | Só com level=ad (Meta): traz o destino do anúncio (link, CTA, WhatsApp, texto pré-preenchido). Padrão false |
ads_list_mutations
Fila e histórico de mudanças em anúncios do workspace (mais recentes primeiro; padrão 20, limit até 100): rascunhos aguardando aprovação, aprovadas, rejeitadas, aplicadas e com falha, com alvo (targetExternalId, targetName), payload, estado anterior (before), motivo (cortado em 300 caracteres), quem criou, quando foi aprovada/aplicada e o erro da plataforma (failed). Confira aqui antes de criar um rascunho repetido.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
status | no | Opcional: draft | approved | rejected | applying | applied | failed |
limit | no | — |
ads_list_value_rules
Regras de valor de uma conta da Meta, lidas ao vivo: sets (conjuntos de regras: id, name, rules com adjustSign INCREASE/DECREASE, adjustValue em %, criteria { type, values, valueTypes }) e adsets (cada conjunto de anúncios com valueRuleSetId aplicado, bidStrategy, optimizationGoal, eligible = a Meta aceita regra de valor nele, e placements { automatic, platforms, positions }). Use antes de rascunhar set_value_rules, save_value_rule_set ou delete_value_rule_set. Para priorizar o Instagram quando a Meta não deixa escolher o posicionamento: regra DECREASE 90 em PLACEMENT fora do Instagram.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
accountId | yes | Id interno da conta (de ads_list_accounts) |
ads_run_audit
Roda uma auditoria das contas de anúncios (scoring do claude-ads) e devolve um RESUMO com o auditId: saúde do portfólio (0–100), cobertura de evidência, nota (normal | provisional | insufficient_evidence), unscored (o que ficou fora do score e por quê), saúde por conta e canal (origem api/csv, moeda) e os achados reprovados mais graves com accountId, recomendação e suggestedMutation. Nota provisional ou insufficient_evidence = pouca evidência: diga isso ao usuário em vez de afirmar. suggestedMutation é candidata, não regra: confira atraso de conversão, evento de otimização e janela de atribuição antes de rascunhar. Janela máxima: 90 dias (padrão: 30 dias até ontem). Leia antes o playbook do canal (ads_get_playbook). Pode levar alguns segundos.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
providers | no | Opcional: só estes canais (padrão: todos com dados) |
since | no | Opcional: início, YYYY-MM-DD |
until | no | Opcional: fim, YYYY-MM-DD |
ads_search_locations
Busca locais para a segmentação (hoje Meta): cidade (city), estado (region) ou país (country). Devolve key, name, region e countryCode só do tipo pedido (a plataforma mistura bairros na busca de cidade). Use a key e o name em ads_draft_mutation kind=set_targeting (targeting.geo.cities/regions; país vai pelo código ISO em countries). O estado de São Paulo aparece como "São Paulo (state)". Padrão: locais do Brasil.
| Parameter | Required | Description |
|---|---|---|
workspaceId | no | Opcional. Se enviado, precisa ser o workspace do token (o token só acessa o próprio workspace). |
q | yes | Nome do local (mín. 2 letras), ex.: "Santa Maria" |
type | yes | city | region | country |
countryCode | no | Opcional: país onde buscar cidade/estado (ISO, padrão BR); ignorado em type=country |