Автоматически продвигайте свои туристические предложения на Facebook. С помощью такой рекламы можно продвигать на Facebook туристические предложения из вашего ассортимента, используя уникальные креативы. В объявления автоматически подставляются варианты, актуальные для каждого конкретного пользователя. Для этого Facebook анализирует сигналы с разных устройств, свидетельствующие о намерениях человека.
К туристической относится реклама отелей, авиарейсов и туристических направлений.
Чтобы воспользоваться этим руководством, нужно сначала:
Для туристической рекламы можно использовать разные стратегии таргетинга. Для достижения каждой бизнес-цели подойдут различные комбинации из аудиторий и групп товаров.
Ретаргетинг — показ релевантных вариантов людям, которые искали на вашем сайте или в приложении гостиницы, туристические направления или авиарейсы.
Перекрестные продажи или продажа более дорогих товаров и услуг — таргетинг на людей, которые приобрели авиабилеты, путем демонстрации им релевантных вариантов гостиниц либо предложения оплатить приоритетную регистрацию или выбор места.
Привлечение новых клиентов — расширение охвата рекламы и поиск новых клиентов с помощью таргетинга на перспективные аудитории.
Туристическая реклама создается с помощью API точно так же, как и любая другая реклама на 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
. Теперь можно создать группу объявлений. Группа объявлений определяет возможные варианты ставок и таргетинга для вашей рекламы.
Для ретаргетинга на посетителей сайта или приложения используйте динамическую аудиторию, тип которой соответствует продвигаемой группе товаров. Группу гостиниц следует рекламировать аудитории для гостиниц, группу авиарейсов — аудитории для авиарейсов, а группу туристических направлений — аудитории для туристических направлений.
Если ваша цель — перекрестные продажи или продажа более дорогих товаров и услуг людям, которые уже приобрели что-то на вашем сайте или в приложении, создайте динамическую аудиторию с такими людьми. Затем используйте ее для рекламы туристических продуктов из другого каталога. Например, аудитории покупателей авиабилетов можно предложить группу гостиниц или другую группу авиарейсов с возможностью выбора места в салоне.
OFFSITE_CONVERSIONS
. Используйте более весомые сигналы о намерениях человека, например Purchase
или InitiateCheckout
. См. также статью Объявления из каталога Advantage+: таргетинг на широкую аудиторию
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, вместо тегов шаблонов подставляются конкретные туристические продукты, которые интересуют того или иного пользователя. Теги шаблонов можно использовать и в самих объявлениях, и в URL страниц, которые открываются по нажатию на объявление.
Чтобы задать URL страницы, которая будет открываться по нажатию на объявление, используйте поле template_url_spec
. Если этот URL не указан или системе не удается получить его при отображении рекламы, используется URL из каталога. Для рекламы авиарейсов это поле обязательно, если URL не указан в каталоге.
В объявлениях можно показывать как один товар, так и кольцевую галерею с несколькими предложениями. В рекламе отдельного товара можно демонстрировать несколько его изображений в виде кольцевой галереи, но для этого соответствующие изображения должны быть в каталоге. Статичные карточки можно комбинировать с динамическими. Дополнительную информацию о вариантах креативов см. в статье Объявления из каталога Advantage+: создание шаблона креативов.
В примере ниже показано, как создать креатив с кольцевой галереей для рекламы гостиниц. Реклама туристических направлений и реклама авиарейсов настраиваются аналогично.
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
Вот как можно прорекламировать людям, уже купившим авиабилеты, более дорогие услуги, например право выбора мест или приоритетную посадку:
PURCHASE
.PURCHASE
в recommender_settings
рекламного креатива как способ рекомендации объявлений.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
С помощью наложений рекламодатели могут добавлять информацию о цене каждого товара в объявлениях из каталога Advantage+ (в виде точного значения или процента скидки).
В зависимости от типа каталога, используемого для группы объявлений, возможны следующие типы наложений:
price
, strikethrough
и % off
;price
;price
.Примечание. Для всех перечисленных вариантов наложений поддерживаются все теги шаблонов, связанные с ценами. Посмотрите, какие теги шаблонов доступны для гостиниц, туристических направлений и авиарейсов.
Информация о расценках динамически извлекается из столбцов ленты, содержащих обычные цены и цены со скидкой. Ниже перечислены настройки, которые рекламодатели могут выбирать для наложений в объявлениях из каталога Advantage+.
TOP_LEFT
, TOP_RIGHT
, BOTTOM_LEFT
и BOTTOM_RIGHT
). Для треугольника поддерживаются только TOP_LEFT
и TOP_RIGHT
.price
, strikethrough
и % off
. Примечание. Типы strikethrough
и % off
доступны только для гостиниц.См. дополнительные сведения о добавлении наложений.
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
Чтобы создать объявление, используйте 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 Ad Previews можно сгенерировать предпросмотр креатива Advantage+ для каталога. Чтобы выбрать элементы каталога, которые должны отображаться при предпросмотре, укажите параметр product_item_ids
.
Используйте для предпросмотра объявлений API Ad Previews. Чтобы посмотреть, как будет выглядеть реклама конкретных товаров из каталога, укажите их ID в параметре product_item_ids
. Даты можно задать в start_date
и end_date
.
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
Имя и тип поля | Описание |
---|---|
Тип: |
|
Тип: | Генерирует предпросмотр на основе сигнала, свидетельствующего о намерениях пользователя, т. е. вставляет в рекламу интересующую его дату (например, 24.12.2016).
|
Тип: | Генерирует предпросмотр на основе сигнала, свидетельствующего о намерениях пользователя, т. е. вставляет в рекламу интересующую его дату (например, 01.01.2017).
|
Чтобы получить статистику по рекламе туристического объекта, например гостиницы, выполните запрос GET
к /insights
. Примечание. Обязательно укажите в параметре breakdown
значение product_id
.
В статистике рекламы гостиниц и туристических направлений разбивка по product id
выполняется на основе hotel_id
или destination_id
соответственно. Для авиарейсов разбивка по product id
основывается на origin_airport:destination_airport
.
Чтобы получить данные об отметках "Нравится", поставленных объявлениям из каталога Advantage+, и комментариях к ним, используйте API Dynamic Post.