تتيح لك إعلانات التكلفة لكل إجراء (CPA) تحديد أحداث التحويل والمحاسبة حسب عدد التحويلات. تعرف أيضًا التكلفة لكل إجراء لمشاهدات الفيديو باسم التكلفة لكل مشاهدة.
يتمثل أحد بدائل التكلفة لكل إجراء في التكلفة المحسنة لكل ألف ظهور، والتي تتم فيها المحاسبة تبعًا لعدد مرات الظهور المعروضة.
يتم تعيين عرض الأسعار لمجموعة إعلانية. يجب أن تلتزم هذه الحقول بالتقييدات التالية:
الاسم | الوصف |
---|---|
| يحدد الإجراء الذي تدفع مقابله. يتم التعيين على |
| يحدد الإجراء الذي تقوم بالتحسين لأجله. يتم التعيين على قيمة |
| القيمة التي تحددها للهدف، محددة بالسنت، بحد أدنى 1 سنت. على سبيل المثال، |
| بالنسبة إلى الإعلانات التي يتم تحسينها من أجل التفاعلات بما في ذلك |
بدءًا من الإصدار 9.0، سيتم إيقاف استخدام فوترة التكلفة لكل إجراء في إعلانات التطبيق، ولن تتمكّن من تعيين حدث الفوترة وهدف التحسين على APP_INSTALLS
. وبدلاً من ذلك، نوصي باستخدام أحداث فوترة impression
. لا يزال بإمكانك تحديد APP_INSTALLS
ضمن billing_event
أو optimization_goal
، ولكن ليس كلاهما معًا.
راجع مستند المجموعة الإعلانية الذي يتناول التحديثات المسموح بها للمجموعات الإعلانية.
تقوم الأمثلة أدناه بإنشاء مجموعة إعلانية بعرض أسعار التكلفة لكل إجراء. يُرجى العلم أنه بالنسبة إلى المجموعات الإعلانية بعرض أسعار التكلفة لكل إجراء، يجب تعيين promoted_object
.
curl -X POST \
-F 'name="A CPA Ad Set"' \
-F 'campaign_id="<AD_CAMPAIGN_ID>"' \
-F 'daily_budget=5000' \
-F 'start_time="2024-11-28T11:01:44-0800"' \
-F 'end_time="2024-12-05T11:01:44-0800"' \
-F 'billing_event="IMPRESSIONS"' \
-F 'optimization_goal="REACH"' \
-F 'bid_amount=1000' \
-F 'promoted_object={
"page_id": "<PAGE_ID>"
}' \
-F 'targeting={
"facebook_positions": [
"feed"
],
"geo_locations": {
"countries": [
"US"
]
}
}' \
-F 'user_os="iOS"' \
-F 'publisher_platforms="facebook"' \
-F 'device_platforms="mobile"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adsets
بعد ذلك، يمكنك إنشاء الإعلانات ووضعها في هذه المجموعة الإعلانية باتباع دفق الإنشاء المذكور هنا.
تغيير عرض الأسعار إلى مجموعة إعلانية بعرض أسعار التكلفة لكل إجراء:
curl -X POST \
-F 'billing_event="IMPRESSIONS"' \
-F 'optimization_goal="LINK_CLICKS"' \
-F 'bid_amount=200' \
-F 'targeting={
"geo_locations": {
"countries": [
"US"
]
},
"facebook_positions": [
"feed"
]
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_SET_ID>/
لإنشاء إعلان بعرض أسعار التكلفة لكل مشاهدة أو التكلفة لكل إجراء بالنسبة إلى مشاهدات الفيديو، يجب أولاً إنشاء حملة إعلانية بهدف objective=VIDEO_VIEWS
.
curl -X POST \
-F 'name="Video Views campaign"' \
-F 'objective="OUTCOME_ENGAGEMENT"' \
-F 'status="PAUSED"' \
-F 'special_ad_categories=[]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns
ثم تقوم بعد ذلك بتعيين التكلفة لكل إجراء من أجل bid_info
لمشاهدات الفيديو في المجموعة الإعلانية:
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Targeting;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'A CPV Ad Set',
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::DAILY_BUDGET => 500,
AdSetFields::START_TIME =>
(new \DateTime("+1 week"))->format(\DateTime::ISO8601),
AdSetFields::END_TIME =>
(new \DateTime("+2 week"))->format(\DateTime::ISO8601),
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::VIDEO_VIEWS,
AdSetFields::OPTIMIZATION_GOAL => AdSetOptimizationGoalValues::VIDEO_VIEWS,
AdSetFields::BID_AMOUNT => 100,
AdSetFields::TARGETING => (new Targeting())->setData(array(
TargetingFields::GEO_LOCATIONS => array(
'countries' => array(
'US',
),
),
TargetingFields::PUBLISHER_PLATFORMS => array('facebook'),
TargetingFields::DEVICE_PLATFORMS => array('mobile'),
)),
));
$adset->create(array(
AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));
import time
from facebookads.adobjects.adset import AdSet
adset = AdSet(parent_id='act_<AD_ACCOUNT_ID>')
adset.update({
AdSet.Field.name: 'A CPV Ad Set',
AdSet.Field.campaign_id: <CAMPAIGN_ID>,
AdSet.Field.daily_budget: 500,
AdSet.Field.start_time: int(time.time()),
AdSet.Field.end_time: int(time.time() + 100000),
AdSet.Field.optimization_goal: AdSet.OptimizationGoal.video_views,
AdSet.Field.billing_event: AdSet.BillingEvent.video_views,
AdSet.Field.bid_amount: 100,
AdSet.Field.targeting: {
'geo_locations': {
'countries': ['US'],
},
Targeting.Field.publisher_platforms: ['facebook'],
Targeting.Field.device_platforms: ['mobile'],
},
})
adset.remote_create(params={
'status': AdSet.Status.paused,
})
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
.setName("A CPV Ad Set")
.setCampaignId(<CAMPAIGN_ID>)
.setDailyBudget(500L)
.setStartTime(start_time)
.setEndTime(end_time)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_VIDEO_VIEWS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_VIDEO_VIEWS)
.setBidAmount(100L)
.setTargeting(
new Targeting()
.setFieldDevicePlatforms(Arrays.asList(Targeting.EnumDevicePlatforms.VALUE_MOBILE))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
)
.setFieldPublisherPlatforms(Arrays.asList("facebook"))
)
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();
String ad_set_id = adSet.getId();
curl \
-F 'name=A CPV Ad Set' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'daily_budget=500' \
-F 'start_time=2018-02-06T04:45:29+0000' \
-F 'end_time=2018-02-13T04:45:29+0000' \
-F 'billing_event=VIDEO_VIEWS' \
-F 'optimization_goal=VIDEO_VIEWS' \
-F 'bid_amount=100' \
-F 'targeting={
"device_platforms": ["mobile"],
"geo_locations": {"countries":["US"]},
"publisher_platforms": ["facebook"]
}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets