飯店廣告 - 目錄和摘要

若要在 Facebook 推廣飯店,您必須與 Facebook 分享飯店相關資訊。分享方式為建立飯店目錄,然後填入飯店資訊。填寫及更新目錄資料的方式有 2 種:

您可在商務管理工具中建立和管理飯店目錄。

若要使用 API 管理目錄,請執行以下步驟:

  1. 建立飯店目錄
  2. 使用飯店目錄建立商品組合
  3. 將目錄與事件來源建立關聯

飯店摘要 - 將飯店上傳至 Facebook

飯店摘要為內含飯店庫存資料的檔案。檔案中每一行或每一個項目都代表單一家飯店。您可使用一個以上的飯店摘要,只要所有摘要合計起來包含完整的飯店庫存即可。

支援的飯店摘要格式

CSV

CSV 範例 | TSV 範例(扁平化)| TSV 範例(JSON 樣式)

  • 第一列必須按照指定值的順序列出所選欄位名稱。後續資料列才會出現每家飯店的對應值。
  • 若有含空白字元或逗號的欄位應以雙引號("")括住。
  • 若是巢狀或多重值欄位(例如 addressneighborhoodimage),可使用 JSON 編碼值代表,或以一組使用 JSON 路徑語法標記的「扁平化」純文字欄代表(例如 address.cityneighborhood[0]image[0].urlimage[0].tag[0]image[0].tag[1])。您可以在同一個檔案中交替使用這兩種慣例。

XML

XML 範例

  • <listings> XML 根節點包圍著一系列的 <listing> 節點,每一組節點代表了一家飯店。
  • 檔案開頭必須是有效的 <?xml 宣告標籤。

摘要剖析器會自動偵測 UTF8UTF16UTF32 文字編碼,且如果遇到未預期的位元組序列,會預設為 LATIN1。您可在欄位值提供任何語言的文字,不過,欄位名稱必須完全和以下指定的英文名稱相同。

支援的欄位 — 飯店廣告

下列支援欄位是專為新增至商品目錄的項目而設計。

若是本地化目錄,請參閱支援的飯店廣告欄位

欄位和類型說明

hotel_id

類型:字串

必要項目

長度上限:100

飯店在目錄內的專屬識別碼。此編號會與 hotel 應用程式及像素事件中所提供的任何 content_ids 一致。提示:為提升效能,請避免在此專屬識別碼欄位中使用空格。請勿使用重複的編號。

範例:FB_hotel_1234

room_id

類型:字串

新增飯店客房資訊時的必要欄位

請輸入不重複的飯店客房類型編號。字元上限:100 範例FB_hotel_room_1234

name

類型:字串

必要項目

飯店最常用的名稱。

範例:Facebook Hotel

description

類型:字串

必要項目

大小上限:5000

飯店的簡要說明。

範例:Only 30 minutes away from San Francisco.

checkin_date

類型:字串

新增飯店客房資訊時的必要欄位

入住飯店的入住日期。自摘要上傳日起最多可新增 180 天。使用 ISO-8601 標準(YYYY-MM-DD)。

範例:2017-08-01

length_of_stay

類型:字串

新增飯店客房資訊時的必要欄位

入住飯店的過夜次數。

範例:7

base_price

類型:字串

新增飯店客房資訊時的必要欄位

飯店客房的每晚基本價格。請務必在價格中加入幣別類型(例如 USD 代表美元)。以成本格式標示價格,後面接著 ISO 幣別代碼,成本與幣別之間空一格。

範例:199.00 EUR

price

類型:字串

新增飯店客房資訊時的必要欄位

飯店入住總價,根據 checkin_datelength_of_stay。以費用格式標示價格,後面接著 ISO 幣別代碼,費用與幣別之間空一格。

範例:1393.00 USD

tax

類型:字串

新增飯店客房資訊時的必要欄位

價格適用的稅率。以費用格式標示價格,後面接著 ISO 幣別代碼,費用與幣別之間空一格。

