Ho creato una competenza Claude che gestisce i miei annunci Facebook — ecco il codice
Ho creato una competenza Claude che legge il mio account Meta Ads tramite la Graph API, identifica i sotto-performer, riscrive il testo degli annunci nella mia voce di marca e crea nuovi set di annunci senza che io debba toccare Gestione annunci. Il tutto in meno di 300 righe di TypeScript. Il ROI è stato immediato: ho ridotto il tempo settimanale di gestione degli annunci da ~3 ore a circa 20 minuti.
Ogni mercoledì. 28.400+ operatori. Zero riempitivo.
✓ Controlla la tua casella — clicca sul link di conferma per completare l'iscrizione.
✓ Iscrizione completata!
✓ Sei già nella lista.
Indice
Aggiornato giugno 2026.
TL;DR: Ho creato una competenza Claude che legge il mio account Meta Ads tramite la Graph API, identifica i sotto-performer, riscrive il testo degli annunci nella mia voce di marca e crea nuovi set di annunci senza che io debba toccare Gestione annunci. Il tutto in meno di 300 righe di TypeScript. Il ROI è stato immediato: ho ridotto il tempo settimanale di gestione degli annunci da ~3 ore a circa 20 minuti.
[Lettura dell’operatore] Gestisco annunci per Pickleland e per il mio brand di consulenza. Due account, pubblici diversi, affaticamento creativo costante. Passavo i pomeriggi della domenica in Gestione annunci a fare cose che dovrebbe fare un modello. Così l’ho automatizzato.
Perché ho smesso di gestire manualmente gli annunci Facebook
Il lavoro reale di gestione degli annunci Facebook si divide in tre compiti:
- Monitoraggio — verificare quali set di annunci stanno bruciando soldi vs. generandoli
- Diagnosi — capire perché qualcosa sta sotto-performando (affaticamento creativo? targeting sbagliato? pagina di destinazione?)
- Iterazione — scrivere nuovo testo, creare nuovi set di annunci, regolare i budget
Il compito 1 è meccanico. Il compito 3 è principalmente meccanico (con un vincolo di voce). Il compito 2 richiede giudizio — ed è l’unico che trae vantaggio dall’avere un umano nel ciclo.
Una competenza Claude può fare il 1 e il 3. Rivedo i risultati del compito 2 prima che qualsiasi cosa venga pubblicata. Questa è l’architettura su cui mi sono assestato.
La configurazione della Meta Graph API (questa è la parte noiosa)
Prima di qualsiasi codice: è necessario un account Meta Business, un Utente di sistema e un token di accesso permanente. Il portale per sviluppatori di Facebook è ostile ma il percorso è:
- Creare una Meta App su developers.facebook.com (tipo: Business)
- Aggiungere il prodotto Marketing API
- Nel tuo Portfolio aziendale → Impostazioni → Utenti → Utenti di sistema, creare un utente di sistema e dargli il ruolo
ADVERTISERsul tuo account pubblicitario - Generare un token con questi permessi:
ads_read,ads_management,business_management
Memorizza il token come META_ACCESS_TOKEN e l’ID del tuo account pubblicitario (formato: act_XXXXXXXX) come META_AD_ACCOUNT_ID nel tuo .env.
La struttura dei file della competenza
.claude/skills/fb-ads/
SKILL.md ← istruzioni che Claude legge
index.ts ← l'implementazione effettiva dello strumento
types.ts ← tipi condivisiIl SKILL.md è ciò che dice a Claude quando e come usare la competenza. Il mio dice:
# Facebook Ads Manager Skill
Use this skill when the user says "check my ads", "run ads report",
"pause underperformers", or "write new ad copy". Never run this
without explicit user instruction — it touches live ad spend.
## What it can do
- Pull performance data for all active ad sets (last 7 or 30 days)
- Flag ad sets with ROAS < 1.5 or CTR < 0.8% as underperformers
- Rewrite ad copy for flagged creatives in Ale's voice
- Create new ad sets with revised copy (PAUSED by default — you approve before activating)
## What it will NOT do
- Change budgets on live ad sets without explicit confirmation
- Activate new ad sets automatically
- Delete anythingIl vincolo “non attivare mai automaticamente” è non negoziabile. Questa competenza crea elementi nello stato IN PAUSA. Rivedo e attivo manualmente. Qualsiasi cosa che tocchi la spesa pubblicitaria in tempo reale necessita di un punto di controllo umano.
Il codice TypeScript principale
(I blocchi di codice rimangono in inglese — viene tradotto solo il testo circostante.)
Come lo uso quotidianamente
La competenza viene invocata da Claude Code (il mio strumento quotidiano). Una tipica sessione del lunedì mattina:
> check my ads from the last 7 daysClaude esegue runAdsReport(7), formatta i risultati come una tabella, segnala i sotto-performer e chiede se voglio riscritture. Dico di sì. Genera nuovo testo, mi mostra entrambe le versioni fianco a fianco e crea set di annunci IN PAUSA con il nuovo creativo. Li rivedo in Gestione annunci, attivo quelli che mi piacciono e archivio i perdenti.
Tempo totale: 20 minuti. Zero pomeriggi della domenica in Gestione annunci.
Cosa questo non sostituisce
La competenza non può dirmi se un problema di adattamento prodotto-mercato si sta travestendo da problema di testo. Se il ROAS è pessimo ovunque, si tratta di un problema di funnel o di offerta, non di titolo. Claude riscriverà fedelmente il testo su un funnel rotto — e le riscritture non lo salveranno.
Il passaggio diagnostico è ancora mio. Leggo il report, guardo i dati del funnel e decido se stiamo iterando il creativo o risolvendo qualcosa a monte. L’agente è veloce in tutto tranne che in quel giudizio.
La conclusione dell’operatore
Se stai gestendo annunci manualmente e toccando Gestione annunci più di due volte a settimana, stai svolgendo operazioni che dovrebbe fare uno script. La Graph API è ben documentata e il flusso di permessi di Meta, sebbene fastidioso, è una configurazione una tantum. Costruisci la competenza in un pomeriggio. Il ritorno in tempo recuperato si manifesta nella prima settimana.
Ogni mercoledì. 28.400+ operatori. Zero riempitivo.
✓ Controlla la tua casella — clicca sul link di conferma per completare l'iscrizione.
✓ Iscrizione completata!
✓ Sei già nella lista.
Ricevi il manuale dell'IA nella tua casella di posta
Ogni mercoledì. 28.400+ operatori. Zero riempitivo.
Controlla la tua casella di posta.
Ti abbiamo inviato un'email di conferma — clicca sul link per completare l'iscrizione. Controlla lo spam se non la vedi entro un minuto.
Sei iscritto.
Benvenuto — la prossima edizione arriverà presto nella tua casella.
Sei già nella lista — cercala ogni mercoledì.