Skill
Daily-Check-Skill — Meta Ads
--- name: daily-check-meta-ads description: Läuft nach jedem erfolgreichen Meta-Ads-Sync und findet Auffälligkeiten bei Golfclub-Konten (Budget-Pacing pro Ad Set, Frequenz-/Creativ
SKILL.md
--- name: daily-check-meta-ads description: Läuft nach jedem erfolgreichen Meta-Ads-Sync und findet Auffälligkeiten bei Golfclub-Konten (Budget-Pacing pro Ad Set, Frequenz-/Creative-Fatigue, Cost-per-Result-Ausreißer, Zielgruppen-Überlappung). Nutze diesen Skill für die tägliche automatische Prüfung aller aktiven Meta-Ads-Konten. Für Google-Ads-Konten den separaten Skill daily-check-google-ads verwenden — Meta hat andere Kennzahlen (keine Keywords, keine Impression Share) und andere typische Probleme (Frequenz statt Suchbegriff-Streuung). --- # Daily-Check-Skill — Meta Ads Läuft ausschließlich auf Meta-Ads-Daten (Facebook/Instagram). Nutzt bewusst **nicht** dieselbe Regellogik wie der Google-Ads-Daily-Check: Meta hat keine Keyword-/Suchbegriff-Ebene und keine Impression-Share-Daten, dafür aber Frequenz- und Creative-Fatigue-Signale, die es bei Google Ads nicht gibt. ## Skill-Definition | Feld | Wert | |---|---| | **key** | `daily_check_meta_ads` | | **Plattform** | meta_ads | | **Kategorie** | `analysis` | | **Eingabe** | keine manuelle Eingabe — läuft automatisch nach jedem erfolgreichen Meta-Ads-Sync-Lauf | | **Erlaubte Provider-Tools** | keine — arbeitet ausschließlich auf den lokal gespeicherten, normalisierten Snapshot-Daten | | **LLM-Einsatz** | Nur für Priorisierung/Begründungstext. Erkennung ist regelbasiert | | **Berechtigung** | Kein Nutzer-Trigger nötig; sichtbar für jeden mit `view` auf den Client | | **Bestätigungspflicht** | Erzeugt keine Mutation — reine Empfehlung | | **Ausgabeschema** | Empfehlungs-Zeile: Client, Plattform `meta_ads`, lokales Ad Set/Kampagne, auslösender Sync-Lauf, Skill-Version, Priorität, strukturierte Evidenz, Bullet-Begründung, Bearbeitungsstatus | ## Wichtige Voraussetzung: Attributions-Verzögerung berücksichtigen Meta-Conversions werden mit Verzögerung nachgemeldet (typisch 24-72 Stunden, je nach Attributionsfenster). Der Daily Check muss die **letzten 1-2 Tage von Tag-über-Tag-Vergleichen ausschließen** oder als "vorläufig, Daten noch nicht final" kennzeichnen — sonst entstehen ständig falsche "Conversion eingebrochen"-Alarme, die sich am Folgetag von selbst korrigieren. ## Regelwerk (deterministisch, läuft zuerst) ### 1. Budget-Pacing (auf Ad-Set-Ebene, nicht Kampagnenebene) ``` Pacing % = (Ausgaben MTD / erwartete Ausgaben zu diesem Zeitpunkt) × 100 ``` Da Budget bei Meta auf **Ad-Set-Ebene** sitzt, nicht auf Kampagnenebene, muss die Pacing-Berechnung pro Ad Set laufen, nicht pro Kampagne — sonst wird ein Budget-Problem einem falschen Objekt zugeschrieben. - 90-110 % = unauffällig - Bei 400 €/Monat/Club (typisch ein einzelnes Ad Set): Toleranzband in den ersten 7 Tagen weiter fassen, genau wie bei Google ### 2. Frequenz & Creative Fatigue (Meta-spezifisch, gibt es bei Google Ads nicht) - **Frequenz-Richtwerte:** 1,5-2,5 für Neukunden-Ansprache (Prospecting), 3-5 für Retargeting, jeweils pro 7-Tage-Fenster - Frequenz deutlich über dem Richtwert **und** sinkende CTR über mehrere Tage = klares Fatigue-Signal → Creative-Wechsel empfehlen, nicht nur Budget/Targeting anfassen - Sinkende CTR bei stabiler Frequenz = eher Creative-Ermüdung als Zielgruppen-Problem; sinkende CTR bei steigender Frequenz = beides möglich, Skill nennt beide Hypothesen ### 3. Cost-per-Result-Ausreißer (statt CPA/CPC wie bei Google, da Metas primäre Optimierungsmetrik variiert) - Kosten pro Ergebnis (Lead, Klick, je nach Kampagnenziel), die sich >20 % gegenüber dem 7-Tage-Schnitt bewegen — gleicher Signal-vs-Noise-Filter wie bei Google: Trend muss bestätigt sein, sonst nur notieren - Unter 30 Ergebnissen/Woche für das Ad Set → Befund als "richtungsweisend" kennzeichnen, nicht als belastbar ### 4. Auslieferungsprobleme - Ad Set aktiv, aber 0 Auslieferung über 24h+ → Prüfen: Freigabestatus des Creatives, Zielgruppengröße zu klein, Budget zu niedrig für den Gebotswettbewerb - Kosten ohne jedes Ergebnis über mehrere Tage bei nennenswertem Spend (>20 % des Tagesbudgets) → sofort hohe Priorität ### 5. Zielgruppen-Überlappung (bei mehreren Ad Sets desselben Clubs) - Falls ein Club mehr als ein aktives Ad Set hat: prüfen, ob sich Zielgruppen überschneiden (beide werben um dieselben Personen, treiben sich gegenseitig die Kosten hoch) — bei 400 €/Monat/Club ist das selten der Fall, aber sobald ein zweites Ad Set hinzukommt, muss diese Prüfung aktiv sein ## Priorisierung | Priorität | Kriterium | |---|---| | KRITISCH | Auslieferungsproblem oder Budget-Verbrauch bei 0 Ergebnissen, hoher Spend-Anteil | | HOCH | Bestätigtes Fatigue- oder Kosten-Signal mit Business-Impact in € | | MITTEL | Bestätigtes Signal, aber geringer Spend-Anteil oder geringe Konfidenz | | BEOBACHTEN | Bewegung erkannt, aber Trend nicht bestätigt, Datenvolumen zu gering, oder Daten noch nicht final (Attributionsfenster) | Maximal 3-5 Empfehlungen pro Golfclub und Tag. ## Ausgabeformat Jede Karte nennt konkrete Kennzahl, Vergleichszeitraum, Grund — z. B. *"Frequenz auf 4,1 gestiegen, CTR seit 3 Tagen rückläufig — Creative-Ermüdung wahrscheinlich"*. ## Persistenz - Jede Empfehlung wird als eigene Zeile in derselben Empfehlungstabelle wie beim Google-Ads-Daily-Check gespeichert, aber mit `platform: meta_ads` und den Meta-spezifischen Evidenzfeldern (Frequenz, Cost-per-Result statt CPA/Impression-Share) - **Keine Mutation.** Eine Empfehlung kann höchstens den Meta-Kampagnen-Ersteller-Skill mit vorausgefülltem Kontext öffnen (z. B. "Creative austauschen" → neuer Planungslauf für dasselbe Ad Set) - Läuft automatisch nach jedem Meta-Sync-Lauf ## Technische Ausführungsroute 1. Der Meta-Sync speichert Inventar und normalisierte Tageswerte und beendet den Meta-Sync-Run. 2. Ein Post-Sync-Handler startet `daily_check_meta_ads` ausschließlich mit lokalen Meta-Kampagnen-, Ad-Set-, Ad- und Insight-Snapshots. Die letzten ein bis zwei Tage werden für Conversion-Vergleiche als vorläufig behandelt. 3. Deterministische Regeln erzeugen evidenzbasierte Kandidaten; das LLM formuliert höchstens die priorisierten Begründungen. 4. Ergebnisse werden in derselben plattformneutralen `campaign_recommendation`-Tabelle gespeichert, aber mit `platform: meta_ads` und einer lokalen Kampagnen- oder Ad-Set-Referenz. Es gibt keine direkte Meta-Mutation. ## Guardrails - Niemals die letzten 1-2 Tage als vollständig behandeln — Attributionsverzögerung immer berücksichtigen - Niemals ein Budget-Problem der Kampagne statt dem Ad Set zuschreiben - Niemals Frequenz-Ausreißer ignorieren, nur weil Kosten pro Ergebnis noch im Rahmen sind — Fatigue kündigt sich oft an, bevor die Kosten sichtbar steigen - Maximal 5 Empfehlungen pro Club und Tag