範例:14.00 USD

fees

類型:字串

新增飯店客房資訊時的必要欄位

價格適用的服務費。以成本格式標示價格,後面接著 ISO 幣別代碼,成本與幣別之間空一格。

範例:253.00 USD

url

類型:字串

必要項目

可預訂飯店客房的外部網站連結。您也可以使用 template_url_spec 指定廣告層級的網址。廣告層級網址的優先順序高於摘要中的網址。

範例:https://www.facebook.com/hotel

image[0].url

類型:物件

請參閱圖像物件參數

image[0].tag

類型:物件

請參閱圖像物件參數

brand

類型:字串

必要項目

連鎖飯店的品牌名稱。

範例:Hilton

address

類型:物件

請參閱地址物件參數

neighborhood[0]

類型:字串

必要項目

允許的社區上限:20

飯店所在的社區。如果社區不只一個,請為每個社區新增額外的欄,並在每個欄名中使用 JSON-path 語法來表示社區數量。

範例:Belle Haven

latitude

類型:浮點數

必要項目

飯店的緯度。

範例:37.484100

longitude

類型:浮點數

必要項目

飯店的經度。

範例:-122.148252

sale_price

類型:字串

選用項目。

飯店每晚入住的促銷價格,根據 checkin_datelength_of_stay。針對飯店原價進行折扣廣告時使用此欄位。請務必在價格中加入幣別類型(例如 USD 代表美元)。請確認飯店的 sale_price 低於其 base_price。以費用格式標示價格,後面接著 ISO 幣別代碼,費用與幣別之間空一格。

範例:149.00 USD

guest_ratings.score

類型:物件

請參閱房客評分物件參數

guest_ratings.rating_system

類型:物件

請參閱房客評分物件參數

star_rating

類型:浮點數

請參閱房客評分物件參數

loyalty_program

類型:字串

選用項目。

入住飯店即可累積點數的會員集點計畫。

範例:Premium program

margin_level

類型:整數

選用項目。

飯店的獲利能力指標,值為 1 到 10。

範例:9

phone

類型:字串

選用項目。

飯店的主要電話號碼。

範例:+61 296027455

applink

類型:物件

選用項目。

使用應用程式連結,直達行動應用程式中飯店詳細資料頁面的深層連結。您可以按照優先順序(由高至低)指定深層連結:

  1. 廣告層級使用 template_url_spec
  2. 在此摘要中使用 Applink 物件
  3. 新增應用程式連結中繼標籤至您的網站。

深入瞭解產品深層連結

priority

類型:整數

選用項目。

飯店的優先順序指標,值為 0(最低優先順序)到 5(最高優先順序)。範例:5

category

類型:字串

選用項目。

資產的類型。此類別可以是所需的任何類型內部說明。範例:ResortDay Room

number_of_rooms

類型:整數

選用項目。

此飯店廣告的客房/單位總數。

範例:150

status

類型:字串

控制要銷售目錄中的商品或將其封存。在您的廣告、商店或任何其他管道中,用戶只能看到銷售中的商品。支援的值:activearchived。商品預設為銷售中。深入瞭解封存商品


範例:active


注意:部分合作夥伴平台(例如 Shopify)可能會將商品同步至您的目錄,該狀態稱為預覽,其效果等同於 archived

這個欄位之前稱為 visibility。雖然我們仍支援舊的欄位名稱,但建議您使用新的名稱。

custom_label_0
custom_label_1
custom_label_2
custom_label_3
custom_label_4

類型:字串

字元上限:100

最多五個自訂欄位,設定您在建立商品組合時,要用於篩選商品的任何其他資訊。舉例來說,您可以使用自訂欄位來指出所有夏季促銷房間,然後將這些商品篩選為商品組合。此欄位支援所有文字值,包括數字。


範例:Summer Sale

此為補充摘要支援的欄位。

custom_number_0
custom_number_1
custom_number_2
custom_number_3
custom_number_4

類型:整數

