Meta Ads コネクタ

Tajo を介して Meta Ads(Facebook と Instagram)を Brevo に接続し、カスタムオーディエンスを同期し、Conversions API 経由でコンバージョンイベントをインポートし、有料ソーシャル広告とライフサイクルマーケティング自動化をつなぎます。

概要

プロパティ
プラットフォームMeta Ads(Facebook、Instagram、Messenger、WhatsApp)
カテゴリマーケティング
セットアップの複雑さ上級
公式統合いいえ
同期データオーディエンス、コンバージョン、キャンペーン、リード
利用可能なスキル8
API バージョンv25.0(Graph API)

機能

  • カスタムオーディエンス同期 - Brevo 連絡先リストを Meta カスタムオーディエンスとしてアップロード
  • Conversions API(CAPI) - 正確な属性のためサーバーサイドコンバージョンイベントを送信
  • リードフォーム同期 - Facebook Lead Ads の送信を Brevo 連絡先に直接インポート
  • キャンペーンインサイト - 広告パフォーマンスメトリクスを Tajo ダッシュボードに取得
  • 類似オーディエンス - 同期された Brevo セグメントから類似オーディエンスを作成
  • カタログ同期 - ダイナミック商品広告用に商品カタログを同期
  • マルチプラットフォーム - 単一統合で Facebook、Instagram、Messenger、WhatsApp 広告をカバー

前提条件

開始する前に、以下を準備してください。

  1. Meta Business Manager アカウント
  2. Marketing API アクセス権を持つ Facebook アプリ
  3. 適切な権限を持つシステムユーザー
  4. ads_managementads_read 権限を持つアクセストークン
  5. API アクセス可能な Brevo アカウント
  6. API 認証情報を持つ Tajo アカウント

認証

システムユーザーアクセストークン

Meta はサーバー間統合にシステムユーザートークンの使用を推奨しています。これらのトークンは期限切れになりません。

Terminal window
# システムユーザーに必要な権限
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"

カスタムオーディエンス設定

Brevo リストを 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"
# マッチングフィールド
match_keys:
- EMAIL
- PHONE
- FN # First name
- LN # Last name
- CT # City
- ST # State
- 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}/customaudiencesカスタムオーディエンスを作成
POST/v25.0/{audience_id}/usersカスタムオーディエンスにユーザーを追加
DELETE/v25.0/{audience_id}/usersカスタムオーディエンスからユーザーを削除
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', // クリック ID
fbp: 'fb.1.1234567890.987654321' // ブラウザ ID
},
custom_data: {
value: 89.99,
currency: 'USD',
content_ids: ['SKU-001'],
content_type: 'product'
}
}],
access_token: process.env.META_ACCESS_TOKEN
})
}
);

Brevo リストからカスタムオーディエンスを同期

// Brevo 連絡先リストを Meta カスタムオーディエンスとしてアップロード
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ティアベースアプリアクセスレベルと支出に基づく
カスタムオーディエンスのアップロード700 リクエスト/時間広告アカウント単位
Conversions API2,000 イベント/秒Pixel 単位
Insights API200 呼び出し/時間広告アカウント単位
リード取得200 呼び出し/時間ページ単位
バッチリクエスト50 リクエスト/バッチバッチ呼び出し単位

ビジネス検証が必要

完全な Marketing API アクセスには Meta Business Manager でのビジネス検証が必要です。未検証のアプリは開発モードに制限され、レート制限が厳しくなります。

トラブルシューティング

問題原因解決策
OAuthExceptionトークンが期限切れまたは無効システムユーザーアクセストークンを再生成
カスタムオーディエンスのマッチ率が低いデータ品質の低さすべての PII を SHA-256 でハッシュ化し、複数のマッチキーを含める
コンバージョンが帰属されないfbc/fbp パラメータの欠落Cookie から Facebook クリック ID とブラウザ ID を渡す
RATE_LIMIT_REACHEDAPI 呼び出し過多指数バックオフを実装、API アクセスティアを確認
リードフォームが同期されないleads_retrieval 権限の欠落システムユーザーに権限を追加
イベントがテストモードtest_event_code が設定されたまま本番用にテストイベントコードを削除

ベストプラクティス

  1. システムユーザートークンを使用する - サーバー統合に安定した非期限切れトークンを提供
  2. すべての PII をハッシュ化する - Meta に送信する前にすべての個人識別情報を SHA-256 でハッシュ化
  3. CAPI と Pixel の両方を送信する - 重複排除を使用した冗長トラッキングのために両方を使用
  4. イベント ID を含める - 重複排除を有効にするため CAPI と Pixel イベントの両方に event_id を設定
  5. fbcfbp を渡す - 最大のコンバージョン属性のため Facebook クリック ID とブラウザ ID を含める
  6. ビジネスを検証する - 完全な API アクセスと高いレート制限のためビジネス検証を完了
  7. test_event_code を使用する - 本番前に Events Manager で Conversions API イベントをテスト

セキュリティ

  • システムユーザートークン - 非個人的、ビジネススコープの認証トークン
  • 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アシスタント

こんにちは!ドキュメントについて何でもお聞きください。