Saltar al contenido principal

Resumen

La API de campanas en redes sociales permite automatizar campañas para tus listados de vehiculos en plataformas sociales. Lanza campañas multi-plataforma, monitorea rendimiento y gestiona gasto publicitario desde Steer AI.

Plataformas soportadas

Facebook

Facebook Marketplace y anuncios en News Feed

Instagram

Anuncios en Feed y Stories

TikTok

Anuncios en For You (Proximamente)

Prerrequisitos

Antes de usar la API, debes:
  1. Conectar tus cuentas sociales via el servicio upload-post
  2. Tener una cuenta activa de Facebook Business Manager
  3. Configurar metodos de pago en cuentas publicitarias

Endpoints

Obtener paginas de Facebook

GET
endpoint
/ads/facebook/pages
Obtiene paginas disponibles para publicidad vinculadas a tu cuenta. Response:
{
  "success": true,
  "pages": [
    {
      "id": "123456789",
      "name": "Prime Auto Dealership",
      "picture": "https://...",
      "account_id": "act_9876543210"
    }
  ]
}
Campos de respuesta:
id
string
ID de pagina de Facebook
name
string
Nombre visible de la pagina
picture
string
URL de la foto de perfil
account_id
string
ID de cuenta publicitaria asociada
Este endpoint se cachea por 5 minutos para mejorar rendimiento.

Activar campana

POST
endpoint
/ads/campaigns/activate
Lanza una campana en una o mas plataformas sociales. Request Body:
{
  "campaignId": "campaign_uuid",
  "platforms": ["facebook", "instagram"]
}
campaignId
string
requerido
Campaign UUID del sistema de marketing
platforms
array
requerido
Plataformas: facebook, instagram, tiktok. Al menos una plataforma.
Response:
{
  "results": [
    {
      "success": true,
      "campaign_id": "fb_campaign_123",
      "ad_set_id": "fb_adset_456",
      "ad_id": "fb_ad_789",
      "platform": "facebook",
      "message": "Campaign activated successfully"
    },
    {
      "success": true,
      "campaign_id": "ig_campaign_123",
      "ad_set_id": "ig_adset_456",
      "ad_id": "ig_ad_789",
      "platform": "instagram",
      "message": "Campaign activated successfully"
    }
  ],
  "summary": {
    "total": 2,
    "successes": 2,
    "errors": 0,
    "successful_platforms": ["facebook", "instagram"],
    "error_messages": []
  }
}
Campos de respuesta:
results
array
Arreglo de resultados por plataforma
success
boolean
Si la campana se lanzo con exito
campaign_id
string
ID de campana en la plataforma
ad_set_id
string
ID de ad set en la plataforma
ad_id
string
ID de anuncio en la plataforma
platform
string
Plataforma (facebook, instagram, tiktok)
error
string
Mensaje de error si fallo

Obtener metricas de campana

GET
endpoint
/ads/campaigns//metrics
Obtiene metricas de rendimiento para una campana activa. Path Parameters:
campaignId
string
requerido
Campaign UUID
Query Parameters:
platformType
enum
requerido
Plataforma: facebook, instagram, tiktok
Response:
{
  "success": true,
  "data": {
    "impressions": 125430,
    "clicks": 3421,
    "conversions": 87,
    "spent": 1250.50,
    "ctr": 2.73,
    "cpc": 0.37,
    "cpm": 9.97,
    "reach": 98234,
    "frequency": 1.28,
    "conversion_rate": 2.54
  }
}
Metricas explicadas:
impressions
number
Numero de veces que se mostro el anuncio
clicks
number
Numero de clics en el anuncio
conversions
number
Numero de conversiones exitosas (leads, consultas, etc.)
spent
number
Monto total gastado (en moneda de la cuenta)
ctr
number
Porcentaje de click-through rate
cpc
number
Costo por clic
cpm
number
Costo por mil impresiones
reach
number
Usuarios unicos que vieron el anuncio
frequency
number
Promedio de veces que cada usuario vio el anuncio
conversion_rate
number
Porcentaje de clics que convierten
Las metricas se cachean por 1 minuto. Los datos pueden tardar 24-48 horas en estabilizarse.

Pausar campana

POST
endpoint
/ads/campaigns//pause
Pausa una campana activa en una plataforma. Path Parameters:
campaignId
string
requerido
Campaign UUID
Request Body:
{
  "platformType": "facebook"
}
platformType
enum
requerido
Plataforma: facebook, instagram, tiktok
Response:
{
  "success": true,
  "campaign_id": "fb_campaign_123",
  "platform": "facebook",
  "message": "Campaign paused successfully"
}
Pausar detiene la entrega de anuncios inmediatamente pero no elimina la campana. Puedes reactivarla despues.

Flujo de campana

Mejores practicas de campana

