เอกสารนี้จะอธิบายหน่วยโฆษณาต่างๆ ที่ได้รับการออกแบบมาเพื่อกระตุ้นให้เกิดการติดตั้งและการมีส่วนร่วมสำหรับแอพบนเดสก์ท็อปและบนมือถือ
คุณควรใช้หน่วยโฆษณานี้ในการกระตุ้นให้ผู้คนมายังแอพบนเดสก์ท็อปหรือบนมือถือของคุณ เพื่อวัตถุประสงค์ในการติดตั้งหรือการมีส่วนร่วมโดยใช้ชิ้นงานโฆษณาแบบรูปภาพ แบบวิดีโอ แบบภาพสไลด์ หรือแบบทดลองเล่น
ในเชิงแนวคิดนั้น การดำเนินการเช่นนี้ใช้ได้กับโฆษณาดังต่อไปนี้
รูปภาพ | วิดีโอ | ภาพสไลด์ | รูปแบบทดลองเล่น | |
---|---|---|---|---|
โฆษณาเพื่อการติดตั้งบนมือถือ | ✓ | ✓ | ✓ | ✓ |
โฆษณาเพื่อการมีส่วนร่วมบนมือถือ | ✓ | ✓ | ✓ | |
โฆษณาเพื่อการติดตั้งบนเดสก์ท็อป | ✓ | ✓ | ✓ | |
โฆษณาเพื่อการมีส่วนร่วมบนเดสก์ท็อป | ✓ | ✓ | ✓ | |
โฆษณาแอพบนเดสก์ท็อปสำหรับสินค้าเสมือน | ✓ | ✓ | ✓ |
โฆษณาแอพบนเดสก์ท็อปสำหรับสินค้าเสมือนเป็นส่วนย่อยของการมีส่วนร่วมบนเดสก์ท็อป โดยคุณสามารถใช้ข้อเสนอที่เป็นสินค้าเสมือนเพื่อดึงดูดผู้เล่นให้กลับมามีส่วนร่วมกับแอพของคุณได้ ตัวอย่างเช่น แอพอาจมอบส่วนลดสำหรับสินค้าหรือชุดสกุลเงินในแอพบนฟีดเพื่อดึงดูดผู้ที่เคยใช้จ่ายให้กลับมามีส่วนร่วมได้ โปรดดูคำแนะนำเกี่ยวกับวิธีตั้งค่าแอพให้รับการชำระเงินที่นี่
หน่วยโฆษณาแบบรูปภาพเพื่อการติดตั้งบนมือถือจะมีลักษณะดังนี้ (ใช้เพื่อการอ้างอิง)
โฆษณาแอพบนเดสก์ท็อปสำหรับสินค้าเสมือนที่มีรูปภาพจะมีลักษณะดังนี้
เมื่อทำการสร้างโฆษณา ให้คำนึงถึงข้อกำหนดต่อไปนี้
user_os
ของข้อมูลจำเพาะของการกำหนดเป้าหมายบนมือถือ ทั้งนี้ ตำแหน่งการจัดวางควรมีช่อง device_platforms
ที่มีค่าเป็น ['mobile
'] และขอแนะนำอย่างยิ่งให้ใช้ช่องอื่นๆ ของข้อมูลจำเพาะดังกล่าวในการกำหนดเป้าหมายเป็นอุปกรณ์มือถือบน Facebook คุณสามารถเลือกระบุ publisher_platforms
ได้ หากคุณต้องการเพียงบางแพลตฟอร์มเท่านั้นdevice_platforms
จะต้องเป็น desktop
คุณสามารถเลือกระบุ Facebookfacebook_positions
ได้ หากคุณไม่ต้องการทั้งฟีดและคอลัมน์ด้านขวาบนเดสก์ท็อปของ FacebookGET_OFFER
สำหรับสินค้าเสมือน ราคาจะต้องมีการหักส่วนลด โปรดดูข้อมูลเพิ่มเติมที่สินค้าเสมือนการกระตุ้นให้ดำเนินการเพิ่มเติมด้านล่างนี้จะมีให้ใช้งานสำหรับโฆษณาแอพภายในช่อง call_to_action
ของโพสต์หรือ object_story_spec
ของชิ้นงานโฆษณา ทั้งนี้ คุณสามารถระบุ Deep Link ของแอพบนมือถือในช่อง app_link
หรืออ็อบเจ็กต์สินค้าเสมือนของแอพบนเดสก์ท็อปในช่อง product_link
ก็ได้เช่นกัน
คีย์ | ค่า | จำเป็นต้องระบุหรือไม่ |
---|---|---|
type | ประเภทการกระตุ้นให้ดำเนินการสำหรับมือถือ (ไม่ว่าจะเป็นการติดตั้งหรือการมีส่วนร่วม) มีดังนี้ | จำเป็น |
value | พจนานุกรม JSON ของ | จำเป็น
|
value.link | หมายถึง App Store, Google Play Store หรือ URL ของแอพแคนวาสบน Facebook ตัวอย่างเช่น https://itunes.apple.com/us/app/facebook/id284882215 | จำเป็น |
value.app_link | เพื่อกำหนดปลายทางของ Deep Link สำหรับแอพบนมือถือเท่านั้น เช่น | จำเป็น เฉพาะกับโฆษณาเพื่อการติดตั้งหรือการมีส่วนร่วมบนมือถือเท่านั้น |
value.product_link | เพื่อกำหนด URL ที่นำไปยังอ็อบเจ็กต์สินค้าเสมือน Open Graph ของผลิตภัณฑ์ โปรดดูรายละเอียดการตั้งค่าที่นี่ | จำเป็น เฉพาะกับสินค้าเสมือนบนเดสก์ท็อปเท่านั้น |
value.link_title | ช่วยให้คุณสามารถปรับแต่งชื่อสำหรับลิงก์ได้ ซึ่งจะแสดงอยู่ด้านล่างรูปภาพของโฆษณา | ไม่จำเป็น |
หากต้องการสร้างโฆษณาแอพบนเดสก์ท็อปหรือมือถือที่มีรูปภาพประกอบ ก่อนอื่น ให้สร้างโพสต์บนเพจแบบลิงก์พร้อมรูปภาพโดยใช้ช่อง object_story_spec: {'link_data': ...}
ของชิ้นงานโฆษณา
ตัวอย่าง:
curl -X POST \
-F 'name="Sample Creative"' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"link_data": {
"call_to_action": {
"type": "INSTALL_MOBILE_APP",
"value": {
"link": "<APP_STORE_URL>"
}
},
"image_hash": "<IMAGE_HASH>",
"link": "<APP_STORE_URL>",
"message": "Try it out"
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/adcreatives
หรือคุณจะสร้างโพสต์บนเพจผ่านตำแหน่งข้อมูลฟีดของเพจและใช้ ID โพสต์ในชิ้นงานโฆษณาก็ได้ ดูตัวอย่างเพิ่มเติมได้ที่ส่วนตัวอย่างด้านล่าง
หากต้องการสร้างโฆษณาเพื่อการติดตั้งหรือการมีส่วนร่วมกับแอพบนมือถือโดยใช้รูปแบบโฆษณาแบบภาพสไลด์ ให้ทำตามคำแนะนำในเอกสารเกี่ยวกับโฆษณาแบบภาพสไลด์ โดยยกเว้นช่อง link
ของ child_attachments
แต่ละรายการ แต่ให้ระบุลิงก์ที่ไปยัง App Store
โปรดทราบว่าคุณควรระบุลิงก์ที่ไปยัง App Store ลิงก์เดียวกันในแต่ละ 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/v21.0
/act_<AD_ACCOUNT_ID>/adcreatives
หากต้องการสร้างโฆษณาแอพโดยมีวิดีโอ ก่อนอื่นให้อัพโหลดวิดีโอไปที่คลังวิดีโอของบัญชีโฆษณา จากนั้นให้ใช้ ID ของวิดีโอในช่อง object_story_spec: {'video_data':...}
ของชิ้นงานโฆษณา
ตัวอย่าง:
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>,
AdCreativeVideoDataFields::CALL_TO_ACTION => array(
'type' => 'INSTALL_MOBILE_APP',
'value' => array(
'link' => '<APP_STORE_URL>',
),
),
));
$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] = 'try it out'
video_data[AdCreativeVideoData.Field.video_id] = <VIDEO_ID>
video_data[AdCreativeVideoData.Field.image_url] = '<THUMBNAIL_URL>'
video_data[AdCreativeVideoData.Field.call_to_action] = {
'type': 'INSTALL_MOBILE_APP',
'value': {
'link': '<APP_STORE_URL>',
'link_title': 'Facebook',
},
}
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] = 'Sample 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()
.setFieldCallToAction(
new AdCreativeLinkDataCallToAction()
.setFieldType(AdCreativeLinkDataCallToAction.EnumType.VALUE_INSTALL_MOBILE_APP)
.setFieldValue(
new AdCreativeLinkDataCallToActionValue()
.setFieldLink(<APP_STORE_URL>)
)
)
.setFieldLinkDescription("try it out")
.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": {
"call_to_action": {"type":"INSTALL_MOBILE_APP","value":{"link":"<APP_STORE_URL>"}},
"image_url": "<THUMBNAIL_URL>",
"video_id": "<VIDEO_ID>"
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives
หรือคุณจะสร้างโพสต์บนเพจผ่านตำแหน่งข้อมูลวิดีโอของเพจและใช้ ID วิดีโอในชิ้นงานโฆษณาก็ได้ ดูตัวอย่างเพิ่มเติมได้ที่ส่วนตัวอย่างด้านล่าง
หากต้องการเรียกดูรายละเอียดเกี่ยวกับโพสต์บนเพจของคุณ โปรดดูเอกสารเกี่ยวกับโพสต์บนเพจแบบลิงก์หรือเอกสารเกี่ยวกับโพสต์บนเพจแบบวิดีโอ
คุณสามารถลงรายการโพสต์บนเพจทั้งหมดจากจุดเชื่อมโยง /promotable_posts
ของเพจได้
curl https://graph.facebook.com/{API_VERSION}/{PAGE_ID}/promotable_posts
หากต้องการเรียกดูรายละเอียดเกี่ยวกับชิ้นงานโฆษณาของคุณ โปรดดูเอกสารประกอบเกี่ยวกับชิ้นงานโฆษณา
ADVERTISE
บนเพจได้"call_to_action={'type':'LEARN_MORE', 'value':{'link':'https://itunes.apple.com/us/app/facebook/id284882215', 'app_link':'facebook://path/to/page'}}"
ก่อนที่จะระบุลิงก์ที่ไปยังแอพ คุณควรตรวจสอบความถูกต้องว่าลิงก์ดังกล่าวได้ผ่านการดึงข้อมูลโดยการเรียกใช้แล้ว ดังนี้
https://graph.facebook.com/{API_VERSION}/?type=og&scrape=true&id={APP_LINK}
ข้อมูลเชิงลึกจะใช้ได้เฉพาะกับโฆษณาที่มีอ็อบเจ็กต์ที่โปรโมทซึ่งประกอบด้วย ID ของแอพ หากต้องการรับ ID ของแอพ ให้ลงทะเบียนแอพบน Facebook
Meta จะให้ข้อมูลเชิงลึกรายวันแบบผลรวมเกี่ยวกับข้อมูลทางประชากรศาสตร์ของบุคคลที่ติดตั้งแอพของคุณ หากต้องการเรียกดูข้อมูลนี้ คุณควรใช้โทเค็นการเข้าถึงแอพและทำการสืบค้น
https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?&access_token={ACCESS_TOKEN}
นอกจากนี้ คุณยังสามารถแยกย่อยสถิติได้โดยการระบุพารามิเตอร์ URL เพิ่มเติม นั่นคือ breakdown
ซึ่งเทียบเท่ากับค่าใดค่าหนึ่งต่อไปนี้ ทั้งนี้ คุณยังไม่สามารถรวมข้อมูลแยกย่อยเข้าด้วยกันได้ในขณะนี้
ชื่อ | คำอธิบาย |
---|---|
| แยกย่อยสถิติของคุณตามอายุและเพศของกลุ่มเป้าหมาย |
| แยกย่อยสถิติของคุณตามประเทศของกลุ่มเป้าหมาย |
| แยกย่อยสถิติของคุณตามรูปแบบภาษาของกลุ่มเป้าหมาย |
ตัวอย่าง:
https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?breakdown=gender_age&access_token={ACCESS_TOKEN} https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?breakdown=country&access_token={ACCESS_TOKEN} https://graph.facebook.com/{API_VERSION}/{APP_ID}/insights/application_mobile_app_installs?breakdown=locale&access_token={ACCESS_TOKEN}
ขั้นตอนที่ 1 สร้างโพสต์บนเพจที่มีรูปภาพ โปรดทราบว่าคุณควรใช้ PAGE_ACCESS_TOKEN
และเซสชั่น API เพจเพื่อสร้างโพสต์บนเพจ
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$params = array(
'message' => 'Sign up today',
'picture' => '<IMAGE_URL>',
'link' => '<LINK>',
'published' => 1,
'call_to_action' => array(
'type' => 'SIGN_UP',
'value' => array(
'link' => '<LINK>',
),
),
);
$data = Api::instance()->call(
'/'.<PAGE_ID>.'/feed',
RequestInterface::METHOD_POST,
$params)->getContent();
from facebookads import FacebookAdsApi
params = {
'massage': 'Sign up today.',
'picture': '<IMAGE_URL>',
'link': '<LINK>',
'published': 1,
'call_to_action': {
'type': 'SIGN_UP',
'value': {
'link': '<LINK>',
},
},
}
data = FacebookAdsApi.get_default_api().\
call('POST', (<PAGE_ID>, 'feed'), params=params)
curl \
-F 'message=Sign up today' \
-F 'picture=<IMAGE_URL>' \
-F 'link=<LINK>' \
-F 'published=1' \
-F 'call_to_action={"type":"SIGN_UP","value":{"link":"<LINK>"}}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PAGE_ID>/feed
ขั้นตอนที่ 2 สร้างชิ้นงานโฆษณา ({STORY_ID}
อยู่ในรูปแบบของ '{PAGE_ID}_{POST_ID}'
)
curl -X POST \
-F 'object_story_id="<PAGE_ID>_<POST_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives
ขั้นตอนที่ 3 ใช้ชิ้นงานโฆษณาในโฆษณา
curl -X POST \
-F 'name="My AdGroup with Redownload"' \
-F 'adset_id="<AD_SET_ID>"' \
-F 'creative={
"creative_id": "<CREATIVE_ID>"
}' \
-F 'redownload=1' \
-F 'status="PAUSED"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/ads
ขั้นตอนที่ 1 สร้างโพสต์บนเพจที่มีรูปภาพ โปรดทราบว่าคุณควรใช้ PAGE_ACCESS_TOKEN
และเซสชั่น API เพจเพื่อสร้างโพสต์บนเพจ
curl -X POST \
-F 'message="This is a test message"' \
-F 'call_to_action={
"type": "BUY_NOW",
"value": {
"link": "{app-store-url}",
"app_link": "{deep-link}"
}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/{page-id}/feed
ขั้นตอนที่ 2 สร้างชิ้นงานโฆษณา
curl -X POST \
-F 'object_story_id="<PAGE_ID>_<POST_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives
ขั้นตอนที่ 3 ตั้งค่าการประมูลที่ชุดโฆษณา โดยมีการปรับให้เหมาะสมเพื่อให้เกิดการคลิกและมีการชำระเงินสำหรับอิมเพรสชั่น
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Targeting;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'LifetimeBudgetSet',
AdsetFields::LIFETIME_BUDGET => 100000,
AdSetFields::BID_AMOUNT => 500,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
AdSetFields::OPTIMIZATION_GOAL => AdSetOptimizationGoalValues::LINK_CLICKS,
AdSetFields::PROMOTED_OBJECT => array(
'application_id' => <APP_ID>,
'object_store_url' => '<APP_STORE_URL>',
),
AdSetFields::TARGETING => (new Targeting())->setData(array(
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('US'),
),
TargetingFields::USER_OS => array(
'IOS',
),
TargetingFields::PUBLISHER_PLATFORMS => array(
'facebook',
'audience_network',
),
TargetingFields::FACEBOOK_POSITIONS => array('feed'),
)),
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::END_TIME =>
(new \DateTime("+1 week"))->format(\DateTime::ISO8601),
));
$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: 'LifetimeBudgetSet',
AdSet.Field.campaign_id: <CAMPAIGN_ID>,
AdSet.Field.lifetime_budget: 10000,
AdSet.Field.start_time: int(time.time()),
AdSet.Field.end_time: int(time.time() + 100000),
AdSet.Field.optimization_goal: AdSet.OptimizationGoal.link_clicks,
AdSet.Field.billing_event: AdSet.BillingEvent.impressions,
AdSet.Field.bid_amount: 500,
AdSet.Field.promoted_object: {
'application_id': <APP_ID>,
'object_store_url': '<APP_STORE_URL>',
},
AdSet.Field.targeting: {
'geo_locations': {
'countries': ['US'],
},
'user_os': ['iOS'],
Targeting.Field.publisher_platforms: ['facebook', 'audience_network'],
Targeting.Field.facebook_positions: ['feed'],
},
})
adset.remote_create(params={
'status': AdSet.Status.paused,
})
curl \
-F 'name=LifetimeBudgetSet' \
-F 'lifetime_budget=100000' \
-F 'bid_amount=500' \
-F 'billing_event=IMPRESSIONS' \
-F 'optimization_goal=LINK_CLICKS' \
-F 'promoted_object={"application_id":"<APP_ID>","object_store_url":"<APP_STORE_URL>"}' \
-F 'targeting={
"facebook_positions": ["feed"],
"geo_locations": {"countries":["US"]},
"publisher_platforms": ["facebook","audience_network"],
"user_os": ["IOS"]
}' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'end_time=2018-02-06T04:45:30+0000' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets
ขั้นตอนที่ 4 ใช้ชิ้นงานโฆษณาในโฆษณา
use FacebookAds\Object\Ad;
use FacebookAds\Object\Fields\AdFields;
$data = array(
AdFields::NAME => 'My Ad',
AdFields::ADSET_ID => <AD_SET_ID>,
AdFields::CREATIVE => array(
'creative_id' => <CREATIVE_ID>,
),
);
$ad = new Ad(null, 'act_<AD_ACCOUNT_ID>');
$ad->setData($data);
$ad->create(array(
'redownload' => 1,
));
from facebookads.adobjects.ad import Ad
ad = Ad(parent_id='act_<AD_ACCOUNT_ID>')
ad[Ad.Field.name] = 'My Ad'
ad[Ad.Field.adset_id] = <AD_SET_ID>
ad[Ad.Field.creative] = {'creative_id': <CREATIVE_ID>}
ad[Ad.Field.redownload] = True
ad.remote_create(params={
'status': Ad.Status.paused,
})
Ad ad = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAd()
.setName("My Ad")
.setAdsetId(<AD_SET_ID>)
.setCreative(
new AdCreative()
.setFieldId(<CREATIVE_ID>)
)
.setRedownload(true)
.execute();
String ad_id = ad.getId();
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'redownload=1' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads
ขั้นตอนที่ 1 สร้างโพสต์บนเพจที่มีรูปภาพ โปรดทราบว่าคุณควรใช้ PAGE_ACCESS_TOKEN
และเซสชั่น API เพจเพื่อสร้างโพสต์บนเพจ
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$params = array(
'message' => 'Check out this App today. Available on iTunes.',
'published' => 1,
'link' => '<APP_STORE_URL>',
'picture' => '<IMAGE_URL>',
'call_to_action' => array(
'type' => 'LEARN_MORE',
'value' => array(
'link' => '<APP_STORE_URL>',
'app_link' => '<APP_DEEP_LINK>',
),
),
);
$data = Api::instance()->call(
'/'.<PAGE_ID>.'/feed',
RequestInterface::METHOD_POST,
$params)->getContent();
from facebookads import FacebookAdsApi
params = {
'massage': 'Check out this App today. Available on iTunes.',
'picture': '<IMAGE_URL>',
'link': '<APP_STORE_URL>',
'published': 1,
'call_to_action': {
'type': 'LEARN_MORE',
'value': {
'link': '<APP_STORE_URL>',
'app_link': '<APP_DEEP_LINK>',
},
},
}
path = "/{}/feed".format(<PAGE_ID>)
data = FacebookAdsApi.get_default_api().call('POST', (path,), params=params)
curl \
-F 'message=Check out this App today. Available on iTunes.' \
-F 'published=1' \
-F 'link=<APP_STORE_URL>' \
-F 'picture=<IMAGE_URL>' \
-F 'call_to_action={
"type": "LEARN_MORE",
"value": {"link":"<APP_STORE_URL>","app_link":"<APP_DEEP_LINK>"}
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PAGE_ID>/feed
ขั้นตอนที่ 2 สร้างชิ้นงานโฆษณา
curl -X POST \
-F 'object_story_id="<PAGE_ID>_<POST_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives
ขั้นตอนที่ 3 ตั้งค่าการประมูลที่ชุดโฆษณา โดยมีการปรับให้เหมาะสมเพื่อให้เกิดเหตุการณ์ในแอพและมีการชำระเงินสำหรับอิมเพรสชั่น
โปรดทราบว่าคุณจะต้องตั้งค่า promoted_object
ของชุดโฆษณาให้รวม custom_event_type
ด้วยเพื่อให้มีการปรับให้เหมาะสม โปรดดูรายละเอียดเพิ่มเติมที่เอกสารเกี่ยวกับชุดโฆษณา
curl -X POST \
-F 'name="A CPA Ad Set optimized for App Events"' \
-F 'campaign_id="<AD_CAMPAIGN_ID>"' \
-F 'daily_budget=300' \
-F 'start_time="2024-11-28T11:35:06-0800"' \
-F 'end_time="2024-12-05T11:35:06-0800"' \
-F 'billing_event="IMPRESSIONS"' \
-F 'optimization_goal="OFFSITE_CONVERSIONS"' \
-F 'bid_amount=100' \
-F 'status="PAUSED"' \
-F 'promoted_object={
"application_id": "<APP_ID>",
"object_store_url": "<APP_STORE_URL>",
"custom_event_type": "PURCHASE"
}' \
-F 'targeting={
"facebook_positions": [
"feed"
],
"geo_locations": {
"countries": [
"US"
]
},
"user_os": [
"iOS"
]
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adsets
ขั้นตอนที่ 4 ใช้ชิ้นงานโฆษณาในโฆษณา
use FacebookAds\Object\Ad;
use FacebookAds\Object\Fields\AdFields;
$data = array(
AdFields::NAME => 'My Ad',
AdFields::ADSET_ID => <AD_SET_ID>,
AdFields::CREATIVE => array(
'creative_id' => <CREATIVE_ID>,
),
);
$ad = new Ad(null, 'act_<AD_ACCOUNT_ID>');
$ad->setData($data);
$ad->create(array(
'redownload' => 1,
));
from facebookads.adobjects.ad import Ad
ad = Ad(parent_id='act_<AD_ACCOUNT_ID>')
ad[Ad.Field.name] = 'My Ad'
ad[Ad.Field.adset_id] = <AD_SET_ID>
ad[Ad.Field.creative] = {'creative_id': <CREATIVE_ID>}
ad[Ad.Field.redownload] = True
ad.remote_create(params={
'status': Ad.Status.paused,
})
Ad ad = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAd()
.setName("My Ad")
.setAdsetId(<AD_SET_ID>)
.setCreative(
new AdCreative()
.setFieldId(<CREATIVE_ID>)
)
.setRedownload(true)
.execute();
String ad_id = ad.getId();
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'redownload=1' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads
โปรดทราบว่าคุณควรใช้ PAGE_ACCESS_TOKEN
และเซสชั่น API เพจเพื่อสร้างโพสต์บนเพจ
curl \
-F 'name=My Video' \
-F 'message=Check out this app!' \
-F 'thumbnail=<APP_STORE_URL>' \
-F 'published=0' \
-F 'call_to_action={"type":"INSTALL_MOBILE_APP","value":{"link":"<APP_STORE_URL>"}}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
curl \
-F 'name=My Video' \
-F 'message=Check out this app!' \
-F 'thumbnail=<APP_STORE_URL>' \
-F 'published=0' \
-F 'call_to_action={
"type": "LEARN_MORE",
"value": {"link":"<APP_STORE_URL>","app_link":"<APP_DEEP_LINK>"}
}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
curl \
-F 'name=My Video' \
-F 'message=Check out this app!' \
-F 'thumbnail=<THUMBNAIL_PATH>' \
-F 'published=0' \
-F 'call_to_action={"type":"PLAY_GAME","value":{"link":"<THUMBNAIL_PATH>"}}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
curl \
-F 'message=Buy coins now!' \
-F 'picture=<IMAGE_URL>' \
-F 'link=<LINK>' \
-F 'published=1' \
-F 'call_to_action={"type":"BUY_NOW","value":{"link":"<LINK>","product_link":"<PRODUCT_LINK>"}}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/feed
curl \
-F 'name=My Video' \
-F 'message=Buy coins now!' \
-F 'thumbnail=<THUMBNAIL_PATH>' \
-F 'published=0' \
-F 'call_to_action={
"type": "BUY_NOW",
"value": {"link":"<THUMBNAIL_PATH>","product_link":"<THUMBNAIL_PATH>"}
}' \
-F 'source=@<VIDEO_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<PAGE_ID>/videos
โฆษณาแค็ตตาล็อก Advantage+ สามารถช่วยกระตุ้นให้ผู้ใช้ติดตั้งแอพบนมือถือของคุณได้ ซึ่งทำให้คุณสามารถกำหนดเป้าหมายผู้ใช้ซ้ำด้วยโฆษณาเพื่อการติดตั้งบนมือถือได้ โดยอิงตามพฤติกรรมของผู้ใช้
ขั้นตอนที่ 1 สร้างแคมเปญสำหรับแค็ตตาล็อกสินค้าของคุณ
curl -X POST \
-F 'name="App Installs Campaign with Dynamic Product Ads"' \
-F 'objective="OUTCOME_APP_PROMOTION"' \
-F 'status="PAUSED"' \
-F 'special_ad_categories=[]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns
ขั้นตอนที่ 2 สร้างชุดโฆษณาสำหรับชุดผลิตภัณฑ์ที่เฉพาะเจาะจงภายใต้แค็ตตาล็อกสินค้าข้างต้น
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'Mobile App Installs Ad Set with Dynamic Product Ads',
AdSetFields::BID_AMOUNT => 3000,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
AdSetFields::OPTIMIZATION_GOAL => AdSetOptimizationGoalValues::APP_INSTALLS,
AdSetFields::DAILY_BUDGET => 15000,
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::TARGETING => array(
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('US'),
),
TargetingFields::PUBLISHER_PLATFORMS => array(
'facebook',
'audience_network',
),
TargetingFields::DEVICE_PLATFORMS => array('mobile'),
TargetingFields::USER_OS => array(
'IOS',
),
TargetingFields::DYNAMIC_AUDIENCE_IDS => array(<PRODUCT_AUDIENCE_ID>),
),
AdSetFields::PROMOTED_OBJECT => array(
'product_set_id' => <PRODUCT_SET_ID>,
'application_id' => <APP_ID>,
'object_store_url' => '<APP_STORE_URL>',
),
));
$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.update({
AdSet.Field.name: 'Mobile App Installs Ad Set with Dynamic Product Ads',
AdSet.Field.promoted_object: {
'product_set_id': product_set_id,
'application_id': <APP_ID>,
'object_store_url': '<APP_STORE_URL>',
},
AdSet.Field.campaign_id: <CAMPAIGN_ID>,
AdSet.Field.daily_budget: 15000,
AdSet.Field.optimization_goal: AdSet.OptimizationGoal.app_installs,
AdSet.Field.billing_event: AdSet.BillingEvent.impressions,
AdSet.Field.bid_amount: 3000,
AdSet.Field.targeting: {
Targeting.Field.geo_locations: {
'countries': ['US'],
},
Targeting.Field.publisher_platforms: ['facebook', 'audience_network'],
Targeting.Field.device_platforms: ['mobile'],
Targeting.Field.user_os: [
'IOS',
],
Targeting.Field.dynamic_audience_ids: [
<PRODUCT_AUDIENCE_ID>,
],
},
})
adset.remote_create(params={
'status': AdSet.Status.paused,
})
curl \
-F 'name=Mobile App Installs Ad Set with Dynamic Product Ads' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'optimization_goal=APP_INSTALLS' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting={
"geo_locations": {"countries":["US"]},
"publisher_platforms": ["facebook","audience_network"],
"device_platforms": ["mobile"],
"user_os": ["IOS"],
"dynamic_audience_ids": ["<PRODUCT_AUDIENCE_ID>"]
}' \
-F 'promoted_object={
"product_set_id": "<PRODUCT_SET_ID>",
"application_id": "<APP_ID>",
"object_store_url": "<APP_STORE_URL>"
}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/adsets
ขั้นตอนที่ 3 สร้างชิ้นงานโฆษณาแค็ตตาล็อก Advantage+ โดยใช้เทมเพลต
curl -X POST \
-F 'name="Advantage+ catalog ads template creative sample"' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"template_data": {
"call_to_action": {
"type": "INSTALL_MOBILE_APP",
"value": {
"link": "http://www.example.com/appstoreurl"
}
},
"message": "Test {{product.name | titleize}}",
"link": "http://www.example.com/appstoreurl",
"name": "Headline {{product.price}}",
"description": "Description {{product.description}}"
}
}' \
-F 'product_set_id="<PRODUCT_SET_ID>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/adcreatives
ขั้นตอนที่ 4 ใช้ชิ้นงานโฆษณาข้างต้นในโฆษณา
use FacebookAds\Object\Ad;
use FacebookAds\Object\Fields\AdFields;
$data = array(
AdFields::NAME => 'My Ad',
AdFields::ADSET_ID => <AD_SET_ID>,
AdFields::CREATIVE => array(
'creative_id' => <CREATIVE_ID>,
),
);
$ad = new Ad(null, 'act_<AD_ACCOUNT_ID>');
$ad->setData($data);
$ad->create(array(
'redownload' => 1,
));
from facebookads.adobjects.ad import Ad
ad = Ad(parent_id='act_<AD_ACCOUNT_ID>')
ad[Ad.Field.name] = 'My Ad'
ad[Ad.Field.adset_id] = <AD_SET_ID>
ad[Ad.Field.creative] = {'creative_id': <CREATIVE_ID>}
ad[Ad.Field.redownload] = True
ad.remote_create(params={
'status': Ad.Status.paused,
})
Ad ad = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAd()
.setName("My Ad")
.setAdsetId(<AD_SET_ID>)
.setCreative(
new AdCreative()
.setFieldId(<CREATIVE_ID>)
)
.setRedownload(true)
.execute();
String ad_id = ad.getId();
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'redownload=1' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads
curl \ -X POST \ -F "name=<name>" \ -F "source=<>" \ -F "access_token=<access_token>" \ "https://graph.facebook.com/<API_VERSION>/act_<account_id>/adplayables"
name
: ชื่อที่แบ่งแยกองค์ประกอบของโฆษณาออกจากโฆษณาแบบทดลองเล่นอื่นๆ ในบัญชีโฆษณา เช่น {ad_name}
-> {playable_asset_name}
source
: พาธที่สมบูรณ์ของไฟล์บนเครื่องภายในระบบของคุณaccess_token
: สามารถสร้างจาก Graph API Explorer ได้คุณสามารถเพิ่มแท็กเมตาดาต้า 2 รายการไปยังไฟล์ HTML 5 ของโฆษณาแบบทดลองเล่นได้ ซึ่งช่วยให้ Meta สามารถระบุที่มาของการทดลองเล่นในโฆษณาให้กับแอพของคุณได้
... <head> ... <meta name="ref-application-id" content="<YOUR_APP_ID>"> <meta name="ref-asset-id" content="<YOUR_ASSET_ID>"> ... </head> ...
curl \ -F 'name=Sample Creative' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "video_data": { "call_to_action": {"type":"INSTALL_MOBILE_APP","value":{"application":<APP_ID>,"link":"<APP_STORE_URL>"}}, "image_url": "<THUMBNAIL_URL>", "link_description": "try it out", "video_id": "<VIDEO_ID>" } }' \ -F 'playable_asset_id=<PLAYABLE_ASSET_ID>' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives
curl \ -F 'name=My Ad' \ -F 'status=ACTIVE' \ -F 'adset_id=<AD_SET_ID>' \ -F 'creative={"creative_id":"<CREATIVE_ID>"}' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ads
โปรดดูการปรับให้เหมาะสมเพื่อให้เกิดเหตุการณ์ในแอพสำหรับโฆษณาแอพ