Showtimes
E-commerce
Automotive ads
Travel ads
Travel Ads support three different catalog types:
Hotel: designed to capture properties and unique traits or selling points of hotels.
Flight: designed to capture flight route information.
Destination: flexible catalog type that is customizable for different travel applications.
Tip: To help get started, you can use our travel catalog templates:
Travel Ads - Hotel catalog templateTravel Ads - Flight catalog templateTravel Ads - Destination catalog template (Beta)TikTok recommends using all fields to better match your product with a user's intent.
Important: All data in the catalog must be entered using unicode. Other text types are not supported and will cause errors.
Field | Is required? | Description & example | Rules |
flight_id
Type: string | Required | This ID should be the same as the SKU ID you're using for the 'content_id' parameter in your event source This ID should be the same as the SKU ID you're using for the 'content_id' parameter in your event source A standard format is a combination of the IATA codes for origin and destination airports. Example: SFO:JFK | 1. Character limit: 100 2. Use valid unicode characters only 3. All flight_id must be unique in the catalog |
origin_airport
Type: string | Required | The IATA code for the origin airport
Example: CHI | IATA code only (3 characters) |
destination_airport
Type: string | Required | The IATA code for the destination airport
Example: NYC | IATA code only (3 characters) |
image_link
Type: string | Required | A link to the flight's image
| 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. Linked image should be ≥ 500x500 pixels. 6. Image must be JPG or PNG format. 7. Image should be unique to the flight; avoid thumbnail, placeholder, or generic images. 8. Do not include watermarks, logos, or text in image. |
link
Type: string | Required | The URL of the product landing page, or the website where you can view the flight
Example: https://www.landingpage.com | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https |
price
Type: string | Required | The original price of the flight
Example: 9.97 USD | 1. Format price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency 2. Currency must match the catalog's default currency 3. Price and currency should match the price and currency on the landing page and checkout page 4. There should only be one price per flight_id |
video_link
Type: string | Optional | A link to the flight's video
Example: https://www.tiktok.com/flight.mp4 | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. Linked video recommended aspect ratio is Vertical (9:16) 6. Linked video recommended resolution is ≥720*1280 7. Linked video recommended bitrate is ≥516kbps 8. Linked video is recommended to have sound enabled and captions included 9. Linked video is recommended to follow standard TikTok safe zone guidelines to avoid overlapping text or covering essential information. |
origin_city
Type: string | Optional | The name of the origin city
Example: Chicago | Character limit: 150 |
destination_city
Type: string | Optional | The name of the destination city
Example: New York | Character limit: 150 |
availability
Type: string | Optional | The product's inventory status
Example: in stock | Accepted values: in stock, out of stock. All other values will result in an error. |
additional_image_link
Type: string | Optional | Additional image links for the destination
Example: https://www.tiktok.com/flight_image_002.jpg,https://www.tiktok.com/flight_image_003.jpg | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. No more than 10 links 6. Use "," to separate each link |
sale_price
Type: string | Optional | The discount price of the flight
Example: 9.9 USD | 1. Format sale_price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency. 2. Currency must match the catalog's default currency. 3. sale_price and currency should match the price and currency on the landing page and checkout page. 4. There should only be one sale_price per flight_id. |
total_price
Type: string | Optional | The total price of the flight
Example: 99 USD | 1. Format total_price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency 2. Currency must match the catalog's default currency 3. total_price and currency should match the price and currency on the landing page and checkout page 4. There should only be one total_price per flight_id |
description
Type: string | Optional | Brief description of the flight
Example: Flight to NYC | Character limit: 20,000 |
airline_company
Type: string | Optional | The name of the airline company
Example: TikTok Airline | Character limit: 150 |
cabin_class
Type: string | Optional | The class of flight cabin
Example: First class | Character limit: 150 |
airline_id
Type: string | Optional | Enter a unique ID for the airline
Example: airline_1234 | Character limit: 100 |
android_url
Type: string | Optional | The URL of each Android app
Example: android://electronic | 1. Android app store url 2. Ensure link is functioning at time of submission to avoid rejection. 3. android_url and android_package should direct to the same app |
android_package
Type: string | Optional | The Android app store ID
Example: com.electronic | 1. Android app store ID 2. Ensure link is functioning at time of submission to avoid rejection. 3. android_url and android_package should direct to the same app |
android_app_name
Type: string | Optional | The name of each Android app
Example: Electronic Android | Name of android_app_name must match the app linked from the android_url and android_package fields |
ios_url
Type: string | Optional | The URL of each iOS app
Example: iOS://electronic | 1. iOS app store url 2. Ensure link is functioning at time of submission to avoid rejection. 3. iOS_url and iOS_package should direct to the same app |
ios_app_store_id
Type: string | Optional | The iOS app store ID
Example: 1234 | 1. iOS app store ID 2. Ensure link is functioning at time of submission to avoid rejection. 3. iOS_url and iOS_package should direct to the same app |
ios_app_name
Type: string | Optional | The name of each iOS app
Example: Electronic iOS | Name of ios_app_name must match the app linked from the ios_url and ios_app_store_id fields |
priority
Type: integer | Optional | An indicator of the priority of the flight
Example: 0 | Character limit: 150 |
custom_label_0
Type: string | Required - Conditional | A short selling point for the flight. Used to populate ad copy when no sale_price is detected for the flight_id
Example: Non-stop | Recommended character limit: 20 |
custom_label_1
Type: string | Required - Conditional | A short selling point for the flight. Used to populate ad copy.
Example: Affordable | Recommended character limit: 20 |
custom_label_2
Type: string | Optional | A short selling point for the flight
Example: Early bird | Character limit: 20 |
custom_label_3
Type: string | Optional | A short selling point for the flight
Example: Free Wi-Fi | Character limit: 20 |
custom_label_4
Type: string | Optional | A short selling point for the flight
Example: Extra legroom | Character limit: 20 |
Field | Is required? | Description & example | Rules |
hotel_id
Type: string | Required | This ID should be the same as the SKU ID you're using for the 'content_id' parameter in your event source
Example: H12345 | 1. Character limit: 100 2. All hotel_id must be unique in the catalog |
hotel_name
Type: string | Required | Most common name of the hotel
Example: TikTok Hotel | Character limit: 150 |
image_link
Type: string | Required | A link to the hotel's image
| 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. Linked image should be ≥ 500x500 pixels. 6. Image must be JPG or PNG format. 7. Image should be unique to the hotel; avoid thumbnail, placeholder, or generic images. 8. Do not include watermarks, logos, or text in image. |
link
Type: string | Required | The URL of the product landing page, or the website where you can book a hotel room.
Example: https://www.landingpage.com | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https |
price
Type: string | Required | The original price of the hotel room per night
Example: 9.97 USD | 1. Format price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency 2. Currency must match the catalog's default currency 3. Price and currency should match the price and currency on the landing page and checkout page 4. There should only be one price per hotel_id |
address
Type: string | Required | Primary street address of hotel
Example: 123 Main Street | Character limit: 150 |
address.city
Type: string | Required | City where the hotel is located
Example: Palo Alto | Character limit: 150 |
address.region
Type: string | Required | State, county, province, where the hotel is located
Example: California | Character limit: 150 |
address.country
Type: string | Required | Country where the hotel is located
Example: United States | Character limit: 150 |
brand
Type: string | Required | The hotel's brand name
Example: TikTok | Character limit: 150 |
availability
Type: string | Required | The product's inventory status
Example: in stock | Accepted values: in stock, out of stock. All other values will result in an error. |
description
Type: string | Optional | Brief description of the hotel
Example: A very cool hotel. | Character limit: 20,000 |
video_link
Type: string | Optional | A link to the hotel's video
Example: https://www.tiktok.com/hotel.mp4 | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. Linked video recommended aspect ratio is Vertical (9:16) 6. Linked video recommended resolution is ≥720*1280 7. Linked video recommended bitrate is ≥516kbps 8. Linked video is recommended to have sound enabled and captions included 9. Linked video is recommended to follow standard TikTok safe zone guidelines to avoid overlapping text or covering essential information. |
sale_price
Type: string | Optional | The discount price of the hotel room per night
Example: 9.9 USD | 1. Format sale_price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency 2. Currency must match the catalog's default currency 3. sale_price and currency should match the price and currency on the landing page and checkout page 4. There should only be one sale_price per hotel_id |
total_price
Type: string | Optional | The total price of the hotel booking
Example: 99 USD | 1. Format total_price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency 2. Currency must match the catalog's default currency 3. total_price and currency should match the price and currency on the landing page and checkout page 4. There should only be one total_price per hotel_id |
additional_image_link
Type: string | Optional | Additional image links for the hotel
Example: https://www.tiktok.com/hotel_image_002.jpg,https://www.tiktok.com/hotel_image_003.jpg | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. No more than 10 links 6. Use "," to separate each link |
room_type
Type: string | Optional | Type of the room
Example: Deluxe Suite | Character limit: 150 |
latitude
Type: float | Optional | Latitude of the hotel
Example: 37.4841 | Value must be between -90 and 90 |
longitude
Type: float | Optional | Longitude of the hotel
Example: 122.148252 | Value must be between -180 and 180 |
guest_rating[0].rating_system
Type: string | Optional | System you use for rating
Example: TripAdvisor | Character limit: 150 |
guest_rating[0].max_score
Type: integer | Optional | Max value for the hotel rating score
Example: 5 | Must be greater than or equal to 0, and less than or equal to 100; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[0].score
Type: float | Optional | Actual value for the hotel rating score
Example: 3.5 | Must be greater than or equal to 0; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[0].number_of_reviewers
Type: integer | Optional | Total number of people who have rated this hotel
Example: 345 | Must be greater than or equal to 0 |
guest_rating[1].rating_system
Type: string | Optional | System you use for rating
Example: TripAdvisor | Character limit: 150 |
guest_rating[1].max_score
Type: integer | Optional | Max value for the hotel rating score
Example: 5 | Must be greater than or equal to 0, and less than or equal to 100; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[1].score
Type: float | Optional | Actual value for the hotel rating score
Example: 3.5 | Must be greater than or equal to 0; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[1].number_of_reviewers
Type: integer | Optional | Total number of people who have rated this hotel
Example: 345 | Must be greater than or equal to 0 |
guest_rating[2].rating_system
Type: string | Optional | System you use for rating
Example: TripAdvisor | Character limit: 150 |
guest_rating[2].max_score
Type: integer | Optional | Max value for the hotel rating score
Example: 5 | Must be greater than or equal to 0, and less than or equal to 100; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[2].score
Type: float | Optional | Actual value for the hotel rating score
Example: 3.5 | Must be greater than or equal to 0; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[2].number_of_reviewers
Type: integer | Optional | Total number of people who have rated this hotel
Example: 345 | Must be greater than or equal to 0 |
guest_rating[3].rating_system
Type: string | Optional | System you use for rating
Example: TripAdvisor | Character limit: 150 |
guest_rating[3].max_score
Type: integer | Optional | Max value for the hotel rating score
Example: 5 | Must be greater than or equal to 0, and less than or equal to 100; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[3].score
Type: float | Optional | Actual value for the hotel rating score
Example: 3.5 | Must be greater than or equal to 0; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[3].number_of_reviewers
Type: integer | Optional | Total number of people who have rated this hotel
Example: 345 | Must be greater than or equal to 0 |
guest_rating[4].rating_system
Type: string | Optional | System you use for rating
Example: TripAdvisor | Character limit: 150 |
guest_rating[4].max_score
Type: integer | Optional | Max value for the hotel rating score
Example: 5 | Must be greater than or equal to 0, and less than or equal to 100; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[4].score
Type: float | Optional | Actual value for the hotel rating score
Example: 3.5 | Must be greater than or equal to 0; We suggest uploading the guest_rating[0].score and the guest_rating[0].max_score together |
guest_rating[4].number_of_reviewers
Type: integer | Optional | Total number of people who have rated this hotel
Example: 345 | Must be greater than or equal to 0 |
star_rating
Type: float | Optional | Hotel star rating
Example: 3.5 | The valid values are between 1 to 5 |
phone
Type: integer | Optional | Primary phone number for the hotel
Example: 1234567890 | |
loyalty_program
Type: string | Optional | Loyalty program you use to gain points for staying at the hotel
Example: TikTok Group | Character limit: 150 |
margin_level
Type: string | Optional | Indicator of the profitability of the hotel
Example: 10 | Character limit: 150 |
hotel_retailer_id
Type: string | Optional | Enter a unique ID for the hotel retailer
Example: RET123 | Character limit: 150 |
hotel_room_id
Type: string | Optional | Enter a unique ID for the hotel room
Example: R123 | Character limit: 100 |
meal_policy
Type: string | Optional | The policy of meals provided by the hotel
Example: All-inclusive | Character limit: 150 |
cancellation_policy
Type: string | Optional | The policy of cancelling booking of the hotel
Example: Free Cancellation up to 24 Hours Prior to Check-in | Character limit: 150 |
android_url
Type: string | Optional | The URL of each Android app
Example: android://electronic | 1. Android app store url 2. Ensure link is functioning at time of submission to avoid rejection. 3. android_url and android_package should direct to the same app |
android_package
Type: string | Optional | The Android app store ID
Example: com.electronic | 1. Android app store ID 2. Ensure link is functioning at time of submission to avoid rejection. 3. android_url and android_package should direct to the same app |
android_app_name
Type: string | Optional | The name of each Android app
Example: Electronic Android | Name of android_app_name must match the app linked from the android_url and android_package fields |
ios_url
Type: string | Optional | The URL of each iOS app
Example: iOS://electronic | 1. iOS app store url 2. Ensure link is functioning at time of submission to avoid rejection. 3. iOS_url and iOS_package should direct to the same app |
ios_app_store_id
Type: string | Optional | The iOS app store ID
Example: 1234 | 1. iOS app store ID 2. Ensure link is functioning at time of submission to avoid rejection. 3. iOS_url and iOS_package should direct to the same app |
ios_app_name
Type: string | Optional | The name of each iOS app
Example: Electronic iOS | Name of ios_app_name must match the app linked from the ios_url and ios_app_store_id fields |
neighborhood
Type: string | Optional | Neighborhood where the hotel is located
Example: Paris City Centre | Character limit: 150 |
priority
Type: integer | Optional | An indicator of the priority of the hotel
Example: 0 | |
category
Type: string | Optional | The type of property; such as a hotel
Example: Hotel | 1. Character limit: 150 2. Use "," to separate each category |
amenities
Type: string | Optional | Amenities available in the hotel.
Example: Swimming pool | Character limit: 150 |
custom_label_0
Type: string | Required - Conditional | A short selling point for the hotel. Used to populate ad copy when no sale_price is detected for the hotel_id
Example: Free breakfast | Recommended character limit: 20 |
custom_label_1
Type: string | Required - Conditional | A short selling point for the hotel. Used to populate ad copy when no ratings or review information is detected for the hotel_id
Example: Pet friendly | Recommended character limit: 20 |
custom_label_2
Type: string | Optional | A short selling point for the hotel
Example: On-site parking | Character limit: 20 |
custom_label_3
Type: string | Optional | A short selling point for the hotel
Example: Airport shuttle service | Character limit: 20 |
custom_label_4
Type: string | Optional | A short selling point for the hotel
Example: Sustainability | Character limit: 20 |
Field | Is required? | Description & example | Rules |
destination_id
Type: string | Required | This ID should be the same as the SKU ID you're using for the 'content_id' parameter in your event source
Example: D123456 | 1. Character limit: 100 2. All destination_id must be unique in the catalog |
destination_name
Type: string | Required | Most common name of the destination
Example: New York City | 1. Character limit:150 |
image_link
Type: string | Required | A link to the destination's image
Example: https://www.imagelink.com/destination_image_001.jpg | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. Linked image should be ≥ 500x500 pixels. 6. Image must be JPG or PNG format. 7. Image should be unique to the destination; avoid thumbnail, placeholder, or generic images. 8. Do not include watermarks, logos, or text in image. |
link
Type: string | Required | The URL of the product landing page, or the website where you can view the destination page
Example: https://www.landingpage.com | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https |
address
Type: string | Required | Primary street address of the destination
Example: 123 Main Street | 1. Character limit:150 |
address.city
Type: string | Required | City where the destination is located
Example: Palo Alto | 1. Character limit:150 |
address.region
Type: string | Required | State, county, province, where the destination is located
Example: California | 1. Character limit:150 |
address.country
Type: string | Required | Country where the destination is located
Example: United States | 1. Character limit:150 |
types
Type: string | Required | Words or phrases describing the destination, e.g. beach, city, food, sightseeing, culture, history, shopping, museum, tranquility, scenery, nature, architecture, business, friendly people, relaxation, night market, mountain, temple, hiking, snorkeling
Example: city, sightseeing | 1. Use a comma to separate each type |
price
Type: string | Optional | The original price of the trip
Example: 9.97 USD | 1. Format price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency 2. Currency must match the catalog's default currency 3. Price and currency should match the price and currency on the landing page and checkout page 4. There should only be one price per destination_id |
description
Type: string | Optional | Brief description of the trip
Example: Explore the bustling city of New York | 1. Character limit: 20,000 |
video_link
Type: string | Optional | A link to the destination's video
| 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. Linked video recommended aspect ratio is Vertical (9:16) 6. Linked video recommended resolution is ≥720*1280 7. Linked video recommended bitrate is ≥516kbps 8. Linked video is recommended to have sound enabled and captions included 9. Linked video is recommended to follow standard TikTok safe zone guidelines to avoid overlapping text or covering essential information. |
postcode
Type: string | Optional | Postcode of the destination
Example: 10001 | |
latitude
Type: float | Optional | Latitude of the destination
Example: 40.7128 | 1. Value must be between -90 and 90 |
longitude
Type: float | Optional | Longitude of the destination
Example: -74.006 | 1. Value must be between -180 and 180 |
sale_price | Optional | The discount price of the trip
Example: 9.9 USD | 1. Format sale_price as the cost, followed by the ISO 4217 currency code, with a space between cost and currency 2. Currency must match the catalog's default currency 3. sale_price and currency should match the price and currency on the landing page and checkout page 4. There should only be one sale_price per destination_id |
additional_image_link
Type: string | Optional | Additional image links for the destination Example: https://www.tiktok.com/destination_image_002.jpg,https://www.tiktok.com/destination_image_003.jpg | 1. Link URL should be formatted as x://xxx.xxx/xxx?xxx=xxx. 2. There is no maximum character limit for the link URL. 3. Ensure link is functioning at time of submission to avoid rejection. 4. Link can start with either http or https 5. No more than 10 links 6. Use "," to separate each link |
android_url
Type: string | Optional | The URL of each Android app Example: android_url | 1. Android app store url 2. Ensure link is functioning at time of submission to avoid rejection. 3. android_url and android_package should direct to the same app |
android_package
Type: string | Optional | The Android app store ID
Example: android_package | 1. android_url and android_package should direct to the same app |
android_app_name
Type: string | Optional | The name of each Android app
Example: android_app_name | 1. Name of android_app_name must match the app linked from the android_url and android_package fields |
ios_url
Type: string | Optional | The URL of each iOS app Example: iOS://electronic | 1. iOS app store url 2.Ensure link is functioning at time of submission to avoid rejection. 3. iOS_url and iOS_package should direct to the same app |
ios_app_store_id
Type: string | Optional | The iOS app store ID
Example: 1234 | 1. iOS app store ID 2. iOS_url and iOS_package should direct to the same app |
ios_app_name
Type: string | Optional | The name of each iOS app
Example: Electronic iOS | 1. Name of ios_app_name must match the app linked from the ios_url and ios_app_store_id fields |
neighborhood
Type: string | Optional | Neighborhood where the destination is located
Example: Paris City Centre | 1. Character limit: 150 |
custom_label_0
Type: string | Optional | A short selling point for the trip
Example: Easy escape | 1. Recommended character limit: 20 |
custom_label_1
Type: string | Optional | A short selling point for the trip Example: Epic scenes | 1. Recommended character limit: 20 |
custom_label_2
Type: string | Optional | A short selling point for the trip Example: Endless fun | 1. Character limit: 20 |
custom_label_3
Type: string | Optional | A short selling point for the trip Example: Pack now | 1. Character limit: 20 |
custom_label_4
Type: string | Optional | A short selling point for the trip Example: Quick trip | 1. Character limit: 20 |