Tự động quảng cáo danh sách cung ứng du lịch của bạn trên Facebook. Quảng cáo du lịch trên Facebook tận dụng tín hiệu ý định trên nhiều thiết bị để tự động quảng cáo các lựa chọn du lịch phù hợp trong danh sách cung ứng của bạn bằng nội dung độc đáo trên Facebook.
Quảng cáo du lịch hỗ trợ Quảng cáo khách sạn, Quảng cáo chuyến bay và Quảng cáo điểm đến.
Hướng dẫn này giả định:
Quảng cáo du lịch hỗ trợ nhiều chiến lược nhắm mục tiêu. Bạn có thể thúc đẩy các mục tiêu kinh doanh khác nhau bằng cách kết hợp đúng đối tượng với đúng nhóm sản phẩm:
Nhắm mục tiêu lại - Hiển thị khách sạn, điểm đến hoặc chuyến bay phù hợp cho những người đã truy cập vào trang web hoặc ứng dụng của bạn để tìm kiếm những thông tin này.
Bán chéo và bán nâng cấp - Nhắm mục tiêu các khách sạn phù hợp đến những người đã mua vé máy bay hoặc bán nâng cấp lựa chọn ưu tiên khi lên máy bay hoặc lựa chọn chỗ ngồi.
Tìm kiếm khách hàng tiềm năng - Mở rộng phạm vi tiếp cận của quảng cáo và tìm khách hàng mới bằng cách nhắm mục tiêu đến đối tượng tiềm năng.
Khi tạo Quảng cáo du lịch, bạn sẽ làm theo quy trình giống với khi thiết lập bất kỳ loại quảng cáo nào khác trên Facebook thông qua API:
Quảng cáo du lịch sử dụng mục tiêu PRODUCT_CATALOG_SALES
. Hãy chỉ định một danh mục du lịch trong promoted_object
ở cấp độ chiến dịch:
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
Khi đã có chiến dịch và campaign_id
, bạn có thể tạo nhóm quảng cáo. Nhóm quảng cáo sẽ xác định các tùy chọn đặt giá thầu và nhắm mục tiêu cho quảng cáo của bạn.
Để nhắm mục tiêu lại khách truy cập trang web hoặc ứng dụng, hãy sử dụng đối tượng động thuộc cùng một loại với nhóm sản phẩm mà bạn đang quảng cáo. Ví dụ: quảng cáo nhóm khách sạn cho đối tượng khách sạn, nhóm chuyến bay cho đối tượng chuyến bay và nhóm điểm đến cho đối tượng điểm đến.
Để bán chéo và bán nâng cấp cho những người đã mua hàng trên trang web và/hoặc ứng dụng của bạn, hãy sử dụng một đối tượng động gồm những người đã mua hàng, sau đó quảng cáo cho họ các lựa chọn du lịch từ một danh mục khác. Ví dụ: nhắm mục tiêu một nhóm khách sạn hoặc một nhóm chuyến bay khác có thể lựa chọn chỗ ngồi đến đối tượng mua vé máy bay.
OFFSITE_CONVERSIONS
thông qua các tín hiệu thể hiện ý định một cách rõ ràng hơn như Purchase
hoặc InitiateCheckout
. Hãy xem thêm phần Quảng cáo danh mục Advantage+, Nhắm mục tiêu đối tượng rộng
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
Quảng cáo du lịch không hỗ trợ quy cách nhắm mục tiêu đối tượng động nội tuyến trong Nhóm quảng cáo. Trước tiên, bạn phải tạo một đối tượng riêng biệt.
Bạn có thể sử dụng thẻ mẫu trong nội dung quảng cáo của mình cho Quảng cáo du lịch. Khi hiển thị quảng cáo của bạn, Facebook sẽ thay các thẻ mẫu bằng lựa chọn du lịch thực tế của người dùng. Bạn có thể sử dụng thẻ mẫu trong chính quảng cáo đó cũng như trong URL mà ai đó nhìn thấy sau khi họ nhấp vào quảng cáo.
Hãy sử dụng trường template_url_spec
để chỉ định URL xuất hiện sau khi ai đó nhấp vào quảng cáo. Nếu bạn không cung cấp URL hoặc chúng tôi không thể lấy URL đó khi hiển thị quảng cáo, chúng tôi sẽ hiển thị URL của danh mục. Đối với Quảng cáo chuyến bay, trường này sẽ là trường bắt buộc nếu bạn không cung cấp URL trong danh mục.
Bạn có thể hiển thị một mặt hàng hoặc một thẻ quay vòng có nhiều mặt hàng. Đối với quảng cáo một mặt hàng, bạn có thể hiển thị nhiều hình ảnh của cùng một mặt hàng trong thẻ quay vòng nếu danh mục của bạn chứa nhiều hình ảnh cho mỗi mặt hàng. Bạn cũng có thể hiển thị thẻ tĩnh cùng với thẻ động. Để biết thêm thông tin về các tùy chọn nội dung, hãy xem phần Quảng cáo danh mục Advantage+, Tạo mẫu nội dung.
Dưới đây là ví dụ minh họa cách tạo nội dung quay vòng cho Quảng cáo khách sạn. Quảng cáo điểm đến và Quảng cáo chuyến bay sẽ có cách thiết lập tương tự nhau.
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 =>
'Book your upcoming stay in {{hotel.city}}',
AdCreativeLinkDataFields::NAME => '{{hotel.name | titleize}}',
AdCreativeLinkDataFields::LINK => '<LINK>',
AdCreativeLinkDataFields::DESCRIPTION =>
'{{hotel.description}}',
AdCreativeLinkDataFields::ADDITIONAL_IMAGE_INDEX => 0,
AdCreativeLinkDataFields::CALL_TO_ACTION => array(
'type' => AdCreativeCallToActionTypeValues::BOOK_TRAVEL,
),
)),
));
$creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>');
$creative->setData(array(
AdCreativeFields::NAME => 'Dynamic Ad Template Creative Sample',
AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
AdCreativeFields::TEMPLATE_URL_SPEC =>
array(
'config' => array(
'app_id' => '123456789012345',
),
'ios' => array(
'url' => 'example://home/hotel'.
'?id={{hotel.hotel_id | urlencode}}'.
'&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}'.
'&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}',
),
'web' => array(
'url' => 'http://www.example.com/hotel'.
'?id={{hotel.hotel_id | urlencode}}'.
'&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}'.
'&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}',
)
),
AdCreativeFields::PRODUCT_SET_ID => <PRODUCT_SET_ID>,
));
$creative->create();
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativeobjectstoryspec \
import AdCreativeObjectStorySpec
story = AdCreativeObjectStorySpec()
story[story.Field.page_id] = <PAGE_ID>
story[story.Field.template_data] = {
'message': 'Book your upcoming stay in {{hotel.city}}',
'name': '{{hotel.name | titleize}}',
'link': '<LINK>',
'description': '{{hotel.description}}',
'additional_image_index': 0,
'call_to_action': {
'type': 'BOOK_TRAVEL',
},
}
creative = AdCreative(parent_id='act_<AD_ACCOUNT_ID>')
creative[AdCreative.Field.name] = 'Dynamic Ad Template Creative Sample'
creative[AdCreative.Field.object_story_spec] = story
template_url = ('http://www.example.com/hotel.aspx?id={{hotel.hotel_id}}'
'&startDate={{trip.checkin_date date_format:Y-m-d}}'
'&endDate={{trip.checkout_date date_format:Y-m-d}}')
creative[AdCreative.Field.template_url] = template_url
creative[AdCreative.Field.product_set_id] = <PRODUCT_SET_ID>
creative.remote_create()
curl \
-F 'name=Dynamic Ad Template Creative Sample' \
-F 'object_story_spec={
"page_id": "<PAGE_ID>",
"template_data": {
"additional_image_index": 0,
"call_to_action": {"type":"BOOK_TRAVEL"},
"description": "{{hotel.description}}",
"link": "<LINK>",
"message": "Book your upcoming stay in {{hotel.city}}",
"name": "{{hotel.name | titleize}}"
}
}' \
-F 'template_url_spec={
"config": {"app_id":"123456789012345"},
"ios": {
"url": "example:\/\/home\/hotel?id={{hotel.hotel_id | urlencode}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}"
},
"web": {
"url": "http:\/\/www.example.com\/hotel?id={{hotel.hotel_id | urlencode}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}"
}
}' \
-F 'product_set_id=<PRODUCT_SET_ID>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives
Cách bán nâng cấp các lựa chọn - chẳng hạn như lựa chọn chỗ ngồi hoặc ưu tiên khi lên máy bay - cho đối tượng đã mua vé máy bay:
PURCHASE
.recommender_settings
của nội dung quảng cáo, hãy chỉ định các sự kiện PURCHASE
để đề xuất quảng cáo.curl \ -F 'name=Advantage+ Catalog Ad Template Creative Up-sell Sample' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "template_data": { "additional_image_index": 0, "call_to_action": {"type":"LEARN_MORE"}, "description": "{{flight.description}}", "link": "<LINK>", "message": "Book extra leg room on your flight from {{flight.origin_city}} to {{flight.destination_city}}", } }' \ -F 'template_url_spec={ "config": {"app_id":"<APP_ID>"}, "ios": { "url": "example:\/\/home\/flight?id={{flight.origin_airport}}&startDate={{trip.departing_departure_date date_format:Y-m-d | urlencode}}&endDate={{trip.returning_departure_date date_format:Y-m-d | urlencode}}" }, "web": { "url": "http:\/\/www.example.com\/flight?id={{flight.origin_airport}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.returning_departure_date date_format:Y-m-d | urlencode}}" } }' \ -F 'product_set_id=<FLIGHT_SET_ID>' \ -F 'recommender_settings'={"preferred_events":["Purchase"]}\ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/VERSION/act_<AD_ACCOUNT_ID>/adcreatives
Lớp phủ cho phép nhà quảng cáo thêm thông tin về giá (dưới dạng giá trực tiếp hoặc phần trăm giảm giá) cho từng mặt hàng trong quảng cáo danh mục Advantage+.
Bạn có thể sử dụng các loại lớp phủ sau đây tùy theo loại danh mục mình dùng trong nhóm quảng cáo:
price
, strikethrough
và % off
price
price
Lưu ý: Tất cả các thẻ mẫu liên quan đến giá cho từng loại danh mục đều được hỗ trợ cho các tùy chọn lớp phủ nêu trên. Để xem thẻ mẫu cho từng loại danh mục, hãy tham khảo phần khách sạn, điểm đến và chuyến bay.
Thông tin về giá được lấy tự động từ cột giá và giá bán trong nguồn cấp dữ liệu. Nhà quảng cáo có thể chọn trong số các phần tùy chỉnh sau đây cho lớp phủ quảng cáo danh mục Advantage+:
TOP_LEFT
, TOP_RIGHT
, BOTTOM_LEFT
và BOTTOM_RIGHT
. Chỉ hỗ trợ góc TOP_LEFT
và TOP_RIGHT
đối với hình tam giác.price
, strikethrough
và % off
. Lưu ý: strikethrough
và % off
chỉ có sẵn cho khách sạn.Tìm hiểu thêm về cách thêm lớp phủ.
curl \ -F 'name=Test Templates in Overlay' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "template_data": { "description": "Description", "link": "<LINK>", "name": "Name: {{hotel.name}}", "message" : "Come visit {{hotel.city}}!", "image_overlay_spec": { "overlay_template":"pill_with_text", "text_font":"droid_serif_regular", "text_type":"strikethrough_price", "position":"top_left", "theme_color":"background_e50900_text_ffffff", "float_with_margin":"true", "text_template_tags": ["{{hotel.price round}}", "{{hotel.sale_price round}}"], } } }' \ -F 'product_set_id=<PRODUCT_SET_ID>' \ -F 'template_url=http://www.example.com' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v2.10/act_897427477067185/adcreatives
Để tạo quảng cáo, hãy sử dụng ad_set_id
và 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
Bạn có thể tạo bản xem trước nội dung Advantage+ cho danh mục bằng API Xem trước quảng cáo. Hãy thêm thông số product_item_ids
để chỉ định mặt hàng nào trong danh mục sẽ hiển thị trong bản xem trước đó.
Tạo bản xem trước cho quảng cáo của bạn bằng API Xem trước quảng cáo. Hãy thêm thông số product_item_ids
để chỉ định mặt hàng nào trong danh mục sẽ xuất hiện trong bản xem trước đó, rồi thêm thông số start_date
và end_date
để chỉ định các ngày cụ thể.
curl -X GET \
-d 'ad_format="DESKTOP_FEED_STANDARD"' \
-d 'product_item_ids=[
"<PRODUCT_ITEM_ID>"
]' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<CREATIVE_ID>/previews
Tên và loại trường | Mô tả |
---|---|
loại: |
|
loại: | Hiển thị bản xem trước có tín hiệu thể hiện ý định của người dùng, ví dụ: 24-12-2016.
|
loại: | Hiển thị bản xem trước có tín hiệu thể hiện ý định của người dùng; ví dụ: 01-01-2017.
|
Để tìm nạp Thông tin chi tiết về quảng cáo cho đối tượng du lịch - chẳng hạn như khách sạn, hãy thực hiện lệnh gọi GET
đến /insights
. Lưu ý: Hãy nhớ thêm product_id
vào thông số breakdown
.
Đối với khách sạn và điểm đến, số liệu chia nhỏ product id
sẽ hiển thị cho từng hotel_id
hoặc destination_id
. Đối với chuyến bay, số liệu chia nhỏ product id
sẽ hiển thị origin_airport:destination_airport
.
Để truy xuất bình luận hoặc "Lượt thích" của quảng cáo danh mục Advantage+, hãy sử dụng API Bài viết động.