Meta Ads 커넥터

Tajo를 통해 Meta Ads(Facebook & Instagram)를 Brevo에 연결하여 Custom Audience를 동기화하고, Conversions API를 통해 전환 이벤트를 가져오며, 유료 소셜 광고와 라이프사이클 마케팅 자동화를 연결하십시오.

개요

속성
플랫폼Meta Ads (Facebook, Instagram, Messenger, WhatsApp)
카테고리Marketing
설정 복잡도고급
공식 통합아니오
동기화 데이터오디언스, 전환, 캠페인, 리드
사용 가능한 스킬8
API 버전v25.0 (Graph API)

기능

  • Custom Audience 동기화 - Brevo 연락처 목록을 Meta Custom Audience로 업로드
  • Conversions API (CAPI) - 정확한 귀속을 위해 서버 측 전환 이벤트 전송
  • 리드 폼 동기화 - Facebook 리드 광고 제출을 Brevo 연락처로 직접 가져오기
  • 캠페인 인사이트 - Tajo 대시보드로 광고 성능 지표 가져오기
  • Lookalike 오디언스 - 동기화된 Brevo 세그먼트에서 Lookalike 오디언스 생성
  • 카탈로그 동기화 - 동적 제품 광고용 제품 카탈로그 동기화
  • 멀티 플랫폼 - 단일 통합으로 Facebook, Instagram, Messenger, WhatsApp 광고 커버

사전 요구 사항

시작하기 전에 다음이 준비되어 있는지 확인하십시오.

  1. Meta Business Manager 계정
  2. Marketing API 접근 권한이 있는 Facebook 앱
  3. 적절한 권한이 있는 System User
  4. ads_managementads_read 권한이 있는 액세스 토큰
  5. API 접근이 가능한 Brevo 계정
  6. API 자격 증명이 있는 Tajo 계정

인증

System User 액세스 토큰

Meta는 서버-서버 통합에 System User 토큰 사용을 권장합니다. 이러한 토큰은 만료되지 않습니다.

Terminal window
# System User에 필요한 권한
ads_management
ads_read
business_management
leads_retrieval
pages_read_engagement
catalog_management

앱 수준 인증

Terminal window
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"

구성

기본 설정

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"
# 데이터 동기화 옵션
sync:
custom_audiences: true
conversions_api: true
lead_forms: true
campaign_insights: true
# API 버전
api_version: "v25.0"

Custom Audience 구성

Brevo 목록을 Meta Custom Audience로 동기화합니다.

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"
# 매칭 필드
match_keys:
- EMAIL
- PHONE
- FN # 이름
- LN # 성
- CT # 도시
- ST # 주
- ZIP
- COUNTRY
schedule: "daily"
sync_mode: "mirror"

Conversions API 구성

conversions_api:
enabled: true
pixel_id: "111222333444"
test_event_code: "" # 테스트용으로 설정, 프로덕션에서는 비움
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 엔드포인트

메서드엔드포인트설명
POST/v25.0/act_{id}/customaudiencesCustom Audience 생성
POST/v25.0/{audience_id}/usersCustom Audience에 사용자 추가
DELETE/v25.0/{audience_id}/usersCustom Audience에서 사용자 제거
POST/v25.0/{pixel_id}/eventsConversions API 이벤트 전송
GET/v25.0/act_{id}/campaigns캠페인 목록
GET/v25.0/act_{id}/insights캠페인 인사이트 가져오기
GET/v25.0/{form_id}/leads리드 폼 제출 가져오기
POST/v25.0/act_{id}/adcreatives광고 크리에이티브 생성
GET/v25.0/{catalog_id}/products카탈로그 제품 목록

코드 예제

Meta Ads 커넥터 초기화

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Meta Ads 계정 연결
await 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 이벤트 전송

// Conversions API를 통해 구매 이벤트 전송
const 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: {
em: [hashSHA256('[email protected]')],
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
})
}
);

Brevo 목록에서 Custom Audience 동기화

// Brevo 연락처 목록을 Meta Custom Audience로 업로드
await tajo.connectors.syncAudience('meta-ads', {
brevoListId: 5,
audienceName: 'High Value Customers',
matchKeys: ['EMAIL', 'PHONE', 'FN', 'LN'],
syncMode: 'mirror'
});

캠페인 인사이트 가져오기

// 캠페인 성능 지표 가져오기
const 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'
});

속도 제한

리소스제한세부 사항
Marketing API티어 기반앱 접근 수준 및 지출 기반
Custom Audience 업로드시간당 700 요청광고 계정당
Conversions API2,000 이벤트/초Pixel당
Insights API시간당 200 호출광고 계정당
리드 가져오기시간당 200 호출페이지당
배치 요청배치당 50 요청배치 호출당

비즈니스 검증 필수

전체 Marketing API 접근에는 Meta Business Manager에서 비즈니스 검증이 필요합니다. 검증되지 않은 앱은 속도 제한이 제한된 개발 모드로 제한됩니다.

문제 해결

문제원인해결 방법
OAuthException토큰 만료되거나 잘못됨System User 액세스 토큰 재생성
낮은 Custom Audience 매칭률낮은 데이터 품질모든 PII를 SHA-256으로 해시, 여러 매칭 키 포함
전환이 귀속되지 않음fbc/fbp 매개변수 누락쿠키에서 Facebook Click ID 및 Browser ID 전달
RATE_LIMIT_REACHEDAPI 호출이 너무 많음지수 백오프 구현, API 접근 티어 확인
리드 폼이 동기화되지 않음leads_retrieval 권한 누락System User에 권한 추가
테스트 모드의 이벤트test_event_code가 여전히 설정됨프로덕션에서 테스트 이벤트 코드 제거

모범 사례

  1. System User 토큰 사용 - System User는 서버 통합에 안정적이고 만료되지 않는 토큰 제공
  2. 모든 PII 해시 - Meta로 전송하기 전에 모든 개인 식별 정보를 SHA-256으로 해시
  3. CAPI와 Pixel 모두 전송 - 중복 제거를 포함한 중복 추적에 Conversions API와 Meta Pixel 모두 사용
  4. 이벤트 ID 포함 - 중복 제거를 활성화하려면 CAPI와 Pixel 이벤트 모두에 event_id 설정
  5. fbcfbp 전달 - 최대 전환 귀속을 위해 Facebook Click ID 및 Browser ID 포함
  6. 비즈니스 검증 - 전체 API 접근 및 더 높은 속도 제한을 위해 비즈니스 검증 완료
  7. test_event_code 사용 - 라이브로 전환하기 전에 Events Manager에서 Conversions API 이벤트 테스트

보안

  • System User 토큰 - 비개인적이며 비즈니스 범위의 인증 토큰
  • SHA-256 해시 - Meta 서버로 전송하기 전에 모든 PII 해시
  • App Secret Proof - 선택적 추가 인증 보안 계층
  • 비즈니스 범위 지정 - 특정 광고 계정 및 페이지로 권한 범위 지정
  • Meta 규정 준수 - Meta 플랫폼 약관 및 광고 정책 적용
  • 데이터 처리 약관 - EU 데이터에 Meta의 데이터 처리 약관 적용

관련 리소스

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI 어시스턴트

안녕하세요! 문서에 대해 무엇이든 물어보세요.