oCPM(Optimized Cost Per Mille)을 사용하면 마케팅 목표의 우선순위를 지정한 다음 이러한 목표에 맞추어 가능한 한 가장 효과적인 방법으로 광고를 자동으로 게재할 수 있습니다. 특정 목표의 달성이 얼마나 가치가 있는지 등 절대값으로 목표를 지정하세요. 이러한 값은 입찰가가 아니라, 결과에 대해 설정하는 값이어야 합니다.
oCPM의 대안인 행동당 비용(CPA)을 사용하면 전환 이벤트를 지정하고 전환 수를 기준으로 비용을 지불할 수 있습니다. 반면 CPM 및 oCPM 광고는 사이트에서 발생한 노출을 기준으로 비용을 청구하므로 CPA와 다릅니다.
지정된 캠페인 예산 한도 내에서 Facebook이 대신 자동으로 입찰합니다. 동적 입찰가를 사용하면 목표를 위해 가장 가치가 높은 노출을 확보할 수 있으며, CPC 또는 일반 CPM 캠페인의 ROI보다 높은 총 캠페인 ROI를 기대할 수 있습니다.
광고 세트의 optimization_goal
을 정의하여 캠페인을 최적화하세요.
앱에서 최근 28일 이내에 Facebook SDK 또는 MMP(모바일 측정 파트너)를 통해 설치 이벤트를 보고한 경우에만 모바일 앱 설치용 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
oCPM 광고를 만드는 경우 다음 필드는 아래의 제한 사항을 따라야 합니다.
이름 | 설명 |
---|---|
|
|
| 최적화하려는 행동으로 설정합니다. |
| 최적화 목표에 설정하는 값(센트 단위)입니다. |
oCPM 입찰을 지원하는 광고 유닛은 검증 모범 사례를 참조하세요.
최적화된 CPM 캠페인에는 예산을 설정해야 합니다. 광고 시스템에서 각 노출에 대해 자동으로 입찰합니다. 즉, 목표에 적합할 가능성이 높은 노출에는 높은 값으로 입찰하고 가능성이 낮은 노출에는 낮은 값으로 입찰합니다.
이러한 동적 입찰가를 사용하면 목표를 위해 가장 가치가 높은 노출을 확보할 수 있으며, 일반 CPC 또는 CPM 캠페인의 ROI보다 높은 총 캠페인 ROI를 기대할 수 있습니다. 각 목표에 대한 통계가 광고 관리자 및 API에 제공되므로 목표를 기반으로 광고의 성과를 확인하고 캠페인의 성공 여부를 측정할 수 있습니다.