Anúncios de custo por mil otimizado

Com o custo por mil otimizado (oCPM, pelas iniciais em inglês), você pode priorizar suas metas de marketing e veicular automaticamente os anúncios em direção a essas metas da maneira mais eficaz possível. Especifique metas em valores absolutos, como, por exemplo, quanto vale para você o cumprimento de uma meta específica. Esses valores não são lances. Eles devem representar o valor que você dá a um resultado.

Uma alternativa ao oCPM é o custo por ação (CPA, pelas iniciais em inglês), que permite que você especifique eventos de conversão e seja cobrado pela quantidade de conversões. Os anúncios de CPM e oCPM são diferentes, já que cobram por impressões exibidas no site.

Como funciona

Fazemos automaticamente um lance em seu nome, de acordo com o orçamento de campanha definido. Os lances dinâmicos permitem que você capture as impressões mais importantes para suas metas, e é provável que o ROI total de uma campanha ultrapasse o ROI de uma campanha de CPC ou o de uma campanha de CPM tradicional.

Otimize as campanhas definindo a optimization_goal do conjunto de anúncios.

O oCPM para instalações do app para celular só é disponibilizado caso o app tenha relatado um evento de instalação nos últimos 28 dias pelo SDK do Facebook ou por um Parceiro de Métricas para Aplicativos.

Criar um anúncio de oCPM

O objeto do conjunto de anúncios contém informações de lance. Para criar um anúncio de 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

Estes campos devem cumprir com as seguintes restrições:

Nome Descrição

billing_event

Você deve definir como IMPRESSIONS.

optimization_goal

Defina a ação para a qual você deseja otimizar.

bid_amount

Valor que você dá à meta de otimização, especificado em centavos.

Consulte as Validation Best practices para ver as unidades de anúncio compatíveis com lances de oCPM.

Orçamento e preços

Uma campanha de CPM otimizado deve conter um orçamento. O sistema de anúncios faz lances em cada impressão em seu nome, dando lances altos quando a impressão pode funcionar para suas metas, e dando lances baixos caso seja improvável que ela funcione para as metas.

Lembre-se de que essa dinâmica permite que você capture as impressões mais importantes para suas metas, e é provável que o ROI total de uma campanha ultrapasse o ROI de uma campanha de CPC ou o de uma campanha de CPM tradicional. Observe que as estatísticas de cada meta são fornecidas no Gerenciador de Anúncios e na API; assim, você pode verificar o desempenho do anúncio e avaliar o sucesso de uma campanha, com base nas suas metas.