Passer au contenu principal

Vue d’ensemble

L’API des campagnes sur les reseaux sociaux permet d’automatiser les campagnes marketing pour vos annonces de vehicules sur les principales plateformes sociales. Lancez des campagnes multi-plateformes, suivez les indicateurs de performance et gerez les depenses publicitaires directement depuis la plateforme Steer AI.

Plateformes prises en charge

Facebook

Publicites Facebook Marketplace et News Feed

Instagram

Publicites Instagram Feed et Stories

TikTok

Publicites TikTok For You (bientot disponible)

Prerequis

Avant d’utiliser l’API Campaigns, vous devez :
  1. Connecter vos comptes de reseaux sociaux via le service upload-post
  2. Disposer d’un compte Facebook Business Manager actif
  3. Configurer des moyens de paiement pour les comptes publicitaires

Endpoints

Recuperer les pages Facebook

GET
endpoint
/ads/facebook/pages
Recuperer les pages Facebook disponibles pour la publicite et liees a votre compte. Reponse :
{
  "success": true,
  "pages": [
    {
      "id": "123456789",
      "name": "Prime Auto Dealership",
      "picture": "https://...",
      "account_id": "act_9876543210"
    }
  ]
}
Champs de reponse :
id
string
ID de la page Facebook
name
string
Nom d’affichage de la page
picture
string
URL de la photo de profil de la page
account_id
string
ID du compte publicitaire Facebook associe
Cet endpoint est mis en cache 5 minutes pour ameliorer les performances.

Activer une campagne

POST
endpoint
/ads/campaigns/activate
Lancer une campagne marketing sur une ou plusieurs plateformes sociales. Corps de requete :
{
  "campaignId": "campaign_uuid",
  "platforms": ["facebook", "instagram"]
}
campaignId
string
requis
UUID de campagne depuis votre systeme de campagnes marketing
platforms
array
requis
Tableau des plateformes : facebook, instagram, tiktok. Au moins une plateforme est requise.
Reponse :
{
  "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": []
  }
}
Champs de reponse :
results
array
Tableau des resultats par plateforme
success
boolean
Indique si la campagne a ete lancee sur cette plateforme
campaign_id
string
ID de campagne specifique a la plateforme
ad_set_id
string
ID de l’ensemble de publicites specifique a la plateforme
ad_id
string
ID de la publicite specifique a la plateforme
platform
string
Nom de la plateforme (facebook, instagram, tiktok)
error
string
Message d’erreur si la campagne a echoue

Recuperer les metriques d’une campagne

GET
endpoint
/ads/campaigns//metrics
Recuperer les metriques de performance d’une campagne active. Parametres de chemin :
campaignId
string
requis
UUID de campagne
Parametres de requete :
platformType
enum
requis
Plateforme cible : facebook, instagram, tiktok
Reponse :
{
  "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
  }
}
Explication des metriques :
impressions
number
Nombre d’affichages de la publicite
clicks
number
Nombre de clics sur la publicite
conversions
number
Nombre de conversions reussies (leads, demandes, etc.)
spent
number
Montant total depense (dans la devise du compte)
ctr
number
Taux de clics en pourcentage
cpc
number
Cout par clic
cpm
number
Cout pour mille impressions
reach
number
Utilisateurs uniques ayant vu la publicite
frequency
number
Nombre moyen d’affichages par utilisateur
conversion_rate
number
Pourcentage de clics convertis
Les metriques sont mises en cache 1 minute. Les donnees peuvent mettre 24 a 48 heures a se stabiliser cote plateforme.

Mettre en pause une campagne

POST
endpoint
/ads/campaigns//pause
Mettre en pause une campagne active sur une plateforme specifique. Parametres de chemin :
campaignId
string
requis
UUID de campagne
Corps de requete :
{
  "platformType": "facebook"
}
platformType
enum
requis
Plateforme a mettre en pause : facebook, instagram, tiktok
Reponse :
{
  "success": true,
  "campaign_id": "fb_campaign_123",
  "platform": "facebook",
  "message": "Campaign paused successfully"
}
Mettre en pause arrete immediatement la diffusion, mais ne supprime pas la campagne. Vous pouvez la reactiver plus tard.

Workflow de campagne

Bonnes pratiques de campagne

Ciblage d’audience

Configurez vos campagnes pour une portee optimale :
  • Localisation : Ciblez des villes ou regions ou vous operez
  • Tranche d’age : Typiquement 25-54 pour les achats auto
  • Interets : Passionnes d’auto, acheteurs de voitures neuves, vehicules de luxe
  • Comportements : Intention d’achat, demenagement recent, nouvel emploi

Recommandations de budget

Type de campagneBudget quotidienDureeResultats attendus
Notoriete locale$20-507-14 jours5,000-15,000 de portee
Generation de leads$50-10014-30 jours50-150 leads
Mise en avant d’inventaire$100-20030-60 jours100-300 demandes
Promotion speciale$200-5007-14 jours200-500 leads

Directives creatives

Images :
  • Photos de vehicules de haute qualite (1080x1080 recommande)
  • Plusieurs angles montrant l’exterieur et l’interieur
  • Eclairage professionnel et fond propre
  • Inclure le prix ou des offres speciales
Copy :
  • Message clair et concis (125 caracteres ou moins)
  • Inclure marque, modele, annee
  • Mettre en avant des caracteristiques ou avantages
  • Appel a l’action fort (“Planifier un essai”, “Voir les details”)
Video (si applicable) :
  • 15-30 secondes de duree optimale
  • Montrer le vehicule en mouvement et les details
  • Ajouter des sous-titres (80 % regardent sans son)
  • Inclure la marque au debut et a la fin

Cas d’usage

Exemple 1 : Lancer une campagne multi-plateformes

# 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"]
  }'

Exemple 2 : Suivre la performance d’une campagne

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

Exemple 3 : Mettre en pause une campagne sous-performante

# 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"
  }'

Codes d’erreur

CodeStatutDescription
USER_NOT_REGISTERED400Utilisateur non enregistre sur le service upload-post
ACCOUNT_NOT_CONNECTED400Compte reseau social non connecte
CAMPAIGN_NOT_FOUND404L’ID de campagne n’existe pas
INVALID_PLATFORM400Plateforme non prise en charge
INSUFFICIENT_AD_CREDIT402Credit insuffisant sur le compte publicitaire
PAGE_NOT_FOUND404Page Facebook introuvable ou inaccessible
PERMISSION_DENIED403Autorisations requises manquantes
CAMPAIGN_ALREADY_ACTIVE400La campagne est deja active

Notes specifiques aux plateformes

Facebook/Instagram

  • Necessite un compte Facebook Business Manager
  • Le compte publicitaire doit avoir un moyen de paiement configure
  • La page doit avoir au moins 30 abonnes pour les posts sponsorises
  • Delais de validation : 24 heures en general, jusqu’a 48 heures pour les publicites complexes
  • Budget quotidien minimum : $5 USD equivalent

TikTok

  • Actuellement en developpement
  • Necessitera un compte TikTok Business
  • Budget quotidien minimum : $20 USD equivalent
  • Delais de validation : jusqu’a 24 heures

Exemple d’integration

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 };
  }
}

Ressources associees