最適化インプレッション課金広告

最適化インプレッション課金(oCPM)を使用すると、マーケティングの目標を優先し、その目標に対して最も効果的な方法で自動的に広告を配信できます。目標は、特定の目標の達成基準となる絶対値で指定します。この値は入札価格ではありません。結果としての値を指定する必要があります。

oCPMに代わる方法として顧客獲得単価(CPA)を使用すると、指定したコンバージョンイベントの獲得数に応じて支払いをすることができます。CPMとoCPM広告の場合、サイト上のインプレッション回数単位で課金されるため、CPAとは異なります。

処理の概要

キャンペーン予算で設定した上限内で自動的に入札が行われます。目標達成に最も効果的なインプレッションを選んで入札が行われるため、CPCや従来のCPMのキャンペーンに比べ、キャンペーン全体のROIが向上します。

広告セットのoptimization_goalを定義してキャンペーンを最適化します。

モバイルアプリのインストールに対してoCPMを利用できるのは、アプリの過去28日間のインストールイベントが、Facebook SDKまたはモバイル測定パートナーを通じて報告された場合のみです。

oCPM広告を作成する

広告セットオブジェクトには入札に関する情報が含まれています。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

各フィールドには次の制限事項が適用されます。

名前 説明

billing_event

IMPRESSIONSに設定する必要があります。

optimization_goal

最適化の対象とするアクションに設定します。

bid_amount

最適化の目的に設定する値。セントで指定します。

oCPMでの入札をサポートする広告ユニットについては、検証に関するベストプラクティスをご覧ください。

予算と価格

oCPMキャンペーンには予算が必要です。この広告システムでは、インプレッションごとに自動的に入札されます。インプレッションが目標の達成につながる可能性が高い場合は入札価格が高くなり、可能性が低い場合は入札価格が低くなります。

目標達成に最も効果的なインプレッションを選んで入札されるため、従来のCPCやCPMのキャンペーンに比べ、キャンペーン全体のROIが向上します。各目標に関する統計データは広告マネージャとAPIで確認できるため、広告のパフォーマンスをチェックし、目標に基づいてキャンペーンの成果を測定できます。