本指南假設您的目錄和商品組合已準備就緒,而且已在網站或行動應用程式中完成所需車輛事件的設定。如果沒有,請參閱目錄設定和事件設定。
若要建立車輛廣告,您需要 Facebook 粉絲專頁和廣告帳號。
PRODUCT_CATALOG_SALES
作為行銷活動目標。 promoted_object
中,指定車輛目錄。use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;
use FacebookAds\Object\Values\CampaignObjectiveValues;
$campaign = new Campaign(null, 'act_<AD_ACCOUNT_ID>');
$campaign->setData(array(
CampaignFields::NAME => 'Product Catalog Sales Campaign',
CampaignFields::OBJECTIVE => CampaignObjectiveValues::PRODUCT_CATALOG_SALES,
CampaignFields::PROMOTED_OBJECT => array(
'product_catalog_id' => <PRODUCT_CATALOG_ID>,
),
));
$campaign->create(array(
Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
));
from facebookads.adobjects.campaign import Campaign
campaign = Campaign(parent_id='act_<AD_ACCOUNT_ID>')
campaign[Campaign.Field.name] = 'Product Catalog Sales Campaign'
objective = Campaign.Objective.product_catalog_sales
campaign[Campaign.Field.objective] = objective
campaign[Campaign.Field.promoted_object] = {
'product_catalog_id': <PRODUCT_CATALOG_ID>,
}
campaign.remote_create(params={
'status': Campaign.Status.paused,
})
Campaign campaign = new AdAccount(act_<AD_ACCOUNT_ID>, context).createCampaign()
.setName("Product Catalog Sales Campaign Group")
.setObjective(Campaign.EnumObjective.VALUE_PRODUCT_CATALOG_SALES)
.setPromotedObject("{\"product_catalog_id\":\"" + <PRODUCT_CATALOG_ID> + "\"}")
.setStatus(Campaign.EnumStatus.VALUE_PAUSED)
.execute();
String campaign_id = campaign.getId();
curl \
-F 'name=Product Catalog Sales Campaign' \
-F 'objective=PRODUCT_CATALOG_SALES' \
-F 'promoted_object={"product_catalog_id":"<PRODUCT_CATALOG_ID>"}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/campaigns
有了行銷活動和 campaign_id
之後,即可建立廣告組合。廣告組合定義廣告的出價和目標設定選項。
若不在廣告組合層級指定 destination_type
,廣告的預設目的地會是您在目錄中指定的網站網址。
若要建立可將車輛庫存廣告推動至 Facebook 站內流量目的地的廣告組合,請在廣告組合資料中指定 destination_type FACEBOOK
。請參閱內含 Facebook 站內目的地的高效速成+ 目錄廣告。
再次鎖定在您定義的商品組合中查看過車輛的網站造訪者。
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 => 'Product Catalog Sales Adset',
AdSetFields::BID_AMOUNT => 3000,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
AdSetFields::OPTIMIZATION_GOAL =>
AdSetOptimizationGoalValues::OFFSITE_CONVERSIONS,
AdSetFields::DAILY_BUDGET => 15000,
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::TARGETING => array(
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('US'),
),
TargetingFields::DYNAMIC_AUDIENCE_IDS => array(<DYNAMIC_AUDIENCE_ID>),
),
AdSetFields::PROMOTED_OBJECT => array(
'product_set_id' => <PRODUCT_SET_ID>,
),
));
$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=ad_account_id)
adset[AdSet.Field.name] = 'Product Catalog Sales Adset'
adset[AdSet.Field.bid_amount] = 3000
adset[AdSet.Field.billing_event] = AdSet.BillingEvent.impressions
adset[AdSet.Field.optimization_goal] = \
AdSet.OptimizationGoal.offsite_conversions
adset[AdSet.Field.daily_budget] = 15000
adset[AdSet.Field.campaign_id] = campaign_id
adset[AdSet.Field.targeting] = {
Targeting.Field.geo_locations: {
Targeting.Field.countries: ['US'],
},
Targeting.Field.dynamic_audience_ids: [
dynamic_audience_id,
],
}
adset[AdSet.Field.promoted_object] = {
'product_set_id': product_set_id,
}
adset.remote_create()
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
.setName("Product Catalog Sales Adset")
.setBidAmount(3000L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_OFFSITE_CONVERSIONS)
.setDailyBudget(15000L)
.setCampaignId(<CAMPAIGN_ID>)
.setTargeting(
new Targeting()
.setFieldDynamicAudienceIds(Arrays.asList(<DYNAMIC_AUDIENCE_ID>))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
)
)
.setPromotedObject("{\"product_set_id\":\"" + <PRODUCT_SET_ID> + "\"}")
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();
String ad_set_id = adSet.getId();
curl \
-F 'name=Product Catalog Sales Adset' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'optimization_goal=OFFSITE_CONVERSIONS' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting={
"geo_locations": {"countries":["US"]},
"dynamic_audience_ids": ["<DYNAMIC_AUDIENCE_ID>"]
}' \
-F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>"}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets
車輛廣告不支援廣告組合中的內嵌動態廣告受眾目標設定規格。您必須先另外建立廣告受眾。
您可以在車輛廣告的廣告創意中使用範本標籤。Facebook 顯示您的廣告時,會以實際車輛選擇,取代範本標籤。您可以在廣告和網址中使用範本標籤。用戶點擊廣告時,範本標籤就會顯示。
類型 | 名稱 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vehicle.city
、vehicle.dealer_name
、vehicle.description
、vehicle.make
、vehicle.mileage
、vehicle.model
、vehicle.price
、vehicle.region
、vehicle.sale_price
、vehicle.title
、vehicle.url
、vehicle.year
等。{{....}}
搭配範本標籤。{{dealer_name}}
的結帳超值優惠。template_url_spec
欄位指定用戶點擊廣告後所顯示的網址。如果沒有提供網址,或者我們在呈現廣告時無法衍生網址,則會顯示目錄中的網址。如需廣告創意選項的詳細資訊,請參閱建立廣告創意範本。
範例 - 建立車輛廣告的輪播廣告創意
use FacebookAds\Object\AdCreative; use FacebookAds\Object\Fields\AdCreativeFields; use FacebookAds\Object\Fields\AdCreativeLinkDataFields; use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields; use FacebookAds\Object\Values\AdCreativeCallToActionTypeValues; use FacebookAds\Object\AdCreativeObjectStorySpec; use FacebookAds\Object\AdCreativeLinkData; $object_story_spec = new AdCreativeObjectStorySpec(); $object_story_spec->setData(array( AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>, AdCreativeObjectStorySpecFields::TEMPLATE_DATA => (new AdCreativeLinkData())->setData(array( AdCreativeLinkDataFields::MESSAGE => 'Check out these vehicles from {{dealer_name}}', AdCreativeLinkDataFields::NAME => '{{vehicle.year}} {{vehicle.make}} {{vehicle.model}}', AdCreativeLinkDataFields::LINK => '{{vehicle.url}}', AdCreativeLinkDataFields::DESCRIPTION => '{{vehicle.description}}', AdCreativeLinkDataFields::ADDITIONAL_IMAGE_INDEX => 0, AdCreativeLinkDataFields::CALL_TO_ACTION => array( 'type' => AdCreativeCallToActionTypeValues::LEARN_MORE, ), )), )); $creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>'); $creative->setData(array( AdCreativeFields::NAME => 'Advantage+ Catalog Ad Template Creative Sample', AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec, AdCreativeFields::TEMPLATE_URL_SPEC => array( 'web' => array( 'url' => 'http://www.example.com/vehicle'. '?id={{vehicle_id | urlencode}}', ) ), AdCreativeFields::PRODUCT_SET_ID => <PRODUCT_SET_ID>, )); $creative->create();
使用 ad_set_id
和 creative_id
建立廣告。
curl -X POST \
-F 'name="My Ad"' \
-F 'adset_id="<AD_SET_ID>"' \
-F 'creative={
"creative_id": "<CREATIVE_ID>"
}' \
-F 'status="PAUSED"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/ads
您可以使用廣告預覽 API 產生高效速成+ 廣告創意的預覽內容。包含 product_item_ids
參數即可指定要在預覽顯示的目錄項目。
使用廣告預覽 API 產生廣告的預覽內容。包含 product_item_ids
可指定要在預覽中顯示的目錄項目,start_date
和 end_date
可指定特定日期。
use FacebookAds\Object\AdCreative; use FacebookAds\Object\Fields\AdPreviewFields; use FacebookAds\Object\Values\AdPreviewAdFormatValues; $creative = new AdCreative(<CREATIVE_ID>); $preview = $creative->getPreviews(array(), array( AdPreviewFields::AD_FORMAT => AdPreviewAdFormatValues::DESKTOP_FEED_STANDARD, AdPreviewFields::PRODUCT_ITEM_IDS => array( '<VEHICLE_FBID>', ), ));