يمكنك بسهولة إنشاء إعلانات الفيديو والإعلانات الدوّارة وقياسها وتحسينها على Facebook باستخدام واجهة API. ويمكنك الرجوع إلى Facebook للأعمال، الإعلانات الدوّارة. ولمعرفة تنسيقات الفيديو المدعومة للإعلانات، يمكنك الرجوع إلى مركز مساعدة المُعلنين، مقاطع الفيديو.
لإنشاء إعلان فيديو في هدف VIDEO_VIEWS
وتحسين عرض الأسعار من أجل الوصول، اتبع هذه الخطوات:
أنشئ إعلان فيديو باستخدام معرف فيديو حالٍ وفيديو تم تحميله على فيسبوك.
ستحتاج إلى ما يلي:
pages_read_engagement
وads_management
act_{ad-account-id}/advideos
use FacebookAds\Object\AdCreative;
use FacebookAds\Object\AdCreativeVideoData;
use FacebookAds\Object\Fields\AdCreativeVideoDataFields;
use FacebookAds\Object\AdCreativeObjectStorySpec;
use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields;
use FacebookAds\Object\Fields\AdCreativeFields;
$video_data = new AdCreativeVideoData();
$video_data->setData(array(
AdCreativeVideoDataFields::IMAGE_URL => '<THUMBNAIL_URL>',
AdCreativeVideoDataFields::VIDEO_ID => <VIDEO_ID>,
));
$object_story_spec = new AdCreativeObjectStorySpec();
$object_story_spec->setData(array(
AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>,
AdCreativeObjectStorySpecFields::VIDEO_DATA => $video_data,
));
$creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>');
$creative->setData(array(
AdCreativeFields::NAME => 'Sample Creative',
AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
));
$creative->create();
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativeobjectstoryspec \
import AdCreativeObjectStorySpec
from facebookads.adobjects.adcreativevideodata \
import AdCreativeVideoData
video_data = AdCreativeVideoData()
video_data[AdCreativeVideoData.Field.description] = 'My Description'
video_data[AdCreativeVideoData.Field.video_id] = <VIDEO_ID>
video_data[AdCreativeVideoData.Field.image_url] = '<IMAGE_URL>'
object_story_spec = AdCreativeObjectStorySpec()
object_story_spec[AdCreativeObjectStorySpec.Field.page_id] = <PAGE_ID>
object_story_spec[AdCreativeObjectStorySpec.Field.video_data] = video_data
creative = AdCreative(parent_id='act_<AD_ACCOUNT_ID>')
creative[AdCreative.Field.name] = 'Video Ad Creative'
creative[AdCreative.Field.object_story_spec] = object_story_spec
creative.remote_create()
AdCreative adCreative = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdCreative()
.setName("Sample Creative")
.setObjectStorySpec(
new AdCreativeObjectStorySpec()
.setFieldPageId(<PAGE_ID>)
.setFieldVideoData(
new AdCreativeVideoData()
.setFieldImageUrl(<THUMBNAIL_URL>)
.setFieldVideoId(<VIDEO_ID>)
)
)
.execute();
String ad_creative_id = adCreative.getId();
curl \
-F 'name=Sample Creative' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"video_data": {"image_url":"<THUMBNAIL_URL>","video_id":"<VIDEO_ID>"}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives
لتوسيع نطاق الحملات الإعلانية للعلامات التجارية أو بدء تشغيلها على الهواتف محدودة المزايا في الأسواق الناشئة أو لإنشاء فيديو بسيط، يمكنك تجربة عروض شرائح الصور. وقم بتحميل الصور إلى أحد أصول الفيديو. على سبيل المثال:
use FacebookAds\Object\AdVideo;
use FacebookAds\Object\Fields\AdVideoFields;
$video = new AdVideo(null, 'act_<AD_ACCOUNT_ID>');
$video->{AdVideoFields::SLIDESHOW_SPEC} = array (
'images_urls' => array(
'<IMAGE_URL_1>',
'<IMAGE_URL_2>',
'<IMAGE_URL_3>',
),
'duration_ms' => 2000,
'transition_ms' => 200,
);
$video->create();
from facebookads.adobjects.advideo import AdVideo
from facebookads.specs import SlideshowSpec
video = AdVideo(parent_id='act_<AD_ACCOUNT_ID>')
slideshow = SlideshowSpec()
slideshow.update({
SlideshowSpec.Field.images_urls: <IMAGE_URLS>,
SlideshowSpec.Field.duration_ms: 2000,
SlideshowSpec.Field.transition_ms: 200,
})
video[AdVideo.Field.slideshow_spec] = slideshow
video.remote_create()
new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdVideo()
.setSlideshowSpec("{\"images_urls\":[\"" + <IMAGE_URL_1> + "\",\"" + <IMAGE_URL_2> + "\",\"" + <IMAGE_URL_3> + "\"],\"duration_ms\":\"2000\",\"transition_ms\":\"200\"}")
.execute();
curl \
-F 'slideshow_spec={
"images_urls": [
"<IMAGE_URL_1>",
"<IMAGE_URL_2>",
"<IMAGE_URL_3>"
],
"duration_ms": 2000,
"transition_ms": 200
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph-video.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/advideos
يمكنك الرجوع إلى أفضل ممارسات تصميم إعلان الفيديو والمرجع: مقاطع الفيديو الإعلانية.
قم بتعيين الهدف إلى VIDEO_VIEWS
:
يمكنك الرجوع إلى المرجع: الحملة الإعلانية وAdObjectives بلغة PHP وAdObjectives بلغة Python
إذا كان هدفك هو تحقيق أقل تكلفة لكل مشاهدة، فيجب عليك إقران هدف الحملة الإعلانية لمشاهدة الفيديو مع optimization_goal=THRUPLAY
لمجموعة إعلانية. ويمكنك تعيين bidding_event
إلى IMPRESSIONS
أو THRUPLAY
للدفع لكل مرة ظهور أو لكل مشاهدة فيديو. كما يمكنك الرجوع إلى عرض أسعار التكلفة لكل مشاهدة.
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=THRUPLAY' \ -F 'optimization_goal=THRUPLAY' \ -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/<VERSION>/<AD_ACCOUNT_ID>/adsets
تقل أسعار التكلفة لكل مشاهدة للمجموعات الإعلانية التي تتضمن optimization_goal=THRUPLAY
مقارنة بأسعار التكلفة لكل مشاهدة من نوع شراء الوصول وتكرار الظهور الذي تم تحسينه لمشاهدات الفيديو. ويمكنك الرجوع إلى المرجع: المجموعة الإعلانية.
استخدم مجموعة إعلانية وتصميم إعلان موجود:
عندما يكون هدف الحملة الإعلانية هو VIDEO_VIEWS
، يحصل الإعلان افتراضيًا على مواصفات التتبع المناسبة والتي تحدد الإجراءات التي يتم تتبعها للإعلان. فعلى سبيل المثال، مشاهدات الفيديو:
{'action.type':'video_view','post':'POST_ID','post.wall':'PAGE_ID'}
يمكنك الرجوع إلى مدير الإعلانات: حملاتي الإعلانية والمرجع: الإعلان.
لإنشاء إعلان فيديو بهدف الوعي بالعلامة التجارية، يمكنك الرجوع إلى مدونة الوعي بالعلامة التجارية.
لتوسيع نطاق وصول الفيديو إلى مزيد من الأشخاص، يمكنك استخدام هدف الحملة الإعلانية لمشاهدات الفيديو مع الوصول وتكرار الظهور. ويجب إنشاء توقع وحفظه وتعيينه إلى مجموعتك الإعلانية.
يمكنك متابعة إنشاء مشاهدات الفيديو، ولكن قم بتطبيق الوصول وتكرار الظهور على مجموعتك الإعلانية. وحدد هذه المعلمات الإضافية:
$adset->{AdSetFields::RF_PREDICTION_ID} = <RESERVATION_ID>;
لتشجيع الأشخاص على الانتقال من الوعي إلى اتخاذ الإجراء، يمكنك الرجوع إلى تصميم الفيديو بتنسيق الإعلان الدوّار.
توفر ميزة إعادة تسويق إعلانات الفيديو الدعم للمُعلنين من أجل استهداف جماهير مخصصة معينة من خلال مقاطع الفيديو المجانية أو المدفوعة على Facebook وInstagram. ويمكنك استخدام هذه الميزة لنقل الأشخاص من مرحلة الوعي إلى أهداف أعمق في المسار، مثل الانجذاب والاهتمام. ويمكنك الرجوع إلى الأبحاث: مجموعات التصميمات التي تعمل.
يجب الحصول على إذن المُعلن للصفحة التي تتضمن الفيديو من أجل إنشاء جمهور لهذا الفيديو.
بالنسبة للجمهور، قم بتعيين subtype=ENGAGEMENT
. وبعد ذلك، أدخل قواعد للجمهور الذي تريد إنشائه. ويتوفر لدى كل قاعدة المعرف object_id
، مثل معرف الفيديو، وكذلك الاسم event_name
. كما يمثل الاسم event_name
واحدًا مما يلي:
video_watched
: يمثل عدد مرات مشاهدة الفيديو لمدة 3 ثوانٍ على الأقل إجمالًا، أو مشاهدة إجمالي مدة الفيديو تقريبًا، أيهما يحدث أولًا.video_completed
: يمثل عدد مرات مشاهدة الفيديو بنسبة 95٪ من مدته، بما في ذلك المشاهدات التي تم تخطيها إلى هذه النقطة.video_view_10s
: يمثل عدد مرات مشاهدة الفيديو لمدة 10 ثوانٍ على الأقل إجمالًا، أو مشاهدة إجمالي مدة الفيديو تقريبًا، أيهما يحدث أولًا. video_view_15s
: يمثل عدد مرات مشاهدة الفيديو لمدة 15 ثانية على الأقل إجمالًا، أو مشاهدة إجمالي مدة الفيديو تقريبًا، أيهما يحدث أولًا.video_view_25_percent
: يمثل عدد مرات مشاهدة الفيديو بنسبة 25٪ من مدته، بما في ذلك المشاهدات التي تم تخطيها إلى هذه النقطة.video_view_50_percent
: يمثل عدد مرات مشاهدة الفيديو بنسبة 50٪ من مدته، بما في ذلك المشاهدات التي تم تخطيها إلى هذه النقطة.video_view_75_percent
: يمثل عدد مرات مشاهدة الفيديو بنسبة 75٪ من مدته، بما في ذلك المشاهدات التي تم تخطيها إلى هذه النقطة.يمكنك تجميع مقاطع الفيديو لإنشاء جمهور استنادًا إلى مجموعة متنوعة من مقاطع الفيديو والإجراءات. فعلى سبيل المثال، يمكن أن يتضمن الجمهور مشاهدات فيديو لمدة 3 ثوانٍ من الفيديو أ، ومشاهدات فيديو مكتملة من الفيديو ب وج.
يؤدي ذلك إلى إنشاء جمهور من مشاهدي الفيديو 1 خلال مدة 14 يومًا الماضية لمدة تزيد عن 3 ثوان، وجمهور من مشاهدي الفيديو 2 بالكامل. ويقوم الجمهور أيضًا بملء المشاهدين تلقائيًا قبل إنشاء الجمهور من خلال prefill=true
.
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
$audience = new CustomAudience(null, $ad_account_id);
$audience->setData(array(
CustomAudienceFields::NAME => 'Video Ads Engagement Audience',
CustomAudienceFields::SUBTYPE => 'ENGAGEMENT',
CustomAudienceFields::DESCRIPTION => 'Users who watched my video',
CustomAudienceFields::PREFILL => true,
CustomAudienceFields::RULE => array(
array(
'object_id' => $video_id_1,
'event_name' => 'video_watched',
),
array(
'object_id' => $video_id_2,
'event_name' => 'video_completed',
),
),
));
$audience->create();
from facebookads.adobjects.customaudience import CustomAudience
audience = CustomAudience(parent_id=ad_account_id)
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.engagement
audience[CustomAudience.Field.name] = 'Video Ads Engagement Audience'
audience[CustomAudience.Field.description] = 'Users who watched my video'
audience[CustomAudience.Field.prefill] = True
audience[CustomAudience.Field.rule] = [
{
"object_id": video_id_1,
"event_name": "video_watched",
},
{
"object_id": video_id_2,
"event_name": "video_completed",
},
]
audience.remote_create()
curl \
-F 'name=Video Ads Engagement Audience' \
-F 'subtype=ENGAGEMENT' \
-F 'description=Users who watched my video' \
-F 'prefill=1' \
-F 'rule=[
{"object_id":"%video_id_1","event_name":"video_watched"},
{"object_id":"%video_id_2","event_name":"video_completed"}
]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/%ad_account_id/customaudiences
يتم دعم إعادة التعبئة لمشاهدات الفيديو اعتبارًا من 16 أكتوبر 2015.
يطلب الفيديو الذي يتضمن دعوة لاتخاذ إجراء (CTA) من الأشخاص التعرف على المزيد وزيارة صفحة محددة على أحد مواقع الويب. ويمكنك تحسين الأداء عندما يكون هدفك الأساسي هو تشجيع مشاهدات الفيديو أو الوعي بالعلامة التجارية، ويكمن الهدف الثانوي في التشجيع على زيادة عدد النقرات خارج الموقع. كما يجب عليك استخدام إعلان فيديو برابط للهدف الثاني. وفيما يلي كيفية عرض زر الدعوة لاتخاذ إجراء (CTA):
لا يمكنك استخدام فيديو مع أزرار الدعوة لاتخاذ إجراء إلا في أهداف الحملات الإعلانية التالية:
PAGE_LIKES
LINK_CLICKS
CONVERSIONS
VIDEO_VIEWS
BRAND_AWARENESS
يمكنك الرجوع إلى توسيع نطاق الفيديو ليتضمن أهدافًا إضافية. ويؤدي ذلك إلى إنشاء إعلان فيديو من خلال الدعوة لاتخاذ إجراء GET_DIRECTIONS
:
use FacebookAds\Object\AdCreative;
use FacebookAds\Object\Fields\AdCreativeVideoDataFields;
use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\AdCreativeVideoData;
use FacebookAds\Object\AdCreativeObjectStorySpec;
use FacebookAds\Object\Values\AdCreativeCallToActionTypeValues;
$video_data = new AdCreativeVideoData();
$video_data->setData(array(
AdCreativeVideoDataFields::IMAGE_URL => '<THUMBNAIL_URL>',
AdCreativeVideoDataFields::VIDEO_ID => <VIDEO_ID>,
AdCreativeVideoDataFields::LINK_DESCRIPTION =>
"Come check out our new store in Menlo Park!",
AdCreativeVideoDataFields::CALL_TO_ACTION => array(
'type' => AdCreativeCallToActionTypeValues::GET_DIRECTIONS,
'value' => array(
'link' => 'fbgeo://37.48327, -122.15033, "1601 Willow Rd Menlo Park CA"',
),
),
));
$story = new AdCreativeObjectStorySpec();
$story->setData(array(
AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>,
AdCreativeObjectStorySpecFields::VIDEO_DATA => $video_data,
));
$creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>');
$creative->{AdCreativeFields::OBJECT_STORY_SPEC} = $story;
$creative->create();
from facebookads.adobjects.adcreativevideodata import AdCreativeVideoData
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativeobjectstoryspec \
import AdCreativeObjectStorySpec
video_data = AdCreativeVideoData()
video_data[AdCreativeVideoData.Field.image_url] = image_url
video_data[AdCreativeVideoData.Field.video_id] = <VIDEO_ID>
video_data[AdCreativeVideoData.Field.description]\
= 'Come check out our new store in Menlo Park!'
video_data[AdCreativeVideoData.Field.call_to_action] = {
'type': 'GET_DIRECTIONS',
'value': {
'link': 'fbgeo://37.48327, -122.15033, "1601 Willow Rd Menlo Park CA"',
},
}
story = AdCreativeObjectStorySpec()
story[AdCreativeObjectStorySpec.Field.page_id] = <PAGE_ID>
story[AdCreativeObjectStorySpec.Field.video_data] = video_data
creative = AdCreative(parent_id='act_<AD_ACCOUNT_ID>')
creative[AdCreative.Field.object_story_spec] = story
creative.remote_create()
AdCreative adCreative = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdCreative()
.setObjectStorySpec(
new AdCreativeObjectStorySpec()
.setFieldPageId(<PAGE_ID>)
.setFieldVideoData(
new AdCreativeVideoData()
.setFieldCallToAction(
new AdCreativeLinkDataCallToAction()
.setFieldType(AdCreativeLinkDataCallToAction.EnumType.VALUE_GET_DIRECTIONS)
.setFieldValue(
new AdCreativeLinkDataCallToActionValue()
.setFieldLink("fbgeo://37.48327, -122.15033, \"1601 Willow Rd Menlo Park CA\"")
)
)
.setFieldLinkDescription("Come check out our new store in Menlo Park!")
.setFieldImageUrl(<THUMBNAIL_URL>)
.setFieldVideoId(<VIDEO_ID>)
)
)
.execute();
String ad_creative_id = adCreative.getId();
curl \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"video_data": {
"call_to_action": {
"type": "GET_DIRECTIONS",
"value": {
"link": "fbgeo:\/\/37.48327, -122.15033, \"1601 Willow Rd Menlo Park CA\""
}
},
"image_url": "<THUMBNAIL_URL>",
"link_description": "Come check out our new store in Menlo Park!",
"video_id": "<VIDEO_ID>"
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives
تعرف على المزيد حول أداء مقاطع الفيديو التي تقدمها على Facebook واتخذ قرارات تستند إلى مزيد من المعلومات حول محتوى الفيديو. وفي الوقت الحالي، لا نقدم أدوات القياس إلا بعد بدء شخص في مشاهدة مقاطع الفيديو. ويتضمن ذلك مشاهدات الفيديو ومشاهدات الفيديو الفريدة ومتوسط مدة مشاهدة الفيديو والاحتفاظ بالجمهور. كما يمكنك معرفة الأوقات التي يتوقف فيها الأشخاص عن مشاهدة مقاطع الفيديو، والأجزاء التي قد يجدها الأشخاص أكثر تشويقًا.
استخدم واجهة API رؤى الإعلانات. وتحتوي الاستجابة على العديد من أدوات قياس الفيديو.
يمكنك استعادة إحصائيات إعلان الفيديو مُجمّعة حسب نوع الفيديو، مثل التشغيل التلقائي أو النقر للتشغيل. وقم بتضمين النوع action_video_type
في action_breakdowns
. علمًا بأن القيم المتوقعة للنوع action_video_type
هي total
وclick_to_play
وauto_play
.
نجري حاليًا اختبارًا محدودًا للخيار action_video_type
. ولتحديد العملاء باستخدام التقسيم، تحقق من CAN_USE_VIDEO_METRICS_BREAKDOWN
للحساب الإعلاني.
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdsInsightsFields;
use FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsDatePresetValues;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$params = array(
'action_breakdowns' => AdsInsightsActionBreakdownsValues::ACTION_VIDEO_TYPE,
'date_preset' => AdsInsightsDatePresetValues::LAST_30D,
);
$fields = array(
AdsInsightsFields::ACTIONS,
AdsInsightsFields::VIDEO_AVG_PCT_WATCHED_ACTIONS,
AdsInsightsFields::VIDEO_COMPLETE_WATCHED_ACTIONS,
);
$stats = $account->getInsights($fields, $params);
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adsinsights import AdsInsights
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'action_breakdowns': AdsInsights.ActionBreakdowns.action_video_type,
'date_preset': AdsInsights.DatePreset.last_30_days,
'fields': [
AdsInsights.Field.actions,
AdsInsights.Field.video_avg_pct_watched_actions,
AdsInsights.Field.video_complete_watched_actions,
],
}
stats = account.get_insights(params=params)
print(stats)
APINodeList<AdsInsights> adsInsightss = new AdAccount(act_<AD_ACCOUNT_ID>, context).getInsights()
.setActionBreakdowns("action_video_type")
.setDatePreset(AdsInsights.EnumDatePreset.VALUE_LAST_30_DAYS)
.requestField("actions")
.requestField("video_avg_pct_watched_actions")
.requestField("video_complete_watched_actions")
.execute();
curl -G \
-d 'action_breakdowns=action_video_type' \
-d 'date_preset=last_30_days' \
-d 'fields=actions,video_avg_pct_watched_actions,video_complete_watched_actions' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/insights
تحتوي الاستجابة على كائنات تتضمن action_type
كنوع video_view
، وتحتوي على نوع action_video_type
أساسي:
{ "data": [ { "actions": [ ... { "action_type": "video_play", "value": 9898 }, { "action_type": "video_view", "action_video_type": "total", "value": 921129 }, { "action_type": "video_view", "action_video_type": "auto_play", "value": 915971 }, { "action_type": "video_view", "action_video_type": "click_to_play", "value": 5158 } ], "video_avg_pct_watched_actions": [ { "action_type": "video_view", "action_video_type": "total", "value": 60.59 }, { "action_type": "video_view", "action_video_type": "auto_play", "value": 60.47 }, { "action_type": "video_view", "action_video_type": "click_to_play", "value": 80.63 } ], "video_complete_watched_actions": [ { "action_type": "video_view", "action_video_type": "total", "value": 156372 }, { "action_type": "video_view", "action_video_type": "auto_play", "value": 154015 }, { "action_type": "video_view", "action_video_type": "click_to_play", "value": 2357 } ], "date_start": "2014-12-26", "date_stop": "2015-03-25" } ], "paging": { "cursors": { "before": "MA==", "after": "MA==" } } }
يمكنك الرجوع إلى واجهة API رؤى الإعلانات
يمكنك الحصول على المزيد من عناصر التصميم المتعلقة بالعقارات في الموجز وتشجيع الأشخاص على زيارة موقعك على الويب أو تطبيقك على الهواتف المحمولة من أجل التحويل. ويمكنك إنشاء إعلان دوّار بطريقتين:
الإعلانات الدوّارة غير مدعومة في Facebook Stories.
أنشئ منشور صفحة لإعلان دوّار أثناء إنشاء تصميم إعلان. وحدد محتوى منشور الصفحة في object_story_spec
الذي ينشئ منشور صفحة لم يتم نشره من adcreatives
. ويمكنك الرجوع إلى تصميمات الإعلانات. على سبيل المثال:
use FacebookAds\Object\AdCreative;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\Fields\AdCreativeLinkDataFields;
use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields;
use FacebookAds\Object\Fields\AdCreativeLinkDataChildAttachmentFields;
use FacebookAds\Object\AdCreativeLinkDataChildAttachment;
use FacebookAds\Object\AdCreativeLinkData;
use FacebookAds\Object\AdCreativeObjectStorySpec;
$product1 = (new AdCreativeLinkDataChildAttachment())->setData(array(
AdCreativeLinkDataChildAttachmentFields::LINK =>
'https://www.link.com/product1',
AdCreativeLinkDataChildAttachmentFields::NAME => 'Product 1',
AdCreativeLinkDataChildAttachmentFields::DESCRIPTION => '$8.99',
AdCreativeLinkDataChildAttachmentFields::IMAGE_HASH => '<IMAGE_HASH>',
AdCreativeLinkDataChildAttachmentFields::VIDEO_ID => '<VIDEO_ID>',
));
$product2 = (new AdCreativeLinkDataChildAttachment())->setData(array(
AdCreativeLinkDataChildAttachmentFields::LINK =>
'https://www.link.com/product2',
AdCreativeLinkDataChildAttachmentFields::NAME => 'Product 2',
AdCreativeLinkDataChildAttachmentFields::DESCRIPTION => '$9.99',
AdCreativeLinkDataChildAttachmentFields::IMAGE_HASH => '<IMAGE_HASH>',
AdCreativeLinkDataChildAttachmentFields::VIDEO_ID => '<VIDEO_ID>',
));
$product3 = (new AdCreativeLinkDataChildAttachment())->setData(array(
AdCreativeLinkDataChildAttachmentFields::LINK =>
'https://www.link.com/product3',
AdCreativeLinkDataChildAttachmentFields::NAME => 'Product 3',
AdCreativeLinkDataChildAttachmentFields::DESCRIPTION => '$10.99',
AdCreativeLinkDataChildAttachmentFields::IMAGE_HASH => '<IMAGE_HASH>',
));
$link_data = new AdCreativeLinkData();
$link_data->setData(array(
AdCreativeLinkDataFields::LINK => '<URL>',
AdCreativeLinkDataFields::CHILD_ATTACHMENTS => array(
$product1, $product2, $product3,
),
));
$object_story_spec = new AdCreativeObjectStorySpec();
$object_story_spec->setData(array(
AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>,
AdCreativeObjectStorySpecFields::LINK_DATA => $link_data,
));
$creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>');
$creative->setData(array(
AdCreativeFields::NAME => 'Sample Creative',
AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
));
$creative->create();
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativelinkdata import AdCreativeLinkData
from facebookads.adobjects.adcreativeobjectstoryspec \
import AdCreativeObjectStorySpec
from facebookads.adobjects.adcreativelinkdatachildattachment \
import AdCreativeLinkDataChildAttachment
product1 = AdCreativeLinkDataChildAttachment()
product1[AdCreativeLinkDataChildAttachment.Field.link] = '<URL>' + '/product1'
product1[AdCreativeLinkDataChildAttachment.Field.name] = 'Product 1'
product1[AdCreativeLinkDataChildAttachment.Field.description] = '$8.99'
product1[AdCreativeLinkDataChildAttachment.Field.image_hash] = '<IMAGE_HASH>'
product1[AdCreativeLinkDataChildAttachment.Field.video_id] = '<VIDEO_ID>'
product2 = AdCreativeLinkDataChildAttachment()
product2[AdCreativeLinkDataChildAttachment.Field.link] = '<URL>' + '/product2'
product2[AdCreativeLinkDataChildAttachment.Field.name] = 'Product 2'
product2[AdCreativeLinkDataChildAttachment.Field.description] = '$9.99'
product2[AdCreativeLinkDataChildAttachment.Field.image_hash] = '<IMAGE_HASH>'
product3 = AdCreativeLinkDataChildAttachment()
product3[AdCreativeLinkDataChildAttachment.Field.link] = '<URL>' + '/product3'
product3[AdCreativeLinkDataChildAttachment.Field.name] = 'Product 3'
product3[AdCreativeLinkDataChildAttachment.Field.description] = '$10.99'
product3[AdCreativeLinkDataChildAttachment.Field.image_hash] = '<IMAGE_HASH>'
link = AdCreativeLinkData()
link[link.Field.link] = '<URL>'
link[link.Field.child_attachments] = [product1, product2, product3]
story = AdCreativeObjectStorySpec()
story[story.Field.page_id] = <PAGE_ID>
story[story.Field.link_data] = link
creative = AdCreative(parent_id='act_<AD_ACCOUNT_ID>')
creative[AdCreative.Field.name] = 'MPA Creative'
creative[AdCreative.Field.object_story_spec] = story
creative.remote_create()
print(creative)
AdCreative adCreative = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdCreative()
.setName("Sample Creative")
.setObjectStorySpec(
new AdCreativeObjectStorySpec()
.setFieldLinkData(
new AdCreativeLinkData()
.setFieldCaption("My caption")
.setFieldChildAttachments(Arrays.asList(
new AdCreativeLinkDataChildAttachment()
.setFieldDescription("$8.99")
.setFieldImageHash(<IMAGE_HASH>)
.setFieldLink("https://www.link.com/product1")
.setFieldName("Product 1")
.setFieldVideoId(<VIDEO_ID>)
,
new AdCreativeLinkDataChildAttachment()
.setFieldDescription("$9.99")
.setFieldImageHash(<IMAGE_HASH>)
.setFieldLink("https://www.link.com/product2")
.setFieldName("Product 2")
.setFieldVideoId(<VIDEO_ID>)
,
new AdCreativeLinkDataChildAttachment()
.setFieldDescription("$10.99")
.setFieldImageHash(<IMAGE_HASH>)
.setFieldLink("https://www.link.com/product3")
.setFieldName("Product 3")
))
.setFieldLink(<URL>)
)
.setFieldPageId(<PAGE_ID>)
)
.execute();
String ad_creative_id = adCreative.getId();
curl \
-F 'name=Sample Creative' \
-F 'object_story_spec={
"link_data": {
"child_attachments": [
{
"description": "$8.99",
"image_hash": "<IMAGE_HASH>",
"link": "https:\/\/www.link.com\/product1",
"name": "Product 1",
"video_id": "<VIDEO_ID>"
},
{
"description": "$9.99",
"image_hash": "<IMAGE_HASH>",
"link": "https:\/\/www.link.com\/product2",
"name": "Product 2",
"video_id": "<VIDEO_ID>"
},
{
"description": "$10.99",
"image_hash": "<IMAGE_HASH>",
"link": "https:\/\/www.link.com\/product3",
"name": "Product 3"
}
],
"link": "<URL>"
},
"page_id": "<PAGE_ID>"
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives
تكون الاستجابة عبارة عن معرف تصميم:
{"id":"<CREATIVE_ID>"}
أنشئ منشور صفحة لم يتم نشره. ويكون child_attachments
عبارة عن مصفوفة من كائنات الروابط. وفي كل كائن رابط، تتوفر الصورة picture
والاسم name
والوصف description
اختياريًا. ويمكنك نشر ذلك بواسطة الصفحة باستخدام رمز وصول الصفحة فقط.
curl -X GET \
-d 'message="Browse our latest products"' \
-d 'published=0' \
-d 'child_attachments=[
{
"link": "{app-store-url}",
"name": "Product 1",
"description": "$4.99",
"image_hash": "{image-hash}"
},
{
"link": "{app-store-url}",
"name": "Product 2",
"description": "$4.99",
"image_hash": "{image-hash}"
},
{
"link": "{app-store-url}",
"name": "Product 3",
"description": "$4.99",
"image_hash": "{image-hash}"
},
{
"link": "{app-store-url}",
"name": "Product 4",
"description": "$4.99",
"image_hash": "{image-hash}"
}
]' \
-d 'caption="WWW.EXAMPLE.COM"' \
-d 'link="http://www.example.com/products"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/{page-id}/posts
بعد ذلك، قم بتوفير تصميم الإعلان مع منشور الصفحة الذي لم يتم نشره. واستخدم المعرف id
في object_story_id
بتصميم إعلانك.
يمكن أن تحتوي إعلانات الفيديو الدوّارة على 'شرح توضيحي' في المرفق الفرعي لتخصيص عنوان URL الخاص بالعرض في الشاشة النهائية:
"child_attachments": [ { "link": "https://www.facebookmarketingdevelopers.com/", "name": "Facebook Marketing Developers", "description": "Facebook Marketing Developers", "call_to_action": { "type": "APPLY_NOW", "value": { "link_title": "Facebook Marketing Developers" } }, "video_id": "123", "caption": "mycustomlinkcaption.com" }, ]
للحصول على تفاصيل حول المرفقات الفرعية، يمكنك استخدام المعرف واستدعاء واجهة Graph API، الفيديو، المرجع.
التقييدات:
child_attachment
. ولا تحتاج إلى تحديد الرابط مجددًا في call_to_action:{'value':{'link':... }}}
فعلى سبيل المثال، لإنشاء إعلان دوّار لعمليات تثبيت تطبيقات الهواتف المحمولة:
curl -X POST \
-F 'name="Carousel app ad"' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"link_data": {
"message": "My message",
"link": "http://www.example.com/appstoreurl",
"caption": "WWW.ITUNES.COM",
"name": "The link name",
"description": "The link description",
"child_attachments": [
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
},
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
},
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
},
{
"link": "http://www.example.com/appstoreurl",
"image_hash": "<IMAGE_HASH>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {
"app_link": "<DEEP_LINK>"
}
}
}
],
"multi_share_optimized": true
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0
/act_<AD_ACCOUNT_ID>/adcreatives
يمكنك فقط نشر منشورك باسم صفحة Facebook المرتبطة بتطبيقك على الهاتف المحمول. ويجب عليك استخدام رمز وصول الصفحة.
$child_attachments = array();
for ($i = 0; $i <= 3; $i++) {
$child_attachments[] = array(
'link' => '<APP_STORE_URL>',
'image_hash' => '<IMAGE_HASH_I>',
'call_to_action' => array(
'type' => 'USE_MOBILE_APP',
'value' => array(
'app_link' => '<DEEP_LINK_I>',
'link_title' => '<LINK_TITLE_I>',
),
),
);
}
$params = array(
'message' => 'My description',
'link' => '<APP_STORE_URL>',
'caption' => 'WWW.ITUNES.COM',
'child_attachments' => $child_attachments,
'multi_share_optimized' => true,
);
$data = Api::instance()->call(
'/'.'<PAGE_ID>'.'/feed',
RequestInterface::METHOD_POST,
$params)->getContent();
from facebookads import FacebookAdsApi
from facebookads.adobjects.adcreativelinkdatachildattachment \
import AdCreativeLinkDataChildAttachment
child_attachments = list()
for i in range(3):
child_attachments.append({
AdCreativeLinkDataChildAttachment.Field.link: '<APP_STORE_URL>',
AdCreativeLinkDataChildAttachment.Field.image_hash: '<IMAGE_HASH>',
AdCreativeLinkDataChildAttachment.Field.call_to_action: {
'type': 'USE_MOBILE_APP',
'value': {
'app_link': '<DEEP_LINK_I>',
'link_title': '<LINK_TITLE_I>',
},
},
})
params = {
'message': 'My description',
'link': '<APP_STORE_URL>',
'caption': 'WWW.ITUNES.COM',
'child_attachments': child_attachments,
'multi_share_optimized': True,
}
data = FacebookAdsApi.get_default_api().\
call('POST', (<PAGE_ID>, 'feed'), params)
curl \
-F 'message=My description' \
-F 'link=<APP_STORE_URL>' \
-F 'caption=WWW.ITUNES.COM' \
-F 'child_attachments=[
{
"link": "<APP_STORE_URL>",
"image_hash": "<IMAGE_HASH_I>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {"app_link":"<DEEP_LINK_I>","link_title":"<LINK_TITLE_I>"}
}
},
{
"link": "<APP_STORE_URL>",
"image_hash": "<IMAGE_HASH_I>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {"app_link":"<DEEP_LINK_I>","link_title":"<LINK_TITLE_I>"}
}
},
{
"link": "<APP_STORE_URL>",
"image_hash": "<IMAGE_HASH_I>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {"app_link":"<DEEP_LINK_I>","link_title":"<LINK_TITLE_I>"}
}
},
{
"link": "<APP_STORE_URL>",
"image_hash": "<IMAGE_HASH_I>",
"call_to_action": {
"type": "USE_MOBILE_APP",
"value": {"app_link":"<DEEP_LINK_I>","link_title":"<LINK_TITLE_I>"}
}
}
]' \
-F 'multi_share_optimized=1' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PAGE_ID>/feed
استخدم المعرف id
من الاستجابة لإنشاء AdCreative:
فيما يلي إعلان دوّار على نظام iOS يعرض كيفية استخدام الحقول الموضحة.
الاسم | الوصف |
---|---|
النوع: object (كائن) | يلزم توفير مصفوفة من كائنات الروابط تضم 2 إلى 10 عناصر للإعلانات الدوّارة. ويجب استخدام ثلاثة كائنات على الأقل للاستمتاع بأداء مثالي؛ ويُستخدم اثنين من هذه الكائنات في تمكين عمليات الدمج الخفيفة وقد يؤدي استخدام اثنين من الكائنات إلى إرجاع نتائج تضم حملات إعلانية أقل من المستوى الأمثل. |
النوع: string (سلسلة) | يمثل عنوان URL للرابط أو عنوان URL لمتجر التطبيقات المرفق بالمنشور. مطلوب. |
النوع: URL (عنوان URL) | يمثل معاينة الصورة المقترنة بالرابط. وتُستخدم نسبة العرض إلى الارتفاع 1:1 والدقة 458 × 458 بيكسل على الأقل للحصول على أفضل عرض. كما يجب تحديد |
النوع: string (سلسلة) | يمثل تجزئة لصورة المعاينة المقترنة بالرابط من مكتبة الصور لديك؛ استخدم نسبة عرض إلى ارتفاع 1:1 وبدقة 458 x 458 بيكسل على الأقل للحصول على أفضل عرض. كما يجب تحديد |
النوع: string (سلسلة) | يمثل عنوان معاينة الرابط. وإذا لم يتم تحديده، فيُستخدم عنوان الصفحة المرتبطة. ويتم اقتصاصه عادة بعد 35 حرفًا. كما يجب تعيين اسم |
النوع: string (سلسلة) | يمثل السعر أو الخصم أو نطاق موقع الويب. وإذا لم يتم تحديده، فيتم استخلاص محتوى من الصفحة المرتبطة واستخدامه. ويتم اقتصاصه عادة بعد 30 حرفًا. |
النوع: object (كائن) | يمثل اختياريًا زر الدعوة لاتخاذ إجراء. ويمكنك الرجوع إلى الدعوة لاتخاذ إجراء. ولا تحتاج إلى تحديد الرابط مجددًا في |
النوع: string (سلسلة) | يمثل معرف فيديو الإعلان. ويمكن استخدامه في أي عنصر فرعي. وإذا تم تحديده، فيجب أيضًا تعيين |
النوع: string (سلسلة) | يمثل النص الأساسي للمنشور، ويُسمى أيضًا رسالة الحالة. |
النوع: string (سلسلة) | يمثل عنوان URL للرابط الخاص بـ "عرض المزيد". مطلوب. |
النوع: string (سلسلة) | يمثل عنوان URL المطلوب عرضه في الرابط "عرض المزيد". ولا ينطبق على الإعلانات الدوّارة لتطبيقات الهواتف المحمولة |
النوع: boolean (قيمة منطقية) | إذا تم تعيينه إلى القيمة |
النوع: boolean (قيمة منطقية) | إذا تم تعيينه إلى القيمة |
يمكنك تجميع الإجراءات للإعلانات الدوّارة حسب كل منتج باستخدام actions_breakdown=['action_carousel_card_id', 'action_carousel_card_name']
. ويحتوي كل child_attachment
على معرف بطاقة مختلف. ولا يتم استخدام المعرف action_carousel_card_id
والاسم action_carousel_card_name
إلا مع الإعلانات الدوّارة فقط.
يمكنك الحصول على الإحصائيات التالية لكل بطاقة:
website_ctr
: يتوفر عند تحديد fields=['website_ctr']
app_install
وapp_use
وapps.uses
وcredit_spent
وmobile_app_install
وtab_view
وlink_click
وmobile_app_install
وapp_custom_event.*
وoffsite_conversion.*
: يتوفر عند تحديد fields=['actions']
. ولا تتوفر الإجراءات الأخرى مع تقسيم البطاقة.use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdsInsightsFields;
use FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsLevelValues;
use FacebookAds\Object\Values\AdsInsightsDatePresetValues;
use FacebookAds\Object\Values\InsightsIncrements;
use FacebookAds\Object\Values\InsightsOperators;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$params = array(
'action_breakdowns' => array(
AdsInsightsActionBreakdownsValues::ACTION_TYPE,
AdsInsightsActionBreakdownsValues::ACTION_CAROUSEL_CARD_ID,
),
'level' => AdsInsightsLevelValues::AD,
'date_preset' => AdsInsightsDatePresetValues::LAST_30D,
'time_increment' => InsightsIncrements::ALL_DAYS,
'breakdowns' => AdsInsightsBreakdownsValues::PLACEMENT,
'filtering' => array(
array(
'field' => 'action_type',
'operator' => InsightsOperators::IN,
'value' => array('link_click'),
),
),
);
$fields = array(
AdsInsightsFields::IMPRESSIONS,
AdsInsightsFields::INLINE_LINK_CLICKS,
AdsInsightsFields::ACTIONS,
AdsInsightsFields::WEBSITE_CTR,
);
$stats = $account->getInsights($fields, $params);
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adsinsights import AdsInsights
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'action_breakdowns': [
AdsInsights.ActionBreakdowns.action_type,
AdsInsights.ActionBreakdowns.action_carousel_card_id,
],
'fields': [
AdsInsights.Field.impressions,
AdsInsights.Field.unique_clicks,
AdsInsights.Field.actions,
AdsInsights.Field.website_ctr,
],
'level': AdsInsights.Level.ad,
'date_preset': AdsInsights.DatePreset.last_30_days,
'time_increment': 'all_days',
'breakdowns': AdsInsights.Breakdowns.placement,
'filtering': [
{
'field': 'action_type',
'operator': 'IN',
'value': ['link_click'],
},
],
}
stats = account.get_insights(params=params)
print(stats)
APINodeList<AdsInsights> adsInsightss = new AdAccount(act_<AD_ACCOUNT_ID>, context).getInsights()
.setActionBreakdowns("[\"action_type\",\"action_carousel_card_id\"]")
.setLevel(AdsInsights.EnumLevel.VALUE_AD)
.setDatePreset(AdsInsights.EnumDatePreset.VALUE_LAST_30_DAYS)
.setTimeIncrement("all_days")
.setBreakdowns("placement")
.setFiltering("[{\"field\":\"action_type\",\"operator\":\"IN\",\"value\":[\"link_click\"]}]")
.requestField("impressions")
.requestField("inline_link_clicks")
.requestField("actions")
.requestField("website_ctr")
.execute();
curl -G \
-d 'action_breakdowns=["action_type","action_carousel_card_id"]' \
-d 'level=ad' \
-d 'date_preset=last_30_days' \
-d 'time_increment=all_days' \
-d 'breakdowns=placement' \
--data-urlencode 'filtering=[
{
"field": "action_type",
"operator": "IN",
"value": ["link_click"]
}
]' \
-d 'fields=impressions,inline_link_clicks,actions,website_ctr' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/insights
الاستجابة:
{ ... "website_ctr": [ { "action_carousel_card_id": "1", "action_type": "link_click", "value": 51.401869158878 }, { "action_carousel_card_id": "2", "action_type": "link_click", "value": 50.980392156863 } ], "placement": "mobile_feed", "date_start": "2015-05-25", "date_stop": "2015-05-28" }
يمكنك أيضًا طلب cost_per_action_type
لتقسيم التكاليف حسب نوع الإجراء:
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdsInsightsFields;
use FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsLevelValues;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$params = array(
'action_breakdowns' => array(
AdsInsightsActionBreakdownsValues::ACTION_TYPE,
AdsInsightsActionBreakdownsValues::ACTION_CAROUSEL_CARD_NAME,
),
'level' => AdsInsightsLevelValues::AD,
'breakdowns' => AdsInsightsBreakdownsValues::PLACEMENT,
);
$fields = array(
AdsInsightsFields::IMPRESSIONS,
AdsInsightsFields::CAMPAIGN_NAME,
AdsInsightsFields::COST_PER_ACTION_TYPE,
);
$stats = $account->getInsights($fields, $params);
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adsinsights import AdsInsights
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'action_breakdowns': [
AdsInsights.ActionBreakdowns.action_type,
AdsInsights.ActionBreakdowns.action_carousel_card_name,
],
'fields': [
AdsInsights.Field.impressions,
AdsInsights.Field.campaign_name,
AdsInsights.Field.cost_per_action_type,
],
'level': AdsInsights.Level.ad,
}
stats = account.get_insights(params=params)
print(stats)
APINodeList<AdsInsights> adsInsightss = new AdAccount(act_<AD_ACCOUNT_ID>, context).getInsights()
.setActionBreakdowns("[\"action_type\",\"action_carousel_card_name\"]")
.setLevel(AdsInsights.EnumLevel.VALUE_AD)
.setBreakdowns("placement")
.requestField("impressions")
.requestField("campaign_name")
.requestField("cost_per_action_type")
.execute();
curl -G \
-d 'action_breakdowns=["action_type","action_carousel_card_name"]' \
-d 'level=ad' \
-d 'breakdowns=placement' \
-d 'fields=impressions,campaign_name,cost_per_action_type' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/insights
عينة من الاستجابة:
{ "data": [ { "impressions": "1862555", "campaign_name": "My Campaign", "cost_per_action_type": [ { "action_carousel_card_name": "My Carousel Card 1", "action_type": "app_custom_event.fb_mobile_activate_app", "value": 0.093347346315861 }, { "action_carousel_card_name": "My Carousel Card 2", "action_type": "app_custom_event.fb_mobile_activate_app", "value": 0.38324089579301 }, ... ], } ] }
action_report_time=impression
بأنها غير دقيقة وذلك قبل 20 يونيو 2015. action_report_time=conversion
بأنها غير دقيقة وذلك قبل 20 يوليو 2015.إذا قمت بتحديد right_hand_column
فقط ليكون موضعك، يمكنك فقط استخدام تنسيق دوّار أو فيديو واحد في مجموعة الإعلانات لديك. ولا ندعم تنسيق الفيديو عند تحديد موضع right_hand_column
فقط. ويمكنك الرجوع إلى الاستهداف المتقدم والموضع.
فعلى سبيل المثال، يمكنك إنشاء مجموعة إعلانية باستخدام right_hand_column
كموضعك الوحيد:
curl \ -F 'name=RHS only Ad Set' \ -F 'campaign_id=<CAMPAIGN_ID>' \ -F 'daily_budget=500' \ -F 'start_time=2017-11-21T15:41:36+0000' \ -F 'end_time=2017-11-28T15:41:36+0000' \ -F 'billing_event=IMPRESSIONS' \ -F 'optimization_goal=LINK_CLICKS' \ -F 'bid_amount=100' \ -F 'targeting={ "device_platforms": ["mobile"], "geo_locations": {"countries":["US"]}, "publisher_platforms": ["facebook"] , "facebook_positions": ["right_hand_column"] , }' \ -F 'status=PAUSED' \ -F 'access_token=ACCESS_TOKEN' \ https://graph.facebook.com/VERSION/act_AD_ACCOUNT_ID/adsets }
قم بتوفير تصميم إعلان يتضمن فيديو:
curl \ -F 'name=Sample Creative' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "video_data": {"image_url":"THUMBNAIL_URL","video_id":"VIDEO_ID"} }' \ -F 'access_token=ACCESS_TOKEN' \ https://graph.facebook.com/VERSION/act_AD_ACCOUNT_ID/adcreatives }
أو قم بتوفير تنسيق إعلان اللوحة لتصميم الإعلان:
curl \ -F 'image_hash=IMAGE_HASH' \ -F 'object_story_spec={ "link_data": { "call_to_action": {"type":"LEARN_MORE"}, "image_hash": "IMAGE_HASH", "link": "CANVAS_LINK", "name": "Creative message" }, "page_id": "PAGE_ID" }' \ -F 'access_token=ACCESS_TOKEN' \ https://graph.facebook.com/VERSION/act_AD_ACCOUNT_ID/adcreatives }
إذا كنت تحاول إنشاء إعلان مع المجموعة الإعلانية وتصميم الإعلان:
curl \ -F 'name=My Ad' \ -F 'adset_id=<AD_SET_ID>' \ -F 'creative={"creative_id":"CREATIVE_ID"}' \ -F 'status=ACTIVE' \ -F 'access_token=ACCESS_TOKEN' \ https://graph.facebook.com/VERSION/act_AD_ACCOUNT_ID/ads </c:code> }
فستحصل على رمز الخطأ التالي، وفي هذه الحالة، يجب توفير تصميم مدعوم أو تغيير الاستهداف.