Meta Ads Connector
Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.
Illustration · Beispieldaten
Sync-Beispiel
Quelle
Meta Ads
Connector-Status: Geplant
Ziel
Ihr anderes Tool
Connector-Status: Eigenes Tool
Feldzuordnung
| Quellfeld | Zielfeld | Beispielwert |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Entwerfen
- Einen Datensatz prüfen
- Diese Version freigeben
Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.
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