Promosikan secara otomatis inventaris perjalanan Anda di Facebook. Iklan perjalanan Facebook memanfaatkan sinyal-sinyal tujuan lintas-perangkat untuk mempromosikan opsi perjalanan yang relevan dari inventaris Anda dengan materi iklan unik di Facebook secara otomatis.
Iklan perjalanan mendukung Iklan Hotel, Iklan Penerbangan, dan Iklan Destinasi.
Panduan ini berasumsi:
Iklan perjalanan mendukung beragam strategi penargetan. Anda dapat mendorong berbagai tujuan bisnis dengan memadukan pemirsa yang tepat dengan set produk yang tepat:
Penargetan ulang—Menampilkan hotel, destinasi, atau penerbangan yang relevan kepada orang yang telah mengunjungi situs web atau aplikasi Anda, mencari hotel, destinasi, atau penerbangan.
Cross-selling dan upsell—Targetkan orang-orang yang sudah membeli penerbangan dengan hotel yang relevan, atau upsell boarding prioritas atau pemilihan kursi.
Mencari prospek—Perluas jangkauan iklan Anda dan temukan pelanggan baru dengan menargetkan pemirsa prospek.
Saat Anda membuat iklan Perjalanan, Anda mengikuti proses yang sama seperti yang Anda lakukan saat menyiapkan jenis iklan Facebook lainnya dengan API:
Iklan perjalanan menggunakan tujuan PRODUCT_CATALOG_SALES
. Tentukan katalog perjalanan pada promoted_object
di level kampanye:
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
Setelah Anda membuat kampanye dan campaign_id
, Anda dapat membuat set iklan. Set iklan menentukan opsi penawaran dan penargetan untuk iklan Anda.
Untuk menargetkan ulang pengunjung situs web atau aplikasi, gunakan pemirsa dinamis dari jenis yang sama dengan set produk yang Anda promosikan, sebagai contoh, mempromosikan set hotel ke pemirsa hotel, set penerbangan ke pemirsa penerbangan, dan set destinasi ke pemirsa destinasi.
Untuk melakukan cross-selling dan upsell pada orang yang sudah membeli di situs web dan/atau aplikasi Anda, gunakan pemirsa dinamis yang berisi orang-orang yang sudah melakukan pembelian dan promosikan kepada mereka opsi perjalanan dari katalog lain, contoh: targetkan pemirsa pembelian penerbangan dengan set hotel atau set penerbangan yang menyorot pemilihan kursi.
OFFSITE_CONVERSIONS
dengan sinyal tujuan yang lebih kuat, seperti Purchase
atau InitiateCheckout
. Lihat juga Iklan Katalog Advantage+, Penargetan Pemirsa Luas
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
Iklan perjalanan tidak mendukung spesifikasi penargetan pemirsa dinamis inline di Set Iklan. Anda harus membuat pemirsa secara terpisah terlebih dahulu.
Anda dapat menggunakan tanda template di materi iklan untuk iklan Perjalanan. Saat Facebook menampilkan iklan Anda, kami mengganti tanda template dengan pilihan perjalanan aktual seseorang. Anda dapat menggunakan tanda template di iklan itu sendiri, serta di URL yang dilihat oleh seseorang setelah orang tersebut mengeklik iklan.
Gunakan kolom template_url_spec
untuk menentukan URL yang akan muncul setelah seseorang mengeklik iklan. Jika Anda tidak menyediakannya, kami tidak dapat mengambilnya ketika kami me-render iklan, kami akan menampilkan URL dari katalog. Untuk Iklan Penerbangan, kolom ini wajib diisi jika Anda tidak menyediakan URL di katalog.
Anda dapat menampilkan satu item atau carousel dengan beberapa item. Untuk iklan satu item, Anda dapat menampilkan beberapa gambar item yang sama di carousel, dengan asumsi bahwa katalog berisi beberapa gambar untuk tiap item. Anda juga dapat menampilkan kartu statis dipadukan dengan kartu dinamis. Untuk informasi selengkapnya tentang opsi materi iklan, lihat Iklan Katalog Advantage+, Membuat Template Materi Iklan.
Contoh berikut menunjukkan cara membuat materi iklan carousel untuk Iklan Hotel. Iklan Destinasi dan Iklan Penerbangan memiliki pengaturan yang serupa.
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
Untuk melakukan upsell opsi, seperti pemilihan tempat duduk atau boarding prioritas kepada pemirsa yang membeli penerbangan:
PURCHASE
.recommender_settings
materi iklan, tentukan peristiwa PURCHASE
sebagai cara yang dipilih untuk merekomendasikan iklan.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
Overlay memungkinkan pengiklan menambahkan informasi harga (sebagai harga langsung atau persentase diskon) untuk tiap item dalam iklan katalog Advantage+.
Anda dapat menggunakan jenis overlay berikut, bergantung pada jenis katalog yang Anda gunakan di set iklan:
price
, strikethrough
, dan % off
price
price
Catatan: Semua tanda template terkait harga untuk tiap jenis katalog didukung untuk opsi overlay di atas. Untuk melihat tanda template tiap jenis katalog: hotel, destinasi, dan penerbangan.
Informasi harga ditarik secara dinamis dari kolom harga dan harga penjualan di beranda. Pengiklan dapat memilih penyesuaian berikut untuk overlay iklan katalog Advantage+:
TOP_LEFT
, TOP_RIGHT
, BOTTOM_LEFT
, dan BOTTOM_RIGHT
. Untuk segitiga, hanya TOP_LEFT
dan TOP_RIGHT
yang didukung.price
, strikethrough
, dan % off
. Catatan: strikethrough
dan % off
hanya tersedia untuk hotel.Pelajari selengkapnya tentang cara menambahkan overlay.
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
Untuk membuat iklan, gunakan ad_set_id
dan 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
Anda dapat membuat pratinjau materi iklan untuk katalog Advantage+ Anda dengan API Pratinjau Iklan. Sertakan parameter product_item_ids
untuk menentukan item katalog mana yang akan ditampilkan di pratinjau.
Buat pratinjau iklan Anda menggunakan API Pratinjau Iklan. Sertakan product_item_ids
untuk menentukan barang katalog mana yang akan muncul di pratinjau, start_date
, dan end_date
untuk menentukan tanggal spesifik.
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
Nama & Jenis Kolom | Deskripsi |
---|---|
jenis: |
|
jenis: | Render pratinjau dengan sinyal tujuan pengguna, contoh: 24-12-2016.
|
jenis: | Render pratinjau dengan sinyal tujuan pengguna, contoh: 01-01-2017.
|
Untuk mengambil data Insight iklan untuk objek perjalanan, seperti hotel, buat panggilan GET
ke /insights
. Catatan: Jangan lupa menambahkan product_id
ke parameter breakdown
.
Untuk hotel dan destinasi, perincian product id
ditampilkan untuk tiap hotel_id
atau destination_id
. Untuk penerbangan, perincian product id
menampilkan origin_airport:destination_airport
.
Untuk mengambil komentar atau "Suka" dari iklan katalog Advantage+, gunakan API Postingan Dinamis.