คุณสามารถสร้าง วัดผล และปรับโฆษณาแบบวิดีโอและโฆษณาแบบภาพสไลด์บน Facebook ให้เหมาะสมผ่าน API ได้อย่างง่ายดาย โปรดดู Facebook สำหรับธุรกิจ, โฆษณาแบบภาพสไลด์ และดูรูปแบบวิดีโอที่รองรับสำหรับโฆษณาได้ที่ศูนย์ช่วยเหลือผู้ลงโฆษณา, วิดีโอ
หากต้องการสร้างโฆษณาแบบวิดีโอที่มีวัตถุประสงค์เป็น VIDEO_VIEWS
และปรับราคาประมูลให้เหมาะสมกับการเข้าถึง ให้ปฏิบัติตามขั้นตอนต่อไปนี้:
สร้างโฆษณาแบบวิดีโอโดยใช้ ID วิดีโอที่มีอยู่และวิดีโอที่อัพโหลดไปยัง Facebook
คุณจำเป็นต้องมีสิ่งต่อไปนี้
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
เพื่อจ่ายเงินต่ออิมเพรสชั่นหรือต่อการรับชมวิดีโอ โปรดดูการประมูล CPV
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
จะต่ำกว่าเมื่อเทียบกับ CPV จากการซื้อการเข้าถึงและความถี่ที่ปรับให้เหมาะสมกับการรับชมวิดีโอ โปรดดูข้อมูลอ้างอิง: ชุดโฆษณา
ใช้ชุดโฆษณาและชิ้นงานโฆษณาที่มีอยู่
เมื่อวัตถุประสงค์แคมเปญเป็น 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
เช่น ID วิดีโอและ event_name
ซึ่ง event_name
เป็น 1 ใน:
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 วินาทีจากวิดีโอ A และการรับชมจนจบจากวิดีโอ B และ C ได้
การทำเช่นนี้จะสร้างกลุ่มเป้าหมายขึ้นมาจากในช่วง 14 วันที่ผ่านมาของผู้ที่ชมวิดีโอ 1 มากกว่า 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
คุณสามารถใช้วิดีโอที่มี 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 ข้อมูลเชิงลึกของโฆษณา
รับพื้นที่ของชิ้นงานโฆษณาเพิ่มมากขึ้นบนฟีด และกระตุ้นให้ผู้คนเข้าเยี่ยมชมเว็บไซต์หรือแอพบนมือถือของคุณเพื่อทำคอนเวอร์ชั่น โดยสามารถสร้างโฆษณาแบบภาพสไลด์ได้ 2 วิธี ดังนี้
ระบบไม่รองรับโฆษณาแบบภาพสไลด์สำหรับ 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 ของชิ้นงานโฆษณา:
{"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" }, ]
ใช้ ID และเรียกใช้ 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
จากการตอบกลับเพื่อสร้างชิ้นงานโฆษณา:
นี่คือโฆษณาแบบภาพสไลด์บน iOS ซึ่งแสดงวิธีใช้งานช่องที่ได้อธิบายไว้
ชื่อ | คำอธิบาย |
---|---|
ประเภท: อ็อบเจ็กต์ | โฆษณาแบบภาพสไลด์จำเป็นต้องมีอาร์เรย์องค์ประกอบ 2-10 ของอ็อบเจ็กต์ลิงก์ คุณควรใช้อ็อบเจ็กต์อย่างน้อย 3 รายการเพื่อให้มีประสิทธิภาพการทำงานที่เหมาะสม ซึ่งอ็อบเจ็กต์ 2 รายการจะใช้เพื่อเปิดใช้งานการผสานการทำงานแบบเบา และการใช้อ็อบเจ็กต์ 2 รายการอาจทำให้แคมเปญมีผลลัพธ์ต่ำกว่ามาตรฐาน |
ประเภท: สตริง | URL ลิงก์หรือ URL ของ App Store ที่แนบมากับโพสต์ จำเป็นต้องระบุ |
ประเภท: URL | ภาพตัวอย่างที่เกี่ยวข้องกับลิงก์นี้ อัตราส่วนกว้างยาว 1:1 และอย่างน้อย 458 x 458 พิกเซลเหมาะกับการแสดงภาพที่สุด คุณต้องระบุ |
ประเภท: สตริง | แฮชของรูปภาพตัวอย่างที่เกี่ยวข้องกับลิงก์จากคลังรูปภาพของคุณที่มีอัตราส่วนกว้างยาว 1:1 และมีขนาดอย่างน้อย 458 x 458 พิกเซลเหมาะสำหรับการแสดงภาพที่สุด คุณต้องระบุ |
ประเภท: สตริง | ชื่อของตัวอย่างลิงก์ หากไม่ได้ระบุไว้ ชื่อของหน้าเว็บที่ถูกลิงก์จะถูกนำมาใช้ โดยปกติจะถูกตัดให้สั้นเมื่อเกิน 35 อักขระ คุณควรตั้ง |
ประเภท: สตริง | ราคา ส่วนลด หรือโดเมนเว็บไซต์ อย่างใดอย่างหนึ่ง หากไม่ได้ระบุไว้ เนื้อหาจากหน้าเว็บที่ลิงก์จะถูกดึงออกมาใช้ โดยปกติจะถูกตัดให้สั้นเมื่อเกิน 30 อักขระ |
ประเภท: อ็อบเจ็กต์ | การกระตุ้นให้ดำเนินการแบบระบุหรือไม่ก็ได้ โปรดดูการกระตุ้นให้ดำเนินการ ทั้งนี้คุณไม่จำเป็นต้องระบุลิงก์ดังกล่าวอีกครั้งใน |
ประเภท: สตริง | ID ของโฆษณาแบบวิดีโอ สามารถนำมาใช้ในองค์ประกอบรองได้ หากระบุ ต้องตั้งค่า |
ประเภท: สตริง | เนื้อความหลักของโพสต์ เรียกอีกอย่างหนึ่งว่าข้อความสถานะ |
ประเภท: สตริง | URL ของลิงก์ไปยัง “ดูเพิ่มเติม” จำเป็นต้องระบุ |
ประเภท: สตริง | URL เพื่อแสดงในลิงก์ “ดูเพิ่มเติม” ไม่สามารถใช้งานได้กับโฆษณาแบบภาพสไลด์สำหรับแอพบนมือถือ |
ประเภท: บูลีน | หากตั้งค่าเป็น |
ประเภท: บูลีน | หากตั้งค่าเป็น |
จัดกลุ่มการดำเนินการต่างๆ สำหรับโฆษณาแบบภาพสไลด์ตามสินค้าแต่ละรายการด้วย actions_breakdown=['action_carousel_card_id', 'action_carousel_card_name']
โดย child_attachment
แต่ละรายการจะมี ID การ์ดแตกต่างกัน 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 }
หรือใส่รูปแบบโฆษณาแบบ Canvas สำหรับชิ้นงานโฆษณา:
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> }
คุณได้รับรหัสข้อผิดพลาด ซึ่งในกรณีนี้คุณควรระบุชิ้นงานโฆษณาที่ระบบรองรับหรือเปลี่ยนแปลงการกำหนดเป้าหมาย