Zum Inhalt springen
Driverseat by Albatros
Zurück zu Skills

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