Meta Ads-koppling
Anslut Meta Ads (Facebook & Instagram) till Brevo via Tajo för att synkronisera Custom Audiences, importera konverteringshändelser via Conversions API och koppla betald social annonsering till livscykelmarknadsautomation.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Meta Ads (Facebook, Instagram, Messenger, WhatsApp) |
| Kategori | Marknadsföring |
| Installationskomplexitet | Avancerad |
| Officiell integration | Nej |
| Data som synkas | Målgrupper, konverteringar, kampanjer, leads |
| Tillgängliga skills | 8 |
| API-version | v25.0 (Graph API) |
Funktioner
- Synk av Custom Audience - Ladda upp Brevo-kontaktlistor som Meta Custom Audiences
- Conversions API (CAPI) - Skicka konverteringshändelser på serversidan för exakt attribution
- Synk av lead-formulär - Importera Facebook Lead Ads-inskickningar direkt till Brevo-kontakter
- Kampanjinsikter - Hämta annonsprestandamått till Tajo-dashboards
- Lookalike-målgrupper - Skapa Lookalike Audiences från synkade Brevo-segment
- Katalogsynk - Synka produktkataloger för dynamiska produktannonser
- Flera plattformar - En integration täcker Facebook-, Instagram-, Messenger- och WhatsApp-annonser
Förutsättningar
Innan du börjar, se till att du har:
- Ett Meta Business Manager-konto
- En Facebook-app med Marketing API-åtkomst
- En System User med lämpliga behörigheter
- En Access Token med behörigheterna
ads_managementochads_read - Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med API-uppgifter
Autentisering
Access Token för System User
Meta rekommenderar System User-tokens för integrationer server till server. Dessa tokens går inte ut.
# Required permissions for System Userads_managementads_readbusiness_managementleads_retrievalpages_read_engagementcatalog_managementAutentisering på apppnivå
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
Grundläggande konfiguration
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 för Custom Audience
Synka Brevo-listor till 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 för 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-ändpunkter
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
POST | /v25.0/act_{id}/customaudiences | Skapa en Custom Audience |
POST | /v25.0/{audience_id}/users | Lägg till användare i Custom Audience |
DELETE | /v25.0/{audience_id}/users | Ta bort användare från Custom Audience |
POST | /v25.0/{pixel_id}/events | Skicka Conversions API-händelser |
GET | /v25.0/act_{id}/campaigns | Lista kampanjer |
GET | /v25.0/act_{id}/insights | Hämta kampanjinsikter |
GET | /v25.0/{form_id}/leads | Hämta lead-formulärinskickningar |
POST | /v25.0/act_{id}/adcreatives | Skapa annonskreativ |
GET | /v25.0/{catalog_id}/products | Lista katalogprodukter |
Kodexempel
Initiera Meta Ads-kopplingen
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'});Skicka Conversions API-händelser
// 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 }) });Synka Custom Audience från Brevo-lista
// 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'});Hämta kampanjinsikter
// 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'});API-gränser
| Resurs | Gräns | Detaljer |
|---|---|---|
| Marketing API | Tier-baserat | Baserat på appens åtkomstnivå och spend |
| Custom Audience-uppladdningar | 700 förfrågningar/timme | Per annonskonto |
| Conversions API | 2 000 händelser/sek | Per pixel |
| Insights API | 200 anrop/timme | Per annonskonto |
| Lead-hämtning | 200 anrop/timme | Per sida |
| Batch-förfrågningar | 50 förfrågningar/batch | Per batch-anrop |
Företagsverifiering krävs
Full åtkomst till Marketing API kräver företagsverifiering i Meta Business Manager. Overifierade appar är begränsade till utvecklingsläge med begränsade rate limits.
Felsökning
| Problem | Orsak | Lösning |
|---|---|---|
OAuthException | Token utgången eller ogiltig | Generera om System User access token |
| Låg matchningsgrad för Custom Audience | Dålig datakvalitet | Hasha all PII med SHA-256, inkludera flera match keys |
| Konverteringar attribueras inte | fbc/fbp-parametrar saknas | Skicka Facebook Click ID och Browser ID från cookies |
RATE_LIMIT_REACHED | För många API-anrop | Implementera exponentiell backoff, kontrollera API-åtkomstnivån |
| Lead-formulär synkas inte | Behörigheten leads_retrieval saknas | Lägg till behörigheten för System User |
| Händelser i testläge | test_event_code är fortfarande satt | Ta bort testhändelsekoden i produktion |
Bästa praxis
- Använd System User-tokens - System Users tillhandahåller stabila, icke-utgående tokens för serverintegrationer
- Hasha all PII - Hasha all personligt identifierbar information med SHA-256 innan den skickas till Meta
- Skicka både CAPI och Pixel - Använd både Conversions API och Meta Pixel för redundant spårning med deduplicering
- Inkludera event-ID:n - Sätt
event_idpå både CAPI- och Pixel-händelser för att möjliggöra deduplicering - Skicka
fbcochfbp- Inkludera Facebook Click ID och Browser ID för maximal konverteringsattribution - Verifiera ditt företag - Slutför företagsverifieringen för full API-åtkomst och högre rate limits
- Använd
test_event_code- Testa Conversions API-händelser i Events Manager innan du går live
Säkerhet
- System User-tokens - Icke-personliga, företagsscopade autentiseringstokens
- SHA-256-hashning - All PII hashas innan överföring till Metas servrar
- App Secret Proof - Valbart extra säkerhetslager för autentisering
- Företagsscoping - Behörigheter scopas till specifika annonskonton och sidor
- Meta-efterlevnad - Omfattas av Meta Platform Terms och annonspolicyer
- Data Processing Terms - Metas Data Processing Terms gäller för EU-data