---
title: "Meta Ads-connector"
description: "Volledige Meta Ads-integratiegids voor het synchroniseren van Facebook- en Instagram-ad-audiences, conversies en campagnedata met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/marketing/meta-ads/
markdown: https://tajo.io/nl/docs/connectors/marketing/meta-ads.md
lang: nl-NL
robots: noindex
---

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

# Meta Ads-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

| Bronveld | Doelveld | Voorbeeldwaarde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbind Meta Ads (Facebook & Instagram) met Brevo via Tajo om Custom Audiences te synchroniseren, conversie-events te importeren via de Conversions API en betaalde social advertising te koppelen aan lifecycle marketingautomatisering.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | Meta Ads (Facebook, Instagram, Messenger, WhatsApp) |
| **Categorie** | Marketing |
| **Setupcomplexiteit** | Geavanceerd |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Audiences, Conversies, Campaigns, Leads |
| **Beschikbare skills** | 8 |
| **API-versie** | v25.0 (Graph API) |

## Functies

- **Custom Audience-synchronisatie** - Upload Brevo-contactlijsten als Meta Custom Audiences
- **Conversions API (CAPI)** - Verstuur server-side conversie-events voor accurate attributie
- **Lead form-synchronisatie** - Importeer Facebook Lead Ads-inzendingen rechtstreeks in Brevo-contacten
- **Campaign-insights** - Haal advertentieprestatiemetrics op in Tajo-dashboards
- **Lookalike audiences** - Maak Lookalike Audiences vanuit gesynchroniseerde Brevo-segmenten
- **Catalog-synchronisatie** - Synchroniseer productcatalogi voor dynamic product ads
- **Multi-platform** - Eén integratie dekt Facebook-, Instagram-, Messenger- en WhatsApp-advertenties

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een Meta Business Manager-account
2. Een Facebook App met Marketing API-toegang
3. Een System User met passende rechten
4. Een Access Token met `ads_management`- en `ads_read`-rechten
5. Een Brevo-account met API-toegang
6. Een Tajo-account met API-credentials

## Authenticatie

### System User Access Token

Meta raadt aan om System User-tokens te gebruiken voor server-to-server-integraties. Deze tokens vervallen niet.

```bash
# Required permissions for System User
ads_management
ads_read
business_management
leads_retrieval
pages_read_engagement
catalog_management
```

### App-niveau-authenticatie

```bash
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"
```

## Configuratie

### Basisinstelling

```yaml
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"
```

### Custom Audience-configuratie

Synchroniseer Brevo-lijsten naar Meta Custom Audiences:

```yaml
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"
```

### Conversions API-configuratie

```yaml
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

| Method | Endpoint | Beschrijving |
| --- | --- | --- |
| `POST` | `/v25.0/act_{id}/customaudiences` | Een Custom Audience aanmaken |
| `POST` | `/v25.0/{audience_id}/users` | Gebruikers toevoegen aan Custom Audience |
| `DELETE` | `/v25.0/{audience_id}/users` | Gebruikers verwijderen uit Custom Audience |
| `POST` | `/v25.0/{pixel_id}/events` | Conversions API-events versturen |
| `GET` | `/v25.0/act_{id}/campaigns` | Campaigns opvragen |
| `GET` | `/v25.0/act_{id}/insights` | Campaign-insights ophalen |
| `GET` | `/v25.0/{form_id}/leads` | Lead form-inzendingen ophalen |
| `POST` | `/v25.0/act_{id}/adcreatives` | Ad creatives aanmaken |
| `GET` | `/v25.0/{catalog_id}/products` | Catalogusproducten opvragen |

## Codevoorbeelden

### Meta Ads-connector initialiseren

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect Meta Ads account
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-events versturen

```javascript
// Send a purchase event via 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('jane@example.com')],
          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 synchroniseren vanuit Brevo-lijst

```javascript
// Upload a Brevo contact list as a Meta Custom Audience
await tajo.connectors.syncAudience('meta-ads', {
  brevoListId: 5,
  audienceName: 'High Value Customers',
  matchKeys: ['EMAIL', 'PHONE', 'FN', 'LN'],
  syncMode: 'mirror'
});
```

### Campaign-insights ophalen

```javascript
// Get campaign performance metrics
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'
});
```

## Rate limits

| Resource | Limiet | Details |
| --- | --- | --- |
| **Marketing API** | Tier-gebaseerd | Op basis van app-toegangsniveau en uitgaven |
| **Custom Audience-uploads** | 700 requests/uur | Per ad account |
| **Conversions API** | 2.000 events/sec | Per pixel |
| **Insights API** | 200 calls/uur | Per ad account |
| **Lead-ophalen** | 200 calls/uur | Per pagina |
| **Batch requests** | 50 requests/batch | Per batch-call |

Bedrijfsverificatie vereist

Volledige Marketing API-toegang vereist bedrijfsverificatie in Meta Business Manager. Niet-geverifieerde apps zijn beperkt tot development mode met beperkte rate limits.

## Probleemoplossing

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| `OAuthException` | Token verlopen of ongeldig | Regenereer System User access token |
| Lage Custom Audience match rate | Slechte datakwaliteit | Hash alle PII met SHA-256, gebruik meerdere match keys |
| Conversies niet geattribueerd | Ontbrekende `fbc`/`fbp`-parameters | Geef Facebook Click ID en Browser ID door uit cookies |
| `RATE_LIMIT_REACHED` | Te veel API-calls | Implementeer exponentiële backoff, controleer API-toegangstier |
| Lead forms niet gesynchroniseerd | Ontbrekend `leads_retrieval`-recht | Voeg recht toe aan System User |
| Events in test mode | `test_event_code` nog gezet | Verwijder test event code voor productie |

## Best practices

1. **Gebruik System User-tokens** - System Users bieden stabiele, niet-vervallende tokens voor server-integraties
2. **Hash alle PII** - SHA-256 alle persoonlijk identificeerbare informatie hashen voordat je deze naar Meta stuurt
3. **Verstuur zowel CAPI als Pixel** - Gebruik zowel Conversions API als Meta Pixel voor redundante tracking met deduplicatie
4. **Voeg event-ID’s toe** - Stel `event_id` in op zowel CAPI- als Pixel-events om deduplicatie mogelijk te maken
5. **Geef `fbc` en `fbp` door** - Voeg Facebook Click ID en Browser ID toe voor maximale conversie-attributie
6. **Verifieer je bedrijf** - Voltooi Business Verification voor volledige API-toegang en hogere rate limits
7. **Gebruik `test_event_code`** - Test Conversions API-events in Events Manager voordat je live gaat

## Beveiliging

- **System User-tokens** - Niet-persoonlijke, business-gescoopte authenticatietokens
- **SHA-256-hashing** - Alle PII gehasht voordat het naar Meta-servers wordt gestuurd
- **App Secret Proof** - Optionele extra laag van authenticatiebeveiliging
- **Business-scoping** - Rechten gescoped op specifieke ad accounts en pagina’s
- **Meta-compliance** - Onderworpen aan Meta Platform Terms en advertentiebeleid
- **Data Processing Terms** - Meta’s Data Processing Terms gelden voor EU-data

## Gerelateerde bronnen

- [Google Ads-connector](https://tajo.io/nl/docs/connectors/marketing/google-ads)
- [Klaviyo-connector](https://tajo.io/nl/docs/connectors/marketing/klaviyo)
- [Brevo-connector](https://tajo.io/nl/docs/connectors/marketing/brevo)
- [Customer Sync Skill](https://tajo.io/nl/docs/skills/data-sync/customer-sync)