您在建立商品組合時,可針對想用來篩選商品的任何其他數字相關資訊加入最多五個自訂欄位。此欄位允許您在建立商品組合時,依數字範圍(大於小於)進行篩選。舉例來說,您可以使用此欄位來標示飯店的開業年分,然後將特定年分範圍篩選成商品組合。


此欄位支援 0 到 4294967295 之間的整數,不支援負數、十進位數字或逗號,例如 -2、5.5 或 10,000。


範例:2022

圖像物件參數


欄位名稱和類型說明

url

類型:字串

必要項目

項目上限:20。

廣告中將顯示之項目圖像的網址連結。請遵循下列圖像規格:

  • 所有圖像必須為 JPG、GIF 或 PNG 格式。

  • 若要顯示輪播廣告和精選集廣告:請以正方形(1:1)格式顯示圖像。圖像大小至少 500 x 500 像素。建議使用 1024 x 1024 像素以獲得最佳品質。

  • 若要使用單一圖像的廣告:請以長寬比 1.91:1 顯示圖像。圖像大小下限為 500 x 500 像素。建議使用 1200 x 628 像素以獲得最佳品質。

  • 如果圖像不只一個,請為每個圖像新增額外的欄,並在每個欄名中使用 JSON-path 語法來表示圖像數量。

範例:image[0].url; image[1].url

範例:https://www.facebook.com/facebook_hotel.jpg

tag

類型:字串

選用項目。

附加在圖像中以顯示其內容的標籤。可以將單一圖像與多個標籤連結。

範例:Fitness CenterSwimming Poolsuite

INSTAGRAM_STANDARD_PREFERRED - 允許廣告商在其摘要中標註特定圖像,作為用於 Instagram 的預設圖像。此標籤會區別大小寫。


地址物件參數

巢狀或多重值欄位(例如 address)可使用 JSON 編碼值表示,或由一組使用 JSON 路徑語法標記的「扁平化」純文字欄表示(例如 address.region)。您可以在同一個檔案中交替使用這兩種慣例。


欄位名稱和類型說明

addr1address.addr1

類型:物件

必要項目

飯店的主要街道地址。

範例:1600 Pennsylvania Avenue

address.addr2

類型:物件

選用項目。

飯店的次要街道地址。

範例:Apartment 1

address.addr3

類型:物件

選用項目。

飯店的第三街道地址。

範例:Downstairs

address.city_idcity_id

類型:字串

選用項目。

在廣告創意中用於深層連結網址(template_url)的值。

範例:12345

address.citycity

類型:字串

必要項目

飯店所在地的城市。

範例:New York

address.regionregion

類型:字串

必要項目

飯店所在地的州、縣、省。

範例:California

address.countrycountry

類型:字串

必要項目

飯店所在地的國家/地區。

範例:United States

address.postal_codepostal_code

類型:字串

若該國家/地區使用郵遞區號系統,此為必填項目

飯店的郵遞區號。

範例:94125NW1 3FG

房客評分物件參數


欄位名稱和類型說明

guest_ratings.scorescore

類型:物件

選用項目。

評論過飯店的總人數。若指定此欄位,必須同時提供 scoremax_scorenumber_of_reviewersrating_system

範例:9.0/10

guest_ratings.number_of_reviewersnumber_of_reviewers)類型:整數

選用項目。

為此飯店打過分數的總人數。

範例:5287

guest_ratings.rating_systemrating_system

類型:字串

選用項目。

用於賓客評論的系統。

範例:ExpediaTripAdvisor

max_score

類型:整數

必要項目

飯店評分的最大值。必須大於或等於 0,小於或等於 100。

範例:10

飯店 API - 直接建立和管理飯店

您可以使用飯店 API 直接在目錄中新增、編輯和移除飯店。如需深入瞭解如何使用 API 管理飯店,請參閱飯店 API 參考資料

下列章節只適用於以 API 管理目錄的情況。

使用 API 建立飯店目錄

