"double quotes".address, neighborhood or image can be represented using JSON-encoded values or by a set of “flattened” plain-text columns labeled using JSON-path syntax, such as address.city, neighborhood[0], image[0].url, image[0].tag[0], image[0].tag[1]. Both conventions can be used interchangeably in the same file.<listings> XML node encloses a set of <listing> nodes, each of which represents a destination.<?xml declaration tag.UTF8, UTF16, or UTF32 text encodings, and defaults to LATIN1 if it encounters an unexpected byte sequences. You can provide text in field values in any language; however, field names must be given exactly as below, in English.| Field Name and Type | Description |
|---|---|
destination_idtype: string | Required. Max length: 100 Your unique identifier for the destination within the catalog. This will be matched with any content_ids provided in your destination app and pixel events. Tip: To improve performance, avoid using a space for this unique identifier field. |
addresstype: object | Required. Complete address for the destination that must be resolvable to its location. |
imagetype: object | Required. Max items: 20 Image data for this destination. You can provide up to 20 images for the destination. Each image contains two fields: url and tag. You can have multiple tags associated with an image. You must provide at least one image. Each image can be up to 4 MB in size. |
urltype: string | Required. Link to the external site where you can view the destination page. You can specify a URL on ad level too using template_url_spec. URLs on ad level take precedence over URLs in the feed. |
typetype: string | Required. Max items: 20 Type of destination, such as beach, city, food, sightseeing, culture, history, shopping, museum, tranquility, scenery, nature, architecture, business, friendly people, relaxation, night market, mountain, temple, hiking, snorkeling, and so on. There can be multiple types associated with a destination; meaning a destination can have multiple attributes, such as beach and sightseeing. |
nametype: string | Required. Most common name of the destination. |
neighborhoodtype: string | Optional. Max items: 20 One or more neighborhood(s) for the destination. Examples: Soho, Las Vegas Strip |
latitudetype: float | Optional. Latitude of the destination. Example: 37.484100 |
longitudetype: float | Optional. Longitude of the destination. Example: -122.148252 |
descriptiontype: string | Optional. Max size: 5000 Short paragraph describing the destination. |
pricetype: string | Optional.
Can be lowest or average price for this destination. You must specify the value with currency. Example: 99.99 USD |
price_changetype: int | Optional.
Price change:
Can be used for building product sets and in the universal creative (“average price dropped by X”). |
applinktype: element | Optional.
Deep link straight to the destination details page in your mobile app using App Links. Specify deep links in order of precedence, highest to lowest:
|
statusType: string | Controls whether an item is active or archived in your catalog. Only active items can be seen by people in your ads, shops or any other channels. Supported values: active, archived. Items are active by default. Learn more about archiving items.Example: activeNote: Some partner platforms such as Shopify may sync items to your catalog with a status called staging, which behaves the same as archived.This field was previously called visibility. While we still support the old field name, we recommend that you use the new name. |
custom_label_0custom_label_1custom_label_2custom_label_3custom_label_4Type: string | Max character limit: 100 Up to five custom fields for any additional information you want to filter items by when you create sets. For example, you could use a custom field to indicate all items that are part of a summer sale, and then filter those items into a set. This field supports any text value, including numbers. Example: Summer SaleThis field is supported by supplementary feeds. |
custom_number_0custom_number_1custom_number_2custom_number_3custom_number_4Type: int | Up to five custom fields for any additional number-related information you want to filter items by when you create sets. This field allows you to filter by number ranges (is greater than and is less than) when you create a set. For example, you could use this field to indicate the year an item was produced, and then filter a certain year range into a set.
This field supports whole numbers between 0 and 4294967295. It doesn’t support negative numbers, decimal numbers or commas, such as -2, 5.5 or 10,000. Example: 2022 |
internal_labelType: string | Add internal labels to help filter items when you create product sets. For example, you could add a “summer” label to all items that are part of a summer promotion and then filter those items into a set. Labels are only visible to you Enclose each label in single quotes (‘) and separate multiple labels with commas (,). Don’t include white spaces at the beginning or end of a label. Character limit: Up to 5,000 labels per product and 110 characters per label. Example (TSV, XLSX, Google Sheets): [‘summer’,’trending’] Example (CSV): “[‘summer’,’trending’]” Note: If you’re currently using custom labels ( custom_label_0 to custom_label_4) for filtering product sets, switching to internal labels (internal_label) instead is recommended. Unlike custom labels, you can add or update internal labels as often as needed without sending items through policy review each time, which can impact ad delivery.This field was previously called product_tags. While we still support the old field name, we recommend that you use the new name. |
| Field Name and Type | Description |
|---|---|
urltype: string | Required. URL of the destination image. Follow these image specifications:
|
tagtype: string | Optional. String that represents what’s in the image. There can be multiple tags associated with an image. Examples: Fitness Center, Swimming PoolINSTAGRAM_STANDARD_PREFERRED - Allows advertisers to tag a specific image in their feed as the default image that will be used for Instagram. This tag is case sensitive. |
address can be represented using JSON-encoded values or by a set of “flattened” plain-text columns labeled using JSON-path syntax, such as address.region. Both conventions can be used interchangeably in the same file.| Field Name and Type | Description |
|---|---|
addr1 (address.addr1)type: string | Street address of destination. Example: 675 El Camino Real |
address.city (city)type: string | Required. City where destination is located. Example: Palo Alto |
address.region (region)type: string | Required. State, county, region, or province for destination. Example: California |
address.postal_code (postal_code)type: string | Postal code or zip code for destination. Required unless country does not have a postal code system. Examples:
|
address.country (country)type: string | Required. Country of the destination. Example: United States |
address.city_id (city_id)type: string | Value to use in deep link URL ( template_url) in the universal creative. |
| Field Name and Type | Description |
|---|---|
ios_urltype: string | A custom scheme for the iOS app. Example: example-ios://electronic |
ios_app_store_idtype: string | The app ID for the App Store. Example: 1234 |
ios_app_nametype: string | The name of the app (suitable for display). Example: Electronic Example iOS |
iphone_urltype: string | A custom scheme for the iPhone app. Example: example-iphone://electronic |
iphone_app_store_idtype: string | The app ID for the App Store. Example: 5678 |
iphone_app_nametype:string | The name of the app (suitable for display). Example: Electronic Example iPhone |
ipad_urltype: string | A custom scheme for the iPhone app. Example: example-ipad://electronic |
ipad_app_store_idtype: string | The app ID for the App Store. Example: 9010 |
ipad_app_nametype: string | The name of the app (suitable for display). Example: Electronic Example iPad |
android_urltype: string | A custom scheme for the Android app. Example: example-android://electronic |
android_packagetype: string | A fully-qualified package name for intent generation. Exammple: com.electronic |
android_app_nametype: string | The name of the app (suitable for display). Example: Electronic Example Android |
vertical to destinations:curl -X POST \
-F 'name="Test Destination Catalog"' \
-F 'vertical="destinations"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v10.0/BUSINESS_ID/owned_product_catalogs
curl -X POST \
-F 'name="Test Feed"' \
-F 'schedule={
"interval": "DAILY",
"url": "http://www.example.com/sample_feed.tsv",
"hour": "22"
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_CATALOG_ID>/product_feeds
{ "id" : <PRODUCT_FEED_ID> }
PRODUCT_FEED_ID:curl \
-F "url=http://www.example.com/sample_feed.xml" \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_ID>/uploads
curl -X POST \
-F 'name="Test Feed"' \
-F 'schedule={
"interval": "DAILY",
"url": "http://www.example.com/sample_feed.tsv",
"hour": "22"
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_CATALOG_ID>/product_feeds
{ "id" : <PRODUCT_FEED_ID> }
PRODUCT_FEED_ID:curl \
-F "url=http://www.example.com/sample_feed.xml" \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_ID>/uploads
curl \
-F 'name=Test Destination Set' \
-F 'filter={"price_change":{"lt":-20}}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_CATALOG_ID>/product_sets
filter parameter is made up of the following operators and data:| Operators | Filter Type |
|---|---|
i_contains | Contains substring. Operator is case-insensitive. |
i_not_contains | Does not contain substring. Operator is case-insensitive. |
contains | Contains substring. Operator is case-insensitive. |
not_contains | Does not contain substring. Operator is case-insensitive. |
eq | Equal to. Operator is case-insensitive. |
neq | Not equal to. Operator is case-insensitive. |
lt | Less than. For numeric fields only. |
lte | Less than or equal to. For numeric fields only. |
gt | Greater than. For numeric fields only. |
gte | Greater than or equal to. For numeric fields only. |
| Data | The data being filtered |
|---|---|
country | Country of the destination. |
price | Price for this destination. The price is in cents. |
currency | Currency. |
price_change | Price drop or increase. |
city | City of the destination. |
description | Description for this destination. |
name | Name for this destination. |
destination_set_id | Your unique identifier for the destination within the catalog. |
curl \
-F 'external_event_sources=["<PIXEL_ID>","<APP_ID>"]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_CATALOG_ID>/external_event_sources
| Parameter Name & Type | Description |
|---|---|
external_event_sourcestype: int[] | A list of Pixel and App IDs to associate with the catalog. |