Konektor Meta Ads
Hubungkan Meta Ads (Facebook & Instagram) ke Brevo melalui Tajo untuk menyinkronkan Custom Audience, mengimpor event konversi lewat Conversions API, dan menjembatani iklan paid social dengan otomatisasi marketing siklus hidup.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | Meta Ads (Facebook, Instagram, Messenger, WhatsApp) |
| Kategori | Marketing |
| Kompleksitas setup | Lanjutan |
| Integrasi resmi | Tidak |
| Data yang disinkronkan | Audiens, konversi, kampanye, lead |
| Skill tersedia | 8 |
| Versi API | v25.0 (Graph API) |
Fitur
- Sinkronisasi Custom Audience - Unggah daftar kontak Brevo sebagai Custom Audience Meta
- Conversions API (CAPI) - Kirim event konversi sisi server untuk atribusi yang akurat
- Sinkronisasi formulir lead - Impor kiriman Facebook Lead Ads langsung ke kontak Brevo
- Insight kampanye - Tarik metrik performa iklan ke dasbor Tajo
- Lookalike audience - Buat Lookalike Audience dari segmen Brevo yang tersinkron
- Sinkronisasi katalog - Sinkronkan katalog produk untuk iklan produk dinamis
- Multiplatform - Satu integrasi mencakup iklan Facebook, Instagram, Messenger, dan WhatsApp
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Akun Meta Business Manager
- Facebook App dengan akses Marketing API
- System User dengan izin yang sesuai
- Access Token dengan izin
ads_managementdanads_read - Akun Brevo dengan akses API
- Akun Tajo dengan kredensial API
Autentikasi
Access token System User
Meta menyarankan penggunaan token System User untuk integrasi server-ke-server. Token ini tidak kedaluwarsa.
# Required permissions for System Userads_managementads_readbusiness_managementleads_retrievalpages_read_engagementcatalog_managementAutentikasi tingkat aplikasi
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"Konfigurasi
Setup dasar
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"Konfigurasi Custom Audience
Sinkronkan daftar Brevo ke Custom Audience Meta:
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"Konfigurasi 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"Endpoint API
| Method | Endpoint | Deskripsi |
|---|---|---|
POST | /v25.0/act_{id}/customaudiences | Membuat sebuah Custom Audience |
POST | /v25.0/{audience_id}/users | Menambahkan pengguna ke Custom Audience |
DELETE | /v25.0/{audience_id}/users | Menghapus pengguna dari Custom Audience |
POST | /v25.0/{pixel_id}/events | Mengirim event Conversions API |
GET | /v25.0/act_{id}/campaigns | Menampilkan kampanye |
GET | /v25.0/act_{id}/insights | Mengambil insight kampanye |
GET | /v25.0/{form_id}/leads | Mengambil kiriman formulir lead |
POST | /v25.0/act_{id}/adcreatives | Membuat materi iklan |
GET | /v25.0/{catalog_id}/products | Menampilkan produk katalog |
Contoh kode
Inisialisasi konektor Meta Ads
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'});Mengirim event Conversions API
// 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 }) });Sinkronisasi Custom Audience dari daftar Brevo
// 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'});Menarik insight kampanye
// 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'});Batas rate
| Resource | Batas | Detail |
|---|---|---|
| Marketing API | Berbasis tier | Bergantung tingkat akses aplikasi dan belanja iklan |
| Unggahan Custom Audience | 700 permintaan/jam | Per akun iklan |
| Conversions API | 2.000 event/dtk | Per pixel |
| Insights API | 200 panggilan/jam | Per akun iklan |
| Pengambilan lead | 200 panggilan/jam | Per halaman |
| Permintaan batch | 50 permintaan/batch | Per panggilan batch |
Verifikasi bisnis wajib
Akses penuh Marketing API membutuhkan verifikasi bisnis di Meta Business Manager. Aplikasi yang belum terverifikasi terbatas pada mode pengembangan dengan batas rate yang dibatasi.
Pemecahan masalah
| Masalah | Penyebab | Solusi |
|---|---|---|
OAuthException | Token kedaluwarsa atau tidak valid | Buat ulang access token System User |
| Match rate Custom Audience rendah | Kualitas data buruk | Hash seluruh PII dengan SHA-256, sertakan beberapa match key |
| Konversi tidak teratribusi | Parameter fbc/fbp hilang | Kirimkan Facebook Click ID dan Browser ID dari cookie |
RATE_LIMIT_REACHED | Terlalu banyak panggilan API | Terapkan exponential backoff, periksa tier akses API |
| Formulir lead tidak tersinkron | Izin leads_retrieval belum ada | Tambahkan izin tersebut pada System User |
| Event dalam mode uji | test_event_code masih disetel | Hapus test event code untuk produksi |
Praktik terbaik
- Gunakan token System User - System User memberi token stabil yang tidak kedaluwarsa untuk integrasi server
- Hash seluruh PII - Hash semua informasi yang dapat mengidentifikasi pribadi dengan SHA-256 sebelum dikirim ke Meta
- Kirim CAPI dan Pixel sekaligus - Gunakan Conversions API dan Meta Pixel untuk pelacakan redundan dengan deduplikasi
- Sertakan event ID - Setel
event_idpada event CAPI maupun Pixel agar deduplikasi berfungsi - Kirimkan
fbcdanfbp- Sertakan Facebook Click ID dan Browser ID untuk atribusi konversi maksimal - Verifikasi bisnis Anda - Selesaikan Business Verification untuk akses API penuh dan batas rate lebih tinggi
- Gunakan
test_event_code- Uji event Conversions API di Events Manager sebelum tayang
Keamanan
- Token System User - Token autentikasi non-personal yang ber-scope bisnis
- Hashing SHA-256 - Seluruh PII di-hash sebelum dikirim ke server Meta
- App Secret Proof - Lapisan keamanan autentikasi tambahan yang bersifat opsional
- Scoping bisnis - Izin dibatasi pada akun iklan dan halaman tertentu
- Kepatuhan Meta - Tunduk pada Meta Platform Terms dan kebijakan periklanan
- Data Processing Terms - Data Processing Terms milik Meta berlaku untuk data EU