飯店目錄內含飯店庫存資料。若要使用目錄 API,請確認是否具備合適的行銷 API 存取層級,並且藉由透過企業管理平台建立第一個目錄,確認已接受服務條款

若要建立用於飯店廣告的飯店目錄,請將 vertical 設為 hotels

curl -X POST \
  -F 'name="Test Hotel Catalog"' \
  -F 'vertical="hotels"' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v10.0/BUSINESS_ID/owned_product_catalogs

透過 API 上傳飯店摘要

建立目錄後,您必須將飯店摘要上傳至 Facebook。請針對您要上傳的每個摘要,使用 API 來建立摘要物件。我們支援排程上傳和直接上傳。

將飯店目錄篩選為飯店組合

飯店組合是目錄的子集。若要設定飯店廣告,您需要飯店組合。因此,您必須建立至少一個飯店組合。

飯店組合是由套用於飯店目錄的篩選條件來定義。例如,您建立的飯店組合可以包含所有 star_rating 高於 3 的飯店。注意:您也可以建立不套用任何篩選條件的飯店組合。在不套用任何篩選條件的情況下,飯店組合會包含目錄中所有飯店。

若要建立一個飯店組合,其中包含 brand 欄位中含「sample brand」(品牌範例)的所有飯店:

curl -X POST \ -F 'name="Test Hotel Set"' \ -F 'filter={ "brand": { "i_contains": "sample brand" } }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v21.0/<PRODUCT_CATALOG_ID>/product_sets
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const ProductCatalog = bizSdk.ProductCatalog; const ProductSet = bizSdk.ProductSet; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<PRODUCT_CATALOG_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'Test Hotel Set', 'filter' : {'brand':{'i_contains':'sample brand'}}, }; const product_sets = (new ProductCatalog(id)).createProductSet( fields, params ); logApiCallResult('product_sets api call complete.', product_sets);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\ProductCatalog; use FacebookAds\Object\ProductSet; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<PRODUCT_CATALOG_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'Test Hotel Set', 'filter' => array('brand' => array('i_contains' => 'sample brand')), ); echo json_encode((new ProductCatalog($id))->createProductSet( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.productcatalog import ProductCatalog from facebook_business.adobjects.productset import ProductSet from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'Test Hotel Set', 'filter': {'brand':{'i_contains':'sample brand'}}, } print ProductCatalog(id).create_product_set( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<PRODUCT_CATALOG_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new ProductCatalog(id, context).createProductSet() .setName(\"Test Hotel Set\") .setFilter(\"{\\"brand\\":{\\"i_contains\\":\\"sample brand\\"}}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end product_catalog = FacebookAds::ProductCatalog.get(id) product_sets = product_catalog.product_sets.create({ name: 'Test Hotel Set', filter: {'brand':{'i_contains':'sample brand'}}, })

filter 參數是由下列運算子和資料所組成:

運算子篩選條件的類型

i_contains

包含子字串。運算子不會區別大小寫。

i_not_contains

不包含子字串。運算子不會區別大小寫。

contains

包含子字串。運算子不會區別大小寫。

not_contains

不包含子字串。運算子不會區別大小寫。

eq

等於。運算子不會區別大小寫。

neq

不等於。運算子不會區別大小寫。

lt

小於。僅限數值欄位。

lte

小於或等於。僅限數值欄位。

gt

大於。僅限數值欄位。

gte

大於或等於。僅限數值欄位。

資料所要篩選的資料。

hotel_id

飯店在目錄內的專屬識別碼。

brand

連鎖飯店的品牌。

base_price_amount

此飯店的每晚基本價格。價格是以美分為單位(4999 代表 $49.99 美元)。

sale_price_amount

此飯店的每晚售價。價格以美分為單位(4999 代表 $49.99 美元)。

currency

幣別

city

飯店所在城市。

country

飯店的國家/地區。

name

飯店最常用的名稱。

star_rating

飯店星級。有效值介於 1 到 5 之間,且應為 0.5 的倍數。