Coût optimisé pour mille impressions de publicités

Le coût optimisé pour mille impressions (oCPM) vous permet de hiérarchiser vos objectifs marketing, puis de diffuser automatiquement des publicités de façon à les atteindre le plus efficacement possible. Spécifiez vos objectifs en valeurs absolues, pour indiquer la valeur que vous accordez à la réalisation d’un objectif particulier. Ces valeurs ne sont pas des enchères, mais renvoient à la valeur que vous donnez à un résultat.

Le coût par action (CPA) est une alternative à l’oCPM qui permet de spécifier des évènements de conversion et d’être facturé·e en fonction du nombre de conversions. Les publicités avec CPM et avec oCPM sont, quant à elles, facturées selon le nombre d’impressions générées sur le site.

Fonctionnement

Nous enchérissons automatiquement en respectant le budget défini pour la campagne. Les enchères dynamiques vous permettent de capturer les impressions les plus intéressantes par rapport à vos objectifs. De plus, vous devriez obtenir un ROI total supérieur comparé à une campagne avec CPC ou CPM traditionnelle.

Optimisez vos campagnes en définissant l’objectif d’optimisation (optimization_goal) de l’ensemble de publicités.

L’oCPM pour les installations d’applications mobiles est disponible uniquement si l’application a signalé un évènement d’installation au cours des 28 derniers jours via le SDK Facebook ou un partenaire de mesure mobile.

Créer une publicité avec oCPM

L’objet ensemble de publicités contient des informations sur les enchères. Pour créer une publicité avec oCPM :

use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;

$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
  AdSetFields::NAME => 'My Ad Set for oCPM',
  AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
  AdSetFields::OPTIMIZATION_GOAL => AdSetOptimizationGoalValues::LINK_CLICKS,
  AdSetFields::BID_AMOUNT => 150,
  AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
  AdSetFields::DAILY_BUDGET => 1000,
  AdSetFields::TARGETING => array(
    'geo_locations' => array(
      'countries' => array(
        'US'
      ),
    ),
  ),
));

$adset->create(array(
  AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));
from facebookads.adobjects.adset import AdSet
from facebookads.adobjects.targeting import Targeting

# Create an Ad Set with bid_type set to oCPM
adset = AdSet(parent_id='act_<AD_ACCOUNT_ID>')
adset.update({
    AdSet.Field.name: 'My Ad Set for oCPM',
    AdSet.Field.billing_event: AdSet.BillingEvent.impressions,
    AdSet.Field.optimization_goal: AdSet.OptimizationGoal.link_clicks,
    AdSet.Field.bid_amount: 150,
    AdSet.Field.campaign_id: '<CAMPAIGN_ID>',
    AdSet.Field.daily_budget: 1000,
    AdSet.Field.targeting: {
        Targeting.Field.geo_locations: {
            'countries': ['US'],
        },
    },
})

adset.remote_create(params={
    'status': AdSet.Status.paused,
})
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
  .setName("My Ad Set for oCPM")
  .setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
  .setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_LINK_CLICKS)
  .setBidAmount(150L)
  .setCampaignId(<CAMPAIGN_ID>)
  .setDailyBudget(1000L)
  .setTargeting(
    new Targeting()
      .setFieldGeoLocations(
        new TargetingGeoLocation()
          .setFieldCountries(Arrays.asList("US"))
      )
  )
  .setStatus(AdSet.EnumStatus.VALUE_PAUSED)
  .execute();
String ad_set_id = adSet.getId();
curl \
  -F 'name=My Ad Set for oCPM' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'bid_amount=150' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'daily_budget=1000' \
  -F 'targeting={"geo_locations":{"countries":["US"]}}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets

Dans le cadre de cette procédure, les champs doivent suivre les restrictions ci-dessous :

Nom Description

billing_event

Définissez ce champ sur IMPRESSIONS.

optimization_goal

Définissez ce champ sur l’action à optimiser.

bid_amount

Indiquez la valeur que vous accordez à l’objectif d’optimisation, en centimes.

Pour savoir quelles unités publicitaires sont compatibles avec les enchères avec oCPM, consultez la page Recommandations en matière de validation.

Budget et tarifs

Il est nécessaire de définir un budget pour les campagnes avec CPM optimisé. Le système publicitaire enchérit automatiquement sur chaque impression. L’enchère est plus ou moins élevée selon que l’impression permet ou non de se rapprocher de vos objectifs.

Gardez à l’esprit que ce mécanisme vous permet de capturer les impressions les plus intéressantes par rapport à vos objectifs, et que vous obtiendrez sans doute un ROI total supérieur comparé à une campagne avec CPC ou CPM traditionnelle. Vous pouvez consulter les statistiques pour chaque objectif dans le Gestionnaire de publicités et dans l’API afin de vérifier les performances de votre publicité et de la campagne en fonction de vos objectifs.