Riligar marketing ads google
Skill riligar/agents-kit/.agent/skills/riligar-marketing-ads-google
Gerencia campanhas Google Ads via SDK oficial (google-ads). Le campanhas, ad groups, keywords, anuncios, search terms, quality scores e insights com GAQL. Cria, edita, pausa e deleta objetos. Use quando o usuario mencionar google ads, campanhas de search, performance max, pmax, keywords, termos de busca, quality score, google adwords, criar campanha google, pausar campanha google, orcamento google ads, RSA, responsive search ad, sitelink, callout, negativas. Tambem dispara com /riligar-marketing-ads-google setup.From its SKILL.md
npx -y skills add riligar/agents-kit --skill riligar-marketing-ads-googleAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
11.5 KB, ~3.3k tokens by cl100k_base, as published. Nobody here has run it
RiLiGar Marketing Ads Google
Skill completa para gestao de Google Ads via SDK oficial (google-ads). Executa queries GAQL para leitura, e mutate operations para escrita. Equivalente ao riligar-marketing-ads-meta para o ecossistema Google.
IMPORTANTE: Esta skill e o braco de execucao. Para inteligencia (diagnostico, auditoria, estrategia), use a skill riligar-marketing-ads como camada acima.
Setup (primeira vez)
Quando o usuario pedir para configurar, rodar setup, ou for a primeira vez usando a skill, o Claude deve guiar o setup interativo.
O setup tem um script automatizado em scripts/setup.py que simplifica o processo:
1. Verificar dependencias
pip3 install google-ads google-auth-oauthlib protobuf
2. Verificar .env
Checar se existe ~/.claude/skills/riligar-marketing-ads-google/.env. Se NAO existir, criar com o template:
# RiLiGar Marketing Ads Google — Configuracao
# Os scripts leem este arquivo automaticamente. NAO precisa adicionar ao ~/.zshrc.
# OBRIGATORIO: Developer token (Google Ads API Center)
GOOGLE_ADS_DEVELOPER_TOKEN=""
# OBRIGATORIO: OAuth2 credentials (Google Cloud Console)
GOOGLE_ADS_CLIENT_ID=""
GOOGLE_ADS_CLIENT_SECRET=""
GOOGLE_ADS_REFRESH_TOKEN=""
# OBRIGATORIO: Login customer ID (MCC sem hifens, ex: 1234567890)
GOOGLE_ADS_LOGIN_CUSTOMER_ID=""
# OPCIONAL: Customer ID padrao (evita ter que passar --customer-id toda vez)
GOOGLE_ADS_CUSTOMER_ID=""
Fallback: Se existir ~/.claude/skills/riligar-marketing-ads-google/google-ads.yaml, o SDK carrega dele automaticamente.
3. Preencher credenciais no .env
O usuario precisa obter e preencher no .env (tutorial completo em riligar.com.br/assets/tutorial-token-google-ads/):
- DEVELOPER_TOKEN — Central de API no Google Ads (Ferramentas > Central de API)
- CLIENT_ID e CLIENT_SECRET — Google Cloud Console (criar projeto > ativar Google Ads API > credenciais OAuth)
- LOGIN_CUSTOMER_ID — ID do MCC (sem hifens)
O REFRESH_TOKEN NAO precisa ser preenchido manualmente — o setup.py gera automaticamente (ver passo 4).
4. Gerar refresh token (automatico)
Depois que CLIENT_ID, CLIENT_SECRET e DEVELOPER_TOKEN estiverem no .env, rodar:
python3 ~/.claude/skills/riligar-marketing-ads-google/scripts/setup.py oauth
Isso abre o browser, o usuario autoriza, e o refresh token e salvo automaticamente no .env. Sem copiar/colar nada.
Ou rodar o fluxo completo de uma vez:
python3 ~/.claude/skills/riligar-marketing-ads-google/scripts/setup.py full
Subcomandos do setup.py:
| Subcomando | O que faz |
|---|---|
check | Verifica dependencias e variaveis do .env |
oauth | Gera refresh token via OAuth2 (abre browser) |
test | Testa conexao listando contas acessiveis |
full | Fluxo completo: check + oauth (se necessario) + test |
5. Cadastro de contas (contas.yaml) — SETUP CONVERSACIONAL
Depois que o .env estiver preenchido e o teste passar, o Claude DEVE proativamente guiar o cadastro de contas:
- Rodar
read.py accountspara listar todas as contas acessiveis - Perguntar ao usuario: "Qual a tua principal conta Google Ads? Me passa o nome do cliente, e eu preencho o contas.yaml pra ti."
- Para cada cliente, perguntar:
- Nome do cliente
- Customer ID (sem hifens)
- Preencher o
contas.yamlautomaticamente com as respostas - Perguntar: "Quer cadastrar mais algum cliente?"
Cadastro de clientes (contas.yaml)
Arquivo: ~/.claude/skills/riligar-marketing-ads-google/contas.yaml
Antes de executar qualquer operacao, o Claude DEVE ler este arquivo para resolver nomes de clientes para IDs. Quando o usuario disser "insights do Meu Cliente no Google" ou "campanhas da Meu Cliente", consultar o contas.yaml para obter o customer_id do cliente.
Se o cliente nao estiver cadastrado, perguntar os dados e oferecer para adicionar ao arquivo.
Como usar
Todos os scripts estao em ~/.claude/skills/riligar-marketing-ads-google/scripts/. O padrao e:
python3 <script>.py <subcomando> [argumentos]
O Claude deve interpretar o pedido do usuario e executar o script correto via Bash.
Referencia rapida de operacoes
Leitura (read.py)
| Subcomando | O que faz | Exemplo |
|---|---|---|
accounts | Lista contas acessiveis via MCC | read.py accounts |
campaigns | Campanhas com status, tipo, orcamento | read.py campaigns --customer-id 1234567890 |
ad-groups | Ad groups de uma campanha | read.py ad-groups --customer-id 123 --campaign-id 456 |
keywords | Keywords com QS, match type, metricas | read.py keywords --customer-id 123 --campaign-id 456 |
ads | Anuncios RSA com headlines e descriptions | read.py ads --customer-id 123 --campaign-id 456 |
search-terms | Termos de busca com metricas | read.py search-terms --customer-id 123 |
extensions | Assets/extensoes (sitelinks, callouts) | read.py extensions --customer-id 123 |
negative-keywords | Negativas (campaign e ad group) | read.py negative-keywords --customer-id 123 |
quality-scores | QS decomposto (creative, landing, ctr) | read.py quality-scores --customer-id 123 |
Insights (insights.py)
| Subcomando | O que faz | Exemplo |
|---|---|---|
account | KPIs da conta | insights.py account --customer-id 123 --date-range LAST_30_DAYS |
campaign | Metricas por campanha | insights.py campaign --customer-id 123 --date-range LAST_7_DAYS |
ad-group | Metricas por ad group | insights.py ad-group --customer-id 123 --campaign-id 456 |
keyword | Metricas por keyword | insights.py keyword --customer-id 123 --campaign-id 456 |
daily | Evolucao diaria | insights.py daily --customer-id 123 --since 2026-03-01 --until 2026-03-31 |
device | Breakdown por dispositivo | insights.py device --customer-id 123 --date-range LAST_30_DAYS |
hourly | Breakdown por hora do dia | insights.py hourly --customer-id 123 --date-range LAST_7_DAYS |
Parametros comuns de insights:
| Parametro | O que faz | Exemplo |
|---|---|---|
--customer-id | ID da conta (sem hifens) | 1234567890 |
--date-range | Periodo relativo | LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH |
--since / --until | Periodo especifico | 2026-03-01 / 2026-03-31 |
--campaign-id | Filtrar por campanha | 123456789 |
--limit | Limite de resultados | 50 |
Criacao (create.py)
| Subcomando | O que faz | Exemplo |
|---|---|---|
campaign | Cria campanha PAUSED | create.py campaign --customer-id 123 --name "Search-Leads" --type SEARCH --budget 5000 |
ad-group | Cria ad group | create.py ad-group --customer-id 123 --campaign-id 456 --name "Broad-Keywords" |
keyword | Adiciona keywords | create.py keyword --customer-id 123 --ad-group-id 456 --text "marketing digital" --match-type PHRASE |
rsa | Cria Responsive Search Ad | `create.py rsa --customer-id 123 --ad-group-id 456 --headlines "h1 |
sitelink | Cria sitelink | create.py sitelink --customer-id 123 --campaign-id 456 --text "Fale Conosco" --url "https://..." |
callout | Cria callout | create.py callout --customer-id 123 --campaign-id 456 --text "Frete Gratis" |
negative | Adiciona negativa | create.py negative --customer-id 123 --campaign-id 456 --text "gratis" --match-type EXACT |
IMPORTANTE: Todas as criacoes sao feitas com status PAUSED. Revisar antes de ativar.
Edicao (update.py)
| Subcomando | O que faz | Exemplo |
|---|---|---|
campaign | Editar status, orcamento, bidding | update.py campaign --customer-id 123 --campaign-id 456 --status ENABLED --budget 10000 |
ad-group | Editar status, CPC | update.py ad-group --customer-id 123 --ad-group-id 456 --status PAUSED |
keyword | Editar status, bid | update.py keyword --customer-id 123 --keyword-id 456 --status ENABLED |
ad | Editar status | update.py ad --customer-id 123 --ad-id 456 --status PAUSED |
Exclusao (delete.py)
| Subcomando | O que faz | Exemplo |
|---|---|---|
keyword | Remove keyword | delete.py keyword --customer-id 123 --keyword-id 456 |
negative | Remove negativa | delete.py negative --customer-id 123 --criterion-id 456 --level campaign --parent-id 789 |
ad | Remove anuncio | delete.py ad --customer-id 123 --ad-group-id 456 --ad-id 789 |
Aprendizados (memória persistente)
Arquivo: aprendizados.md (na raiz da skill, ~/.claude/skills/riligar-marketing-ads-google/aprendizados.md)
O Claude DEVE:
- Ler
aprendizados.mdno início de QUALQUER operação de criação (campanha, ad group, keyword, RSA) - Quando o usuário corrigir algo, perguntar: "Quer que eu registre isso nos aprendizados?"
- Quando o usuário pedir ("lembra disso", "registra"), registrar imediatamente
- Não duplicar — verificar se já existe regra similar antes de adicionar
Regras de seguranca
O Claude DEVE seguir estas regras ao executar operacoes:
- Criar sempre PAUSED — nunca criar objetos com status ENABLED diretamente
- Confirmar antes de deletar — perguntar ao usuario antes de executar delete
- Confirmar antes de ativar — perguntar antes de mudar status para ENABLED
- Ativar TODOS os niveis — ao ativar uma campanha, SEMPRE ativar tambem todos os ad groups e ads dentro dela. Ordem: campaign -> ad groups -> ads
- Respeitar rate limits — se receber erro de rate limit (RESOURCE_EXHAUSTED), aguardar 60 segundos antes de tentar novamente
- Orcamento com cuidado — ao alterar budget, confirmar o valor com o usuario. Valores sao em micros (5000000 = R$5,00) mas os scripts ja convertem
- Nunca hardcodar tokens — sempre usar env vars ou google-ads.yaml
- Nunca assumir origem de dados — ao mostrar insights no nivel da conta, SEMPRE quebrar por campanha antes de atribuir resultados a uma campanha especifica
- cost_micros — todos os scripts convertem automaticamente cost_micros / 1_000_000 para reais na saida
- NUNCA usar MCPs — esta skill usa SOMENTE os scripts Python locais, NUNCA tools de MCP (adloop, google-ads-mcp, etc)
Fluxos comuns
Criar campanha Search completa
create.py campaign— cria campanha PAUSEDcreate.py ad-group— cria ad group PAUSEDcreate.py keyword— adiciona keywords (repetir para cada keyword)create.py rsa— cria Responsive Search Adcreate.py sitelink— adiciona sitelinks (opcional)create.py callout— adiciona callouts (opcional)- Validar:
read.py campaigns,read.py ads,read.py keywords - Ativar quando pronto (todos os niveis)
Auditoria de conta
insights.py account— visao geralinsights.py campaign— performance por campanharead.py quality-scores— QS decompostoread.py search-terms— termos de busca (negativar irrelevantes)insights.py device— breakdown por dispositivoread.py negative-keywords— conferir negativas
Puxar relatorio de performance
insights.py campaign --date-range LAST_30_DAYSinsights.py daily --since 2026-03-01 --until 2026-03-31insights.py keyword --campaign-id XXX
What ships with it: 12 files
90.4 KB alongside SKILL.md, 7 of them executable
references/
- api-reference.md5.3 KB
scripts/
- create.pyruns17.1 KB
- delete.pyruns5.3 KB
- insights.pyruns10.0 KB
- lib/__init__.pyruns12.3 KB
- read.pyruns13.6 KB
- setup.pyruns11.8 KB
- update.pyruns11.1 KB
- aprendizados.md649 B
- contas.yaml384 B
- .gitignore82 B
- README.md2.7 KB