Segmentacion de audiencia

Configura campanas para alcance optimo:
  • Ubicacion: Segmenta ciudades o regiones donde operas
  • Rango de edad: Normalmente 25-54 para compras de autos
  • Intereses: Enthusiasts, compradores de autos nuevos, lujo
  • Comportamientos: In-market, recien mudados, nuevo empleo

Recomendaciones de presupuesto

Tipo de campanaPresupuesto diarioDuracionResultados esperados
Awareness local$20-507-14 dias5,000-15,000 alcance
Generacion de leads$50-10014-30 dias50-150 leads
Showcase de inventario$100-20030-60 dias100-300 consultas
Promocion especial$200-5007-14 dias200-500 leads

Guías creativas

Imagenes:
  • Fotos de alta calidad (1080x1080 recomendado)
  • Multiples angulos exterior e interior
  • Iluminacion profesional y fondos limpios
  • Incluir precio o promociones
Copy:
  • Mensajes claros y concisos (125 caracteres o menos)
  • Incluir marca, modelo, ano
  • Resaltar features clave o beneficios
  • Call-to-action fuerte (“Schedule Test Drive”, “View Details”)
Video (si aplica):
  • 15-30 segundos ideal
  • Muestra vehiculo en movimiento y detalles
  • Agrega subtitulos (80% sin sonido)
  • Incluye branding al inicio y al final

Casos de uso

Ejemplo 1: Lanzar campana multi-plataforma

# Activate campaign on Facebook and Instagram
curl -X POST "https://api.steerai.autos/v1/ads/campaigns/activate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "campaignId": "campaign_uuid",
    "platforms": ["facebook", "instagram"]
  }'

Ejemplo 2: Monitorear rendimiento

# Get Facebook campaign metrics
curl -X GET "https://api.steerai.autos/v1/ads/campaigns/{campaignId}/metrics?platformType=facebook" \
  -H "Authorization: Bearer YOUR_API_KEY"

Ejemplo 3: Pausar campana con bajo rendimiento

# Pause campaign if metrics don't meet targets
curl -X POST "https://api.steerai.autos/v1/ads/campaigns/{campaignId}/pause" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platformType": "facebook"
  }'

Codigos de error

CodeStatusDescription
USER_NOT_REGISTERED400Usuario no registrado en upload-post
ACCOUNT_NOT_CONNECTED400Cuenta social no conectada
CAMPAIGN_NOT_FOUND404Campaign ID no existe
INVALID_PLATFORM400Plataforma no soportada
INSUFFICIENT_AD_CREDIT402No hay credito suficiente
PAGE_NOT_FOUND404Pagina de Facebook no accesible
PERMISSION_DENIED403Faltan permisos requeridos
CAMPAIGN_ALREADY_ACTIVE400Campana ya activa

Notas por plataforma

Facebook/Instagram

  • Requiere cuenta de Facebook Business Manager
  • Cuenta de anuncios con metodo de pago configurado
  • Pagina debe tener al menos 30 seguidores para boosted posts
  • Tiempo de revision: 24h tipico, hasta 48h para anuncios complejos
  • Presupuesto diario minimo: $5 USD equivalente

TikTok

  • Actualmente en desarrollo
  • Requiere cuenta TikTok Business
  • Presupuesto diario minimo: $20 USD equivalente
  • Tiempo de revision: hasta 24h

Ejemplo de integracion

class CampaignManager {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseURL = 'https://api.steerai.autos/v1';
  }

  async activateCampaign(campaignId, platforms) {
    const response = await fetch(`${this.baseURL}/ads/campaigns/activate`, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${this.apiKey}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ campaignId, platforms })
    });
    return response.json();
  }

  async getMetrics(campaignId, platform) {
    const response = await fetch(
      `${this.baseURL}/ads/campaigns/${campaignId}/metrics?platformType=${platform}`,
      {
        headers: { 'Authorization': `Bearer ${this.apiKey}` }
      }
    );
    return response.json();
  }

  async pauseCampaign(campaignId, platform) {
    const response = await fetch(
      `${this.baseURL}/ads/campaigns/${campaignId}/pause`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${this.apiKey}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({ platformType: platform })
      }
    );
    return response.json();
  }

  // Monitor campaign and auto-pause if CPC exceeds threshold
  async monitorCampaign(campaignId, platform, maxCPC) {
    const metrics = await this.getMetrics(campaignId, platform);

    if (metrics.data.cpc > maxCPC) {
      console.log(`CPC ${metrics.data.cpc} exceeds threshold ${maxCPC}. Pausing campaign.`);
      await this.pauseCampaign(campaignId, platform);
      return { action: 'paused', reason: 'CPC_THRESHOLD_EXCEEDED' };
    }

    return { action: 'continue', metrics: metrics.data };
  }
}

Recursos relacionados