Conector de Meta Ads
Conecta Meta Ads (Facebook e Instagram) con Brevo a través de Tajo para sincronizar Custom Audiences, importar eventos de conversión vía la Conversions API y unir la publicidad social de pago con la automatización de marketing de ciclo de vida.
Resumen
| Propiedad | Valor |
|---|---|
| Plataforma | Meta Ads (Facebook, Instagram, Messenger, WhatsApp) |
| Categoría | Marketing |
| Complejidad de configuración | Avanzada |
| Integración oficial | No |
| Datos sincronizados | Audiencias, Conversiones, Campañas, Leads |
| Skills disponibles | 8 |
| Versión de API | v25.0 (Graph API) |
Funcionalidades
- Sincronización de Custom Audiences - Sube listas de contactos de Brevo como Custom Audiences de Meta
- Conversions API (CAPI) - Envía eventos de conversión server-side para una atribución precisa
- Sincronización de formularios de lead - Importa los envíos de Lead Ads de Facebook directamente a contactos de Brevo
- Insights de campañas - Trae las métricas de rendimiento de anuncios a los dashboards de Tajo
- Lookalike Audiences - Crea Lookalike Audiences a partir de segmentos de Brevo sincronizados
- Sincronización de catálogos - Sincroniza catálogos de productos para anuncios dinámicos
- Multiplataforma - Una sola integración cubre anuncios en Facebook, Instagram, Messenger y WhatsApp
Requisitos previos
Antes de empezar, asegúrate de tener:
- Una cuenta de Meta Business Manager
- Una app de Facebook con acceso a la Marketing API
- Un System User con los permisos adecuados
- Un Access Token con permisos
ads_managementyads_read - Una cuenta de Brevo con acceso a la API
- Una cuenta de Tajo con credenciales de API
Autenticación
Access Token de System User
Meta recomienda usar tokens de System User para integraciones servidor a servidor. Estos tokens no expiran.
# Required permissions for System Userads_managementads_readbusiness_managementleads_retrievalpages_read_engagementcatalog_managementAutenticación a nivel de app
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"Configuración
Configuración básica
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"Configuración de Custom Audiences
Sincroniza listas de Brevo con Custom Audiences de 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"Configuración de la 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"Endpoints de la API
| Método | Endpoint | Descripción |
|---|---|---|
POST | /v25.0/act_{id}/customaudiences | Crear una Custom Audience |
POST | /v25.0/{audience_id}/users | Añadir usuarios a una Custom Audience |
DELETE | /v25.0/{audience_id}/users | Eliminar usuarios de una Custom Audience |
POST | /v25.0/{pixel_id}/events | Enviar eventos de la Conversions API |
GET | /v25.0/act_{id}/campaigns | Listar campañas |
GET | /v25.0/act_{id}/insights | Obtener insights de campaña |
GET | /v25.0/{form_id}/leads | Obtener los envíos de formularios de lead |
POST | /v25.0/act_{id}/adcreatives | Crear creatividades |
GET | /v25.0/{catalog_id}/products | Listar productos del catálogo |
Ejemplos de código
Inicializar el conector de 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'});Enviar eventos por la 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 }) });Sincronizar una Custom Audience desde una lista de 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'});Obtener insights de campañas
// 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'});Límites de velocidad
| Recurso | Límite | Detalles |
|---|---|---|
| Marketing API | Por niveles | Según el nivel de acceso de la app y el gasto |
| Subidas a Custom Audience | 700 peticiones/hora | Por cuenta publicitaria |
| Conversions API | 2.000 eventos/s | Por píxel |
| Insights API | 200 llamadas/hora | Por cuenta publicitaria |
| Obtención de leads | 200 llamadas/hora | Por página |
| Peticiones por lotes | 50 peticiones/lote | Por llamada batch |
Se requiere verificación de empresa
El acceso completo a la Marketing API requiere verificación de empresa en Meta Business Manager. Las apps no verificadas están limitadas al modo desarrollo con límites de velocidad restringidos.
Resolución de problemas
| Problema | Causa | Solución |
|---|---|---|
OAuthException | Token expirado o no válido | Regenera el access token del System User |
| Bajo match rate en Custom Audience | Calidad de datos deficiente | Hashea toda la información personal con SHA-256 e incluye varias match keys |
| Conversiones no atribuidas | Faltan parámetros fbc/fbp | Pasa el Facebook Click ID y el Browser ID desde las cookies |
RATE_LIMIT_REACHED | Demasiadas llamadas a la API | Implementa backoff exponencial; revisa el nivel de acceso de la API |
| Formularios de lead no se sincronizan | Falta el permiso leads_retrieval | Añade el permiso al System User |
| Eventos en modo test | test_event_code aún activo | Elimina el test event code en producción |
Buenas prácticas
- Usa tokens de System User - Los System Users proporcionan tokens estables y sin expiración para integraciones de servidor
- Hashea toda la información personal - Haz hash SHA-256 de toda la información personal antes de enviarla a Meta
- Envía por CAPI y por Pixel - Usa tanto la Conversions API como el Meta Pixel para tracking redundante con deduplicación
- Incluye event IDs - Establece
event_iden los eventos de CAPI y de Pixel para permitir la deduplicación - Pasa
fbcyfbp- Incluye el Facebook Click ID y el Browser ID para maximizar la atribución de conversiones - Verifica tu empresa - Completa la verificación de empresa para obtener acceso completo a la API y límites de velocidad más altos
- Usa
test_event_code- Prueba los eventos de la Conversions API en Events Manager antes de pasar a producción
Seguridad
- Tokens de System User - Tokens de autenticación no personales, limitados al negocio
- Hash SHA-256 - Toda la información personal se hashea antes de transmitirse a los servidores de Meta
- App Secret Proof - Capa adicional opcional de seguridad en la autenticación
- Limitación por negocio - Permisos limitados a cuentas publicitarias y páginas concretas
- Cumplimiento de Meta - Sujeto a los Términos de Plataforma y las políticas publicitarias de Meta
- Condiciones de procesamiento de datos - Se aplican las Condiciones de procesamiento de datos de Meta para datos de la UE