Skill
Meta-Ads-Kampagnen-Ersteller
--- name: meta-ads-campaign-creator description: Erstellt eine vollständige Meta-Ads-Kampagne (Facebook/Instagram) für einen Golfclub inklusive Primärtext, Headlines, Ad-Set-Strukt
SKILL.md
--- name: meta-ads-campaign-creator description: Erstellt eine vollständige Meta-Ads-Kampagne (Facebook/Instagram) für einen Golfclub inklusive Primärtext, Headlines, Ad-Set-Struktur und Zielgruppen-Anpassungen. Nutze diesen Skill wenn eine neue Meta-Kampagne für einen Golfclub geplant oder ausgeführt werden soll. --- # Meta-Ads-Kampagnen-Ersteller Zwei Skill-Definitionen als feste Kette: Planung erzeugt einen Entwurf, Ausführung mutiert erst nach expliziter Freigabe. ## Skill-Definitionen | Feld | `meta_campaign_planner` | `meta_campaign_execute` | |---|---|---| | **Plattform** | meta_ads | meta_ads | | **Kategorie** | `planner` | `execute` | | **Erlaubte Provider-Tools** | keine (Chat sammelt nur Daten) | Meta-Provider-Tools in fester Reihenfolge: Kampagne anlegen → Ad Set anlegen → ggf. Bild hochladen → Creative anlegen → Ad anlegen | | **LLM-Einsatz** | Ja — Copy-Varianten, Creative-Brief, Rückfragen | Nein — deterministische Ausführung | | **Berechtigung** | `draft` | `approve` | | **Bestätigungspflicht** | `change_request` vor jeder Mutation | Standardstatus `PAUSED` bzw. Ad-Set inaktiv | | **Ausgabeschema** | Kampagnen-/Ad-Set-/Creative-/Ad-Plan | `api_result[]` je Teiloperation + externe IDs | ## Was bei Meta strukturell anders ist als bei Google Ads ``` Google Ads: Campaign → Ad Group → Ad + Keywords Meta Ads: Campaign → Ad Set (Budget/Targeting/Placement hier!) → Ad (Creative) ``` Budget, Zielgruppe und Placement sitzen auf **Ad-Set-Ebene**, nicht auf Kampagnenebene — dieser Skill sammelt sie entsprechend getrennt vom Kampagnenziel ab, statt sie wie bei Google in einem Schritt mit der Kampagne selbst zu erfassen. ## Pflicht-Input für den Planer | Feld | Pflicht/Optional | Anmerkung | |---|---|---| | Kampagnenziel | Pflicht | Für Leadgen-Golfclubs i. d. R. Lead-Formular-Ziel oder Traffic→Landingpage; **niemals** ein Sales-Ziel ohne Shop | | Facebook-Seite / Instagram-Identität | Pflicht | Muss existieren und dem Golfclub zugeordnet sein — Skill blockiert ohne gültige Identität | | Landingpage-URL | Pflicht | Gleiche manuell gebaute Landingpage wie bei Google Ads, inkl. Tracking-Snippet | | Conversion-Event | Pflicht | Muss auf ein tatsächlich feuerndes Pixel-/serverseitiges Event zeigen — ohne funktionierendes Event optimiert Meta gegen ein Phantom-Ziel | | Budget (Ad-Set-Ebene) | Pflicht | Bei 400 €/Monat/Club: **eine** Kampagne, **ein** Ad-Set, nicht mehrere parallel testen — sonst reicht das Budget nicht für eine saubere Lernphase | | Standort/Geo | Pflicht | Radius um den Golfclub, analog zur Google-Ads-Standort-Logik | | Zielgruppen-Anpassung | Optional | Bei Neustart: **breit lassen**, der Algorithmus optimiert selbst — keine übermäßig enge Zielgruppen-Einschränkung erzwingen, erst mit Daten verfeinern | | Primärtext, Headline, Beschreibung | Pflicht | KI schlägt Varianten vor | | CTA-Button | Pflicht | Passend zum Ziel (z. B. "Mehr erfahren", "Anmelden") | | Bild/Video | Pflicht min. 1 | **Von Menschen geliefert**, wie bei PMax — keine automatische Bildgenerierung | ## Textliche Leitplanken - Meta ist **Unterbrechungswerbung**, nicht Suchwerbung — Text muss in den ersten 1-2 Zeilen einen Grund zum Stehenbleiben liefern (Hook-Body-CTA-Struktur), anders als bei Google, wo Suchintention schon vorhanden ist - Gleiche Compliance-Leitplanken wie bei Google Ads (keine unbelegten Superlative, keine Heilsversprechen bei gesundheitsnahen Angeboten wie Golf-Reha-Kursen) - Ton an die Zielgruppe anpassen: Meta-Nutzer sind im Scroll-Modus, kürzere Sätze als bei Search-Anzeigentexten ## Ausführung (`meta_campaign_execute`) 1. Bestätigter `change_request` (Selbstfreigabe erlaubt, wie im übrigen System) 2. Feste Ausführungsreihenfolge über den Meta-Provider-Adapter: Kampagne anlegen (PAUSED/inaktiv) → Ad Set anlegen → Bild hochladen (falls vorhanden) → Creative anlegen → Ad anlegen 3. Jede Teiloperation protokolliert externe ID und Fehlerdetails einzeln in `api_result` 4. Fehlt ein Pflichtasset, eine gültige Seiten-/Instagram-Identität, ein Conversion-Event oder ein Ad-Set-Pflichtwert: Executor blockiert mit konkreter Fehlermeldung, keine teilweise erfolgreiche Kampagne wird als vollständig gemeldet 5. Nach Erfolg: Refresh liest Kampagne/Ad Set/Ad zurück in die Meta-spezifischen Inventartabellen ## Persistenz - `change_request`: `entity_type: campaign`, `platform: meta_ads`, `diff` enthält Kampagnen-/Ad-Set-/Creative-Plan, Referenz auf die genutzte Meta-Template-Version - Meta-Daten werden **nicht** in Google-spezifische Spalten gezwungen — eigene Meta-Inventartabellen plus normalisierte kanalübergreifende Faktentabelle für Cross-Channel-Reporting - Plattform (`meta_ads`) und Ausführungsquelle werden durchgängig mitgeführt, damit spätere Auswertungen Google-Search, Google-PMax und Meta sauber getrennt, aber auf Portfolioebene zusammenfassbar halten ## Guardrails - Niemals Creative-Assets, Seitenidentitäten oder Conversion-Events erfinden - Niemals ohne verifiziertes, feuerndes Conversion-Event optimieren (sonst optimiert Meta gegen Zufallssignale) - Bei 400 €/Monat: keine Mehrfach-Ad-Set-Tests parallel vorschlagen — zu wenig Budget für saubere Lernphase - Ein Sales-Ziel nur vorschlagen, wenn tatsächlich ein Shop/Checkout existiert ## Technische Ausführungsroute 1. **Skills → Meta-Kampagne planen** startet einen kontextgebundenen Planner-Run mit Golfclub, ausgewähltem Meta-Konto und Meta-Template-Version. Er erstellt nur den Kampagnen-/Ad-Set-/Creative-Plan. 2. Das bestätigte Ergebnis wird als vollständiger Meta-`change_request` gespeichert; Seitenidentität, Conversion-Event, Zielgruppe, Medien und Ad-Set-Budget sind Teil des unveränderlichen Diffs. 3. Nach Freigabe führt `meta_campaign_execute` die Pipeboard-Tools in der festen Reihenfolge Kampagne → Ad Set → optionaler Medienupload → Creative → Ad aus. Jede Teiloperation wird einzeln in `api_result` protokolliert. 4. Ein anschließender Meta-Refresh übernimmt externe IDs und Inventar in Meta-spezifische Tabellen sowie die normalisierte Reporting-Faktentabelle. Erst danach gilt die Kampagne als vollständig angelegt.
