您可使用 Facebook 廣告與您的既有顧客交流,並觸及新的客群。各指南說明 Facebook 廣告產品,協助您達成廣告目標。廣告單位分為數種類型,各有不同的外觀、版位及廣告創意選項。如需瞭解以廣告單位為廣告創意內容的準則,請參閱 Facebook 廣告指南。
廣告創意物件包含以視覺方式呈現廣告的所有資料。API 中列出了所有可供刊登的 Facebook 廣告類型,您可到這裡查看。
如果行銷活動的目標為粉絲專頁貼文互動,您現在可建立用於推廣粉絲專頁貼文的廣告。我們視這種廣告為粉絲專頁貼文廣告。粉絲專頁貼文廣告必須要有一個 object_story_id
欄位,這是粉絲專頁貼文的 id
屬性。詳情請參閱廣告創意參考資料。
廣告創意包含三個部分:
若要建立廣告創意物件,請發出以下呼叫:
對 API 呼叫的回應是廣告創意物件的 id
。請儲存這項資料以用於廣告物件:
廣告創意的文字、圖像大小和圖像長寬比,以及廣告創意的其他方面均受到規範限制。請參閱廣告指南。
在廣告 API 中,除了 id
之外,您必須明確要求每一個想要擷取的欄位。每個物件的參考資料均有章節說明如何讀回物件,並列出可讀取的欄位。以廣告創意來說,就是與建立物件時指定的欄位相同,再加上 id
。
版位是指廣告在 Facebook 上的刊登位置,例如桌面版動態消息、行動版動態消息或右欄。請參閱廣告產品指南。
我們鼓勵您在各種可用的廣告版位上刊登廣告。Facebook 的廣告競價旨在以儘可能低的成本,為最有可能推動行銷活動成果的廣告版位投遞廣告曝光次數。
若要利用此最佳化,最簡單的方法就是讓此欄位保留空白。您也可以在廣告組合的 target_spec 中,選擇特定的廣告版位。
以下範例為粉絲專頁貼文廣告。這類廣告可用的廣告版位包括行動版動態消息、桌面版動態消息,以及 Facebook 右欄。請參閱 API 的廣告版位選項。若您選擇的 page_type
是 desktopfeed
和 rightcolumn
,系統就會在桌面版動態消息和右欄版位刊登廣告。在這個廣告組合下方建立的任何廣告都僅有桌面版版位。
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Targeting;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'Desktop Ad Set',
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::DAILY_BUDGET => 10000,
AdSetFields::TARGETING => (new Targeting())->setData(array(
TargetingFields::PUBLISHER_PLATFORMS => array(
'facebook',
'audience_network',
),
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('BR'),
),
)),
AdSetFields::OPTIMIZATION_GOAL =>
AdSetOptimizationGoalValues::POST_ENGAGEMENT,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::POST_ENGAGEMENT,
AdSetFields::BID_AMOUNT => 1500,
));
$adset->create(array(
AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));
from facebookads.adobjects.adset import AdSet
from facebookads.adobjects.targeting import Targeting
adset = AdSet(parent_id='act_<AD_ACCOUNT_ID>')
adset[AdSet.Field.name] = 'Desktop Ad Set'
adset[AdSet.Field.campaign_id] = <CAMPAIGN_ID>
adset[AdSet.Field.daily_budget] = 10000
adset[AdSet.Field.targeting] = {
Targeting.Field.publisher_platforms: ['facebook', 'audience_network'],
Targeting.Field.facebook_positions: ['feed'],
Targeting.Field.geo_locations: {
'countries': ['BR'],
},
}
adset[AdSet.Field.optimization_goal] = AdSet.OptimizationGoal.post_engagement
adset[AdSet.Field.billing_event] = AdSet.BillingEvent.post_engagement
adset[AdSet.Field.bid_amount] = 1500
adset.remote_create(params={
'status': AdSet.Status.paused,
})
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
.setName("Desktop Ad Set")
.setCampaignId(<CAMPAIGN_ID>)
.setDailyBudget(10000L)
.setTargeting(
new Targeting()
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("BR"))
)
.setFieldPublisherPlatforms(Arrays.asList("facebook", "audience_network"))
)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_POST_ENGAGEMENT)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_POST_ENGAGEMENT)
.setBidAmount(1500L)
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();
String ad_set_id = adSet.getId();
curl \
-F 'name=Desktop Ad Set' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'daily_budget=10000' \
-F 'targeting={
"geo_locations": {"countries":["BR"]},
"publisher_platforms": ["facebook","audience_network"]
}' \
-F 'optimization_goal=POST_ENGAGEMENT' \
-F 'billing_event=POST_ENGAGEMENT' \
-F 'bid_amount=1500' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets
您可透過兩種方式預覽廣告:利用廣告預覽 API 或廣告預覽外掛程式。
共有三種方式可利用 API 產生預覽:
根據預覽 API 參考文件,必要的最基本 API 呼叫如下:
廣告創意規格為建立廣告創意時,每個必要欄位及其值的陣列。
廣告創意呼叫目前類似如下所示:
在預覽 API 呼叫中採用 object_story_id
:
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdPreviewFields;
use FacebookAds\Object\Fields\AdCreativeFields;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->getGeneratePreviews(array(), array(
AdPreviewFields::CREATIVE => array(
AdCreativeFields::OBJECT_STORY_ID => <POST_ID>,
),
AdPreviewFields::AD_FORMAT => '<FORMAT>',
));
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adcreative import AdCreative
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'creative': {
AdCreative.Field.object_story_id: '<POST_ID>',
},
'ad_format': '<FORMAT>',
}
account.get_generate_previews(params=params)
APINodeList<AdPreview> adPreviews = new AdAccount(act_<AD_ACCOUNT_ID>, context).getGeneratePreviews()
.setCreative(
new AdCreative()
.setFieldObjectStoryId(<OBJECT_STORY_ID>)
)
.setAdFormat(<FORMAT>)
.execute();
curl -G \
-d 'creative={"object_story_id":"<POST_ID>"}' \
-d 'ad_format=<FORMAT>' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/generatepreviews
ad_format
可用的值與 page_types
略有不同。在此情境中,我們選擇的是桌面版動態消息和 Facebook 右欄。這代表您必須發出兩次 API 呼叫,才能分別產生各版位的預覽:
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdPreviewFields;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\Values\AdPreviewAdFormatValues;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->getGeneratePreviews(array(), array(
AdPreviewFields::CREATIVE => array(
AdCreativeFields::OBJECT_STORY_ID => <POST_ID>,
),
AdPreviewFields::AD_FORMAT => AdPreviewAdFormatValues::RIGHT_COLUMN_STANDARD,
));
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adpreview import AdPreview
from facebookads.adobjects.adcreative import AdCreative
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'creative': {
AdCreative.Field.object_story_id: '<POST_ID>',
},
'ad_format': AdPreview.AdFormat.right_column_standard,
}
account.get_generate_previews(params=params)
APINodeList<AdPreview> adPreviews = new AdAccount(act_<AD_ACCOUNT_ID>, context).getGeneratePreviews()
.setCreative(
new AdCreative()
.setFieldObjectStoryId(<OBJECT_STORY_ID>)
)
.setAdFormat(AdPreview.EnumAdFormat.VALUE_RIGHT_COLUMN_STANDARD)
.execute();
curl -G \
-d 'creative={"object_story_id":"<POST_ID>"}' \
-d 'ad_format=RIGHT_COLUMN_STANDARD' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/generatepreviews
回應為 iFrame,有效時間為 24 小時。