يمكنك استخدام إعلانات فيسبوك مع عملائك الحاليين والوصول إلى عملاء جدد. ويتناول كل دليل منتجات إعلانات Facebook التي يمكن أن تساعدك في تلبية أهدافك الإعلانية. ويوجد عدة أنواع من الوحدات الإعلانية التي توفر خيارات متنوعة للمظاهر والموضع والتصميم. وللحصول على إرشادات بشأن الوحدات الإعلانية كمحتوى التصميم، يمكنك الرجوع إلى دليل إعلانات Facebook.
يُعد تصميم الإعلان كائنًا يحتوي على كل البيانات الخاصة بالعرض البصري للإعلان نفسه. وفي واجهة API، يوجد العديد من أنواع الإعلانات المختلفة التي يمكنك إنشاؤها على Facebook وكلها مُدرجة هنا.
إذا كانت لديك حملة إعلانية تحتوي على هدف التفاعل مع منشور الصفحة، يمكنك الآن إنشاء إعلان يقوم بترويج منشور أنشأته الصفحة. ويعتبر ذلك إعلان منشور صفحة. وتتطلب إعلانات منشور الصفحة وجود حقل باسم object_story_id
والذي يمثل الأصل id
لمنشور الصفحة. لذا تعرف على المزيد حول تصميم الإعلان، المرجع.
يتكوّن تصميم الإعلان من ثلاثة أجزاء:
لإنشاء كائن تصميم الإعلان، قم بإجراء الاستدعاء التالي:
تمثل الاستجابة إلى استدعاء واجهة API المعرف id
الخاص بكائن التصميم. ويجب تخزين هذا المعرف نظرًا لأنك ستحتاج إليه في كائن الإعلان:
يتم فرض التقييدات على النص وحجم الصورة ونسبة العرض إلى الارتفاع للصورة في التصميم، بالإضافة إلى جوانب أخرى في التصميم. ويمكنك الرجوع إلى دليل الإعلانات.
في واجهة API الإعلانات، يجب طلب كل حقل تريد استرجاعه بوضوح تام باستثناء المعرف id
. ويحتوي كل مرجع خاص بالكائن على قسم لقراءة الكائن مرة أخرى وإدراج الحقول القابلة للقراءة. وبالنسبة للتصميم، يتم استخدام الحقول نفسها المحددة عند إنشاء الكائن والمعرف id
.
الموضع هو المكان الذي يظهر به إعلانك على فيسبوك مثل الموجز على أجهزة الكمبيوتر أو الموجز على الأجهزة المحمولة أو في العمود الأيسر. ويمكنك الرجوع إلى دليل منتج الإعلانات.
نوصيك بتشغيل الإعلانات عبر نطاق كامل من المواضع المتاحة. وتم تصميم مزاد إعلاني في Facebook لعرض مرات ظهور الإعلان خصيصًا للموضع الذي يعزز نتائج الحملة الإعلانية على الأرجح بأقل تكلفة ممكنة.
تتمثل أسهل طريقة للاستفادة من هذا التحسين في ترك هذا الحقل فارغًا. ويمكن أيضًا تحديد مواضع معينة في target_spec في المجموعة الإعلانية.
يحتوي هذا المثال على إعلان منشور صفحة. علمًا بأن المواضع المتوفرة هي الموجز على الهواتف المحمولة والموجز على أجهزة الكمبيوتر والعمود الأيسر في فيسبوك. وفي API، يمكنك الرجوع إلى خيارات المواضع. إذا اخترت desktopfeed
وrightcolumn
لتمثل النوع page_type
، فسيتم تشغيل الإعلان في مواضع الموجز على أجهزة الكمبيوتر والعمود الأيسر. يتوفر لأي إعلان يتم إنشاؤه ضمن هذه المجموعة الإعلانية موضع أجهزة الكمبيوتر فقط.
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 => 'Desktop Ad Set',
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::DAILY_BUDGET => 10000,
AdSetFields::TARGETING => (new Targeting())->setData(array(
TargetingFields::PUBLISHER_PLATFORMS => array(
'facebook',
'audience_network',
),
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('BR'),
),
)),
AdSetFields::OPTIMIZATION_GOAL =>
AdSetOptimizationGoalValues::POST_ENGAGEMENT,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::POST_ENGAGEMENT,
AdSetFields::BID_AMOUNT => 1500,
));
$adset->create(array(
AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));
from facebookads.adobjects.adset import AdSet
from facebookads.adobjects.targeting import Targeting
adset = AdSet(parent_id='act_<AD_ACCOUNT_ID>')
adset[AdSet.Field.name] = 'Desktop Ad Set'
adset[AdSet.Field.campaign_id] = <CAMPAIGN_ID>
adset[AdSet.Field.daily_budget] = 10000
adset[AdSet.Field.targeting] = {
Targeting.Field.publisher_platforms: ['facebook', 'audience_network'],
Targeting.Field.facebook_positions: ['feed'],
Targeting.Field.geo_locations: {
'countries': ['BR'],
},
}
adset[AdSet.Field.optimization_goal] = AdSet.OptimizationGoal.post_engagement
adset[AdSet.Field.billing_event] = AdSet.BillingEvent.post_engagement
adset[AdSet.Field.bid_amount] = 1500
adset.remote_create(params={
'status': AdSet.Status.paused,
})
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
.setName("Desktop Ad Set")
.setCampaignId(<CAMPAIGN_ID>)
.setDailyBudget(10000L)
.setTargeting(
new Targeting()
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("BR"))
)
.setFieldPublisherPlatforms(Arrays.asList("facebook", "audience_network"))
)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_POST_ENGAGEMENT)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_POST_ENGAGEMENT)
.setBidAmount(1500L)
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();
String ad_set_id = adSet.getId();
curl \
-F 'name=Desktop Ad Set' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'daily_budget=10000' \
-F 'targeting={
"geo_locations": {"countries":["BR"]},
"publisher_platforms": ["facebook","audience_network"]
}' \
-F 'optimization_goal=POST_ENGAGEMENT' \
-F 'billing_event=POST_ENGAGEMENT' \
-F 'bid_amount=1500' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets
يمكنك معاينة إعلان بإحدى طريقتين، إما باستخدام واجهة API معاينة الإعلان أو المكون الإضافي لمعاينة الإعلان.
تتوفر ثلاث طرق لإنشاء معاينة باستخدام واجهة API:
تبعًا للوثائق المرجعية لواجهة API المعاينة، فإن الحد الأدنى اللازم لاستدعاء واجهة API المطلوب هو:
تمثل مواصفات التصميم مصفوفة تضم كل الحقول والقيم المطلوبة لإنشاء تصميم الإعلان.
يظهر حاليًا استدعاء تصميم الإعلان بالشكل التالي:
احصل على المعرف object_story_id
واستخدمه في استدعاء واجهة API المعاينة:
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdPreviewFields;
use FacebookAds\Object\Fields\AdCreativeFields;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->getGeneratePreviews(array(), array(
AdPreviewFields::CREATIVE => array(
AdCreativeFields::OBJECT_STORY_ID => <POST_ID>,
),
AdPreviewFields::AD_FORMAT => '<FORMAT>',
));
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adcreative import AdCreative
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'creative': {
AdCreative.Field.object_story_id: '<POST_ID>',
},
'ad_format': '<FORMAT>',
}
account.get_generate_previews(params=params)
APINodeList<AdPreview> adPreviews = new AdAccount(act_<AD_ACCOUNT_ID>, context).getGeneratePreviews()
.setCreative(
new AdCreative()
.setFieldObjectStoryId(<OBJECT_STORY_ID>)
)
.setAdFormat(<FORMAT>)
.execute();
curl -G \
-d 'creative={"object_story_id":"<POST_ID>"}' \
-d 'ad_format=<FORMAT>' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/generatepreviews
تختلف القيم المتوفرة لـ ad_format
اختلافًا طفيفًا عن page_types
. ولكن في هذا السيناريو، يتم تحديد الموجز على أجهزة الكمبيوتر والعمود الأيسر في فيسبوك. ويتطلب ذلك منك إجراء اثنين من استدعاءات API لإنشاء المعاينات لكل موضع:
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdPreviewFields;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\Values\AdPreviewAdFormatValues;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->getGeneratePreviews(array(), array(
AdPreviewFields::CREATIVE => array(
AdCreativeFields::OBJECT_STORY_ID => <POST_ID>,
),
AdPreviewFields::AD_FORMAT => AdPreviewAdFormatValues::RIGHT_COLUMN_STANDARD,
));
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adpreview import AdPreview
from facebookads.adobjects.adcreative import AdCreative
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'creative': {
AdCreative.Field.object_story_id: '<POST_ID>',
},
'ad_format': AdPreview.AdFormat.right_column_standard,
}
account.get_generate_previews(params=params)
APINodeList<AdPreview> adPreviews = new AdAccount(act_<AD_ACCOUNT_ID>, context).getGeneratePreviews()
.setCreative(
new AdCreative()
.setFieldObjectStoryId(<OBJECT_STORY_ID>)
)
.setAdFormat(AdPreview.EnumAdFormat.VALUE_RIGHT_COLUMN_STANDARD)
.execute();
curl -G \
-d 'creative={"object_story_id":"<POST_ID>"}' \
-d 'ad_format=RIGHT_COLUMN_STANDARD' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/generatepreviews
تكون الاستجابة عبارة عن إطار iFrame صالح لمدة 24 ساعة.