Meta Ads Connector
Verbinde Meta Ads (Facebook & Instagram) über Tajo mit Brevo, um Custom Audiences zu synchronisieren, Conversion-Events über die Conversions API zu importieren und Paid-Social-Werbung mit der Lifecycle-Marketing-Automatisierung zu verbinden.
Überblick
| Eigenschaft | Wert |
|---|---|
| Plattform | Meta Ads (Facebook, Instagram, Messenger, WhatsApp) |
| Kategorie | Marketing |
| Einrichtungsaufwand | Fortgeschritten |
| Offizielle Integration | Nein |
| Synchronisierte Daten | Audiences, Conversions, Kampagnen, Leads |
| Verfügbare Skills | 8 |
| API-Version | v25.0 (Graph API) |
Funktionen
- Custom-Audience-Sync - Lade Brevo-Kontaktlisten als Meta Custom Audiences hoch
- Conversions API (CAPI) - Sende serverseitige Conversion-Events für eine präzise Attribution
- Lead-Form-Sync - Importiere Einsendungen aus Facebook Lead Ads direkt in Brevo-Kontakte
- Kampagnen-Insights - Hole dir Ad-Performance-Metriken in deine Tajo-Dashboards
- Lookalike Audiences - Erstelle Lookalike Audiences aus synchronisierten Brevo-Segmenten
- Catalog-Sync - Synchronisiere Produktkataloge für Dynamic Product Ads
- Multi-Plattform - Eine Integration deckt Facebook-, Instagram-, Messenger- und WhatsApp-Ads ab
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Ein Meta-Business-Manager-Konto
- Eine Facebook-App mit Zugriff auf die Marketing API
- Einen System User mit den passenden Berechtigungen
- Ein Access Token mit den Berechtigungen
ads_managementundads_read - Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto mit API-Anmeldedaten
Authentifizierung
System-User-Access-Token
Meta empfiehlt für Server-zu-Server-Integrationen System-User-Tokens. Diese Tokens laufen nicht ab.
# Required permissions for System Userads_managementads_readbusiness_managementleads_retrievalpages_read_engagementcatalog_managementAuthentifizierung auf App-Ebene
curl -G "https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/campaigns" \ -d "access_token=SYSTEM_USER_ACCESS_TOKEN" \ -d "fields=name,status,objective"Konfiguration
Grundeinrichtung
connectors: meta_ads: enabled: true app_id: "your-facebook-app-id" app_secret: "your-facebook-app-secret" access_token: "your-system-user-access-token" ad_account_id: "act_123456789" business_id: "987654321" pixel_id: "111222333444"
# Data sync options sync: custom_audiences: true conversions_api: true lead_forms: true campaign_insights: true
# API version api_version: "v25.0"Konfiguration der Custom Audiences
Synchronisiere Brevo-Listen als Meta Custom Audiences:
custom_audiences: enabled: true lists: - brevo_list_id: 5 audience_name: "All Customers" subtype: "CUSTOM" - brevo_list_id: 6 audience_name: "High LTV Customers" subtype: "CUSTOM" - brevo_list_id: 7 audience_name: "Recent Purchasers" subtype: "CUSTOM"
# Matching fields match_keys: - EMAIL - PHONE - FN # First name - LN # Last name - CT # City - ST # State - ZIP - COUNTRY
schedule: "daily" sync_mode: "mirror"Konfiguration der Conversions API
conversions_api: enabled: true pixel_id: "111222333444" test_event_code: "" # Set for testing, clear for production
events: - brevo_event: "order_completed" meta_event: "Purchase" value_field: "revenue" currency_field: "currency" - brevo_event: "cart_updated" meta_event: "AddToCart" - brevo_event: "customer_created" meta_event: "Lead" - brevo_event: "page_viewed" meta_event: "ViewContent"API-Endpoints
| Methode | Endpoint | Beschreibung |
|---|---|---|
POST | /v25.0/act_{id}/customaudiences | Eine Custom Audience anlegen |
POST | /v25.0/{audience_id}/users | User zu einer Custom Audience hinzufügen |
DELETE | /v25.0/{audience_id}/users | User aus einer Custom Audience entfernen |
POST | /v25.0/{pixel_id}/events | Conversions-API-Events senden |
GET | /v25.0/act_{id}/campaigns | Kampagnen auflisten |
GET | /v25.0/act_{id}/insights | Kampagnen-Insights abrufen |
GET | /v25.0/{form_id}/leads | Einsendungen von Lead-Formularen abrufen |
POST | /v25.0/act_{id}/adcreatives | Ad Creatives anlegen |
GET | /v25.0/{catalog_id}/products | Katalog-Produkte auflisten |
Code-Beispiele
Meta-Ads-Connector initialisieren
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Meta Ads accountawait tajo.connectors.connect('meta-ads', { appId: process.env.META_APP_ID, appSecret: process.env.META_APP_SECRET, accessToken: process.env.META_ACCESS_TOKEN, adAccountId: 'act_123456789', pixelId: '111222333444'});Conversions-API-Events senden
// Send a purchase event via Conversions APIconst response = await fetch( `https://graph.facebook.com/v25.0/${PIXEL_ID}/events`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ data: [{ event_name: 'Purchase', event_time: Math.floor(Date.now() / 1000), action_source: 'website', user_data: { ph: [hashSHA256('+15551234567')], fn: [hashSHA256('jane')], ln: [hashSHA256('kim')], client_ip_address: '192.168.1.1', client_user_agent: 'Mozilla/5.0...', fbc: 'fb.1.1234567890.AbCdEfG', // Click ID fbp: 'fb.1.1234567890.987654321' // Browser ID }, custom_data: { value: 89.99, currency: 'USD', content_ids: ['SKU-001'], content_type: 'product' } }], access_token: process.env.META_ACCESS_TOKEN }) });Custom Audience aus einer Brevo-Liste synchronisieren
// Upload a Brevo contact list as a Meta Custom Audienceawait tajo.connectors.syncAudience('meta-ads', { brevoListId: 5, audienceName: 'High Value Customers', matchKeys: ['EMAIL', 'PHONE', 'FN', 'LN'], syncMode: 'mirror'});Kampagnen-Insights abrufen
// Get campaign performance metricsconst insights = await tajo.connectors.query('meta-ads', { resource: 'campaigns', fields: ['campaign_name', 'impressions', 'clicks', 'spend', 'actions', 'cost_per_action_type'], dateRange: { since: '2024-01-01', until: '2024-01-31' }, level: 'campaign'});Rate Limits
| Ressource | Limit | Details |
|---|---|---|
| Marketing API | Tier-basiert | Abhängig vom App-Zugriffslevel und Werbebudget |
| Custom-Audience-Uploads | 700 Anfragen/Stunde | Pro Werbekonto |
| Conversions API | 2.000 Events/Sek. | Pro Pixel |
| Insights API | 200 Calls/Stunde | Pro Werbekonto |
| Lead-Retrieval | 200 Calls/Stunde | Pro Seite |
| Batch-Anfragen | 50 Anfragen/Batch | Pro Batch-Call |
Business-Verifizierung erforderlich
Der vollständige Zugriff auf die Marketing API erfordert eine Business-Verifizierung im Meta Business Manager. Nicht verifizierte Apps sind auf den Entwicklungsmodus mit eingeschränkten Rate Limits beschränkt.
Fehlerbehebung
| Problem | Ursache | Lösung |
|---|---|---|
OAuthException | Token abgelaufen oder ungültig | System-User-Access-Token neu generieren |
| Niedrige Custom-Audience-Trefferquote | Schlechte Datenqualität | Personenbezogene Daten mit SHA-256 hashen und mehrere Match Keys einbeziehen |
| Conversions werden nicht attribuiert | Parameter fbc/fbp fehlen | Facebook Click ID und Browser ID aus den Cookies übergeben |
RATE_LIMIT_REACHED | Zu viele API-Aufrufe | Exponentielles Backoff umsetzen und API-Zugriffs-Tier prüfen |
| Lead-Formulare werden nicht synchronisiert | Berechtigung leads_retrieval fehlt | Berechtigung beim System User ergänzen |
| Events im Testmodus | test_event_code noch gesetzt | Test-Event-Code für die Produktion entfernen |
Best Practices
- System-User-Tokens nutzen - System User liefern stabile, nicht ablaufende Tokens für Server-Integrationen
- Alle personenbezogenen Daten hashen - Hashe alle PII mit SHA-256, bevor du sie an Meta sendest
- CAPI und Pixel parallel senden - Nutze Conversions API und Meta Pixel für redundantes Tracking mit Deduplizierung
- Event-IDs setzen - Setze
event_idsowohl in CAPI- als auch in Pixel-Events, um die Deduplizierung zu ermöglichen fbcundfbpübergeben - Liefere Facebook Click ID und Browser ID für eine maximale Conversion-Attribution- Business verifizieren - Schließe die Business-Verifizierung ab, um vollen API-Zugriff und höhere Rate Limits zu erhalten
test_event_codenutzen - Teste Conversions-API-Events im Events Manager, bevor du live gehst
Sicherheit
- System-User-Tokens - Nicht personengebundene, geschäftlich gescopte Authentifizierungs-Tokens
- SHA-256-Hashing - Alle personenbezogenen Daten werden vor der Übertragung an Meta-Server gehasht
- App Secret Proof - Optionale zusätzliche Sicherheitsebene für die Authentifizierung
- Business-Scoping - Berechtigungen sind auf bestimmte Werbekonten und Pages beschränkt
- Meta-Compliance - Unterliegt den Meta-Plattform-Bedingungen und Werberichtlinien
- Data Processing Terms - Die Meta Data Processing Terms gelten für EU-Daten