Alejandro Rioja.
AI Agents

Ich habe eine Claude-Kompetenz gebaut, die meine Facebook-Anzeigen verwaltet — hier ist der Code

Alejandro Rioja
Alejandro Rioja
3 Min. Lesezeit
TL;DR

Ich habe eine Claude-Kompetenz gebaut, die mein Meta-Ads-Konto über die Graph API liest, Underperformer identifiziert, Anzeigentexte in meiner Markenstimme umschreibt und neue Anzeigengruppen erstellt, ohne dass ich den Anzeigenmanager anfassen muss. Das Ganze umfasst weniger als 300 Zeilen TypeScript. Der ROI war sofort spürbar: Ich habe die wöchentliche Anzeigenverwaltungszeit von ~3 Stunden auf etwa 20 Minuten reduziert.

Kostenloser Newsletter

Jeden Mittwoch. 28.400+ Experten. Kein Füllstoff.

Inhaltsverzeichnis

Aktualisiert Juni 2026.

TL;DR: Ich habe eine Claude-Kompetenz gebaut, die mein Meta-Ads-Konto über die Graph API liest, Underperformer identifiziert, Anzeigentexte in meiner Markenstimme umschreibt und neue Anzeigengruppen erstellt, ohne dass ich den Anzeigenmanager anfassen muss. Das Ganze umfasst weniger als 300 Zeilen TypeScript. Der ROI war sofort spürbar: Ich habe die wöchentliche Anzeigenverwaltungszeit von ~3 Stunden auf etwa 20 Minuten reduziert.

[Betreiber-Lektüre] Ich schalte Anzeigen für Pickleland und für meine Beratungsmarke. Zwei Konten, unterschiedliche Zielgruppen, ständige kreative Ermüdung. Ich verbrachte Sonntagnachmittage im Anzeigenmanager mit Dingen, die ein Modell erledigen sollte. Also habe ich es automatisiert.

Warum ich aufgehört habe, Facebook-Anzeigen manuell zu verwalten

Die eigentliche Arbeit bei der Verwaltung von Facebook-Anzeigen lässt sich in drei Aufgaben unterteilen:

  1. Überwachung — prüfen, welche Anzeigengruppen Geld verbrennen vs. verdienen
  2. Diagnose — herausfinden, warum etwas underperformt (kreative Ermüdung? schlechtes Targeting? Landingpage?)
  3. Iteration — neue Texte schreiben, neue Anzeigengruppen erstellen, Budgets anpassen

Aufgabe 1 ist mechanisch. Aufgabe 3 ist größtenteils mechanisch (mit einer Stimmbeschränkung). Aufgabe 2 erfordert Urteilsvermögen — und ist die einzige, die von einem Menschen in der Schleife profitiert.

Eine Claude-Kompetenz kann 1 und 3 erledigen. Ich überprüfe die Ergebnisse von Aufgabe 2, bevor irgendetwas veröffentlicht wird. Das ist die Architektur, auf die ich mich geeinigt habe.

Die Meta Graph API-Einrichtung (das ist der lästige Teil)

Vor dem Code: Sie benötigen ein Meta Business-Konto, einen Systembenutzer und ein dauerhaftes Zugriffstoken. Facebooks Entwicklerportal ist feindlich, aber der Weg ist:

  1. Eine Meta App auf developers.facebook.com erstellen (Typ: Business)
  2. Das Produkt Marketing API hinzufügen
  3. In Ihrem Business Portfolio → Einstellungen → Benutzer → Systembenutzer einen Systembenutzer erstellen und ihm die Rolle ADVERTISER für Ihr Anzeigenkonto geben
  4. Ein Token mit diesen Berechtigungen generieren: ads_read, ads_management, business_management

Speichern Sie das Token als META_ACCESS_TOKEN und Ihre Anzeigenkonto-ID (Format: act_XXXXXXXX) als META_AD_ACCOUNT_ID in Ihrer .env.

Die Dateistruktur der Kompetenz

code
.claude/skills/fb-ads/
  SKILL.md          ← Anweisungen, die Claude liest
  index.ts          ← die eigentliche Tool-Implementierung
  types.ts          ← gemeinsame Typen

Die SKILL.md teilt Claude mit, wann und wie die Kompetenz genutzt werden soll. Meine lautet:

markdown
# 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 anything

Die Einschränkung „niemals automatisch aktivieren” ist nicht verhandelbar. Diese Kompetenz erstellt Dinge im Zustand PAUSIERT. Ich überprüfe und aktiviere manuell. Alles, was Live-Werbeausgaben berührt, benötigt einen menschlichen Kontrollpunkt.

Der TypeScript-Kerncode

(Codeblöcke bleiben auf Englisch — nur der umgebende Text wird übersetzt.)

Wie ich es täglich nutze

Die Kompetenz wird von Claude Code aufgerufen (mein tägliches Werkzeug). Eine typische Montagmorgen-Sitzung:

code
> check my ads from the last 7 days

Claude führt runAdsReport(7) aus, formatiert die Ergebnisse als Tabelle, markiert Underperformer und fragt, ob ich Umschreibungen möchte. Ich sage ja. Es generiert neuen Text, zeigt mir beide Versionen nebeneinander und erstellt PAUSIERTE Anzeigengruppen mit dem neuen Kreativmaterial. Ich überprüfe sie im Anzeigenmanager, aktiviere die, die mir gefallen, und archiviere die Verlierer.

Gesamtzeit: 20 Minuten. Null Sonntagnachmittage im Anzeigenmanager.

Was dies nicht ersetzt

Die Kompetenz kann mir nicht sagen, ob sich ein Produkt-Markt-Fit-Problem als Textproblem tarnt. Wenn der ROAS insgesamt schlecht ist, handelt es sich um ein Funnel- oder Angebotsproblem, nicht um ein Überschriftenproblem. Claude wird getreu Text auf einem kaputten Funnel umschreiben — und die Umschreibungen werden ihn nicht retten.

Der Diagnoseschritt bleibt meiner. Ich lese den Bericht, schaue mir die Funnel-Daten an und entscheide, ob wir kreativ iterieren oder etwas weiter oben lösen. Der Agent ist bei allem schnell außer bei diesem Urteil.

Das Fazit des Betreibers

Wenn Sie Anzeigen manuell verwalten und mehr als zweimal pro Woche den Anzeigenmanager anfassen, erledigen Sie Vorgänge, die ein Skript erledigen sollte. Die Graph API ist gut dokumentiert und der Meta-Berechtigungsfluss ist, obwohl lästig, eine einmalige Einrichtung. Bauen Sie die Kompetenz an einem Nachmittag. Die Rendite an zurückgewonnener Zeit zeigt sich in der ersten Woche.

Weiterlesen

Holen Sie sich das KI-Playbook in Ihr Postfach

Jeden Mittwoch. 28.400+ Experten. Kein Füllstoff.

↵ alle Ergebnisse anzeigen esc esc zum Schließen