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
가 있으면 광고 세트를 만들 수 있습니다. 광고 세트는 광고의 입찰 및 타게팅 옵션을 정의합니다.
웹사이트 또는 앱 방문자를 리타게팅하려면 홍보하는 제품 세트와 동일한 유형의 다이내믹 타겟을 사용하세요. 예를 들어 호텔 타겟에게는 호텔 세트를, 항공편 타겟에게는 항공편 세트를, 목적지 타겟에게는 목적지 세트를 홍보합니다.
웹사이트 및/또는 앱에서 구매한 사람에게 크로스셀링 및 업셀링하려면 구매한 사람이 포함된 다이내믹 타겟을 사용하고 이들에게 다른 카탈로그의 여행 옵션을 홍보합니다. 즉 항공편 구매 타겟을 호텔 세트나 좌석 선택을 강조한 다른 항공편 세트로 타게팅합니다.
Purchase
또는 InitiateCheckout
)로 OFFSITE_CONVERSIONS
에 맞추어 최적화합니다. 어드밴티지+ 카탈로그 광고, 광범위한 대상 타게팅도 참조하세요.
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이 제공되지 않았거나 Facebook에서 광고를 표시할 때 해당 URL을 가져올 수 없는 경우 카탈로그의 URL이 표시됩니다. 항공편 광고의 경우 카탈로그에서 URL을 제공하지 않으면 이 필드를 필수로 입력해야 합니다.
단일 항목을 표시하거나 여러 항목이 포함된 슬라이드를 표시할 수 있습니다. 단일 항목 광고의 경우 슬라이드에 같은 항목의 여러 가지 이미지를 표시할 수 있습니다. 단, 카탈로그에 각 항목의 이미지가 여러 개 포함되어 있어야 합니다. 정적 카드를 다이내믹 카드와 함께 표시할 수도 있습니다. 크리에이티브 옵션에 관한 자세한 내용은 어드밴티지+ 카탈로그 광고, 크리에이티브 템플릿 만들기를 참조하세요.
호텔 광고의 슬라이드 크리에이티브를 만드는 방법의 예시는 다음과 같습니다. 목적지 광고 및 항공편 광고는 설정이 유사합니다.
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
이벤트만 포함하여 타겟을 제공합니다.recommender_settings
에서 PURCHASE
이벤트를 지정해 광고를 추천합니다.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
광고주는 오버레이를 통해 어드밴티지+ 카탈로그 광고 내의 각 항목에 대한 가격 정보(가격 자체 또는 할인율)를 추가할 수 있습니다.
광고 세트에서 사용하는 카탈로그 유형에 따라 다음과 같은 오버레이 유형을 사용할 수 있습니다.
price
, strikethrough
및 % off
price
price
참고: 위의 오버레이 선택 사항에 대해 각 카탈로그 유형의 모든 가격 관련 템플릿 태그가 지원됩니다. 각 카탈로그 유형의 템플릿 태그를 보려면 호텔, 목적지 및 항공편을 참조하세요.
가격 정보는 피드의 가격 및 판매가 열에서 동적으로 풀링됩니다. 광고주는 어드밴티지+ 카탈로그 광고 오버레이에 대해 다음과 같은 맞춤 설정 중에서 선택할 수 있습니다.
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를 사용하여 카탈로그용으로 어드밴티지+ 크리에이티브의 미리 보기를 생성할 수 있습니다. 미리 보기에 표시할 카탈로그 항목을 지정하려면 product_item_ids
매개변수를 포함합니다.
광고 미리 보기 API를 사용하여 광고의 미리 보기를 생성합니다. 미리 보기에 표시할 카탈로그 항목을 지정하려면 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
필드 이름 및 유형 | 설명 |
---|---|
유형: |
|
유형: | 사용자의 의향 신호로 미리 보기를 렌더링합니다(예: 2016-12-24).
|
유형: | 사용자의 의향 신호로 미리 보기를 렌더링합니다(예: 2017-01-01).
|
여행 개체(예: 호텔)의 광고 인사이트를 가져오려면 /insights
에 GET
호출을 보내야 합니다. 참고: product_id
를 breakdown
매개변수에 추가하는 것을 잊지 마세요.
호텔과 목적지의 경우 각 hotel_id
또는 destination_id
에 대한 product id
분석 데이터가 표시됩니다. 항공편의 경우 product id
분석 데이터에 origin_airport:destination_airport
가 표시됩니다.
어드밴티지+ 카탈로그 광고의 댓글이나 '좋아요'를 검색하려면 다이내믹 게시물 API를 사용하세요.