For commerce, to publish Real Estate listings, your business needs to be verified.
Step 1: Create a Home Listing catalog.
Step 2: Set up listing and pricing.
Step 3: Update options.
Step 4: Filter listing catalog to listing set.
Step 5: Send Offline Conversions (Optional)
Step 6: Build your Audience for Real Estate. Differently from what happens with real estate listings published by users, for partner integrations, leads are sent to partners via lead form, rather than via Messenger chat. Learn more about Retrieving Leads for commerce.
Step 7: Create and deliver ads for your home listings.
Step 8: Get delivery information to see how people on Facebook are engaging in you ads. See Ads Insights.
Step 9: Use debugging tools to diagnose and resolve problems. See Advantage+ Catalog Ads Debugging Tools.
Your catalog should contain a list of properties that you want to advertise. See Catalog Reference.
To create a home listing catalog for Advantage+ catalog ads, set vertical
to home_listings
:
curl \
-F 'name=Home Listing Catalog Name' \
-F 'vertical=home_listings' \
-F 'access_token=<ACCESS TOKEN>' \
https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/owned_product_catalogs
To use the catalog API, you need Marketing API Access Level and accept the Terms of Service by creating your first catalog through Business Manager.
For instructions on how to create a catalog for commerce, visit the Marketplace Platform documentation.
Your listing contains information for properties, such as listing ID, name, availability, description, address, bedrooms, bathrooms, and so on. You can have a set of listings uploaded or fetched from your business. A listing item is a single property presented in your website or app.
You can have a single feed for all properties in your catalog, or you can have multiple feeds where one feed represents properties in a single country, for a single real estate agency, or for one broker.
For Advantage+ catalog ads, you must provide the listing feed in one of these formats:
File Format | Description | Sample File |
---|---|---|
XML | Typically generated by automated feed provider systems. A root | |
CSV, TSV | The first row must list the chosen field names in the order the values will be given. Subsequent rows then supply the corresponding values for each home listing. Nested or multi-value fields such as image can be represented using JSON-encoded values or by a set of "flattened" plain-text columns labeled using JSON-path syntax, such as | Download (CSV) |
For commerce, you must provide the listing feed in XML format:
File Format | Description |
---|---|
XML | Typically generated by automated feed provider systems. A root |
CSV, TSV, JSON | These formats are not currently supported. |
Our feed parser automatically detects UTF8
, UTF16
or UTF32
text-encodings, falling back to LATIN1
if unexpected byte sequences appear.
<?xml version="1.0" encoding="UTF-8"?> <listings> <title>example.com Feed</title> <link rel="self" href="http://www.example.com"/> <listing> <home_listing_id>12345678</home_listing_id> <name>1 Hacker Way, Menlo Park, CA 94025</name> <availability>for_rent</availability> <description>An amazing listing</description> <address format="simple"> <component name="addr1">1 Hacker Way</component> <component name="city">Menlo Park</component> <component name="region">California</component> <component name="country">United States</component> <component name="postal_code">94025</component> </address> <latitude>1.11414</latitude> <longitude>-1.835003</longitude> <neighborhood>Menlo Oaks</neighborhood> <image> <url>http://example.com/12345678-1.jpg</url> </image> <image> <url>http://example.com/12345678-2.jpg</url> </image> <image> <url>http://example.com/12345678-3.jpg</url> </image> <listing_type>for_rent_by_agent</listing_type> <num_baths>6</num_baths> <num_beds>5</num_beds> <num_units>1</num_units> <price>110000 USD</price> <property_type>house</property_type> <url>http://www.example.com/link_to_listing</url> <year_built>2007</year_built> </listing> </listings>
The following supported fields are designed for items you add to your product catalog.
For localized catalogs, see supported fields for home listings.
Our feed parser automatically detects UTF8
, UTF16
or UTF32
text-encodings, falling back to LATIN1
if unexpected byte sequences appear. While text in field values can be given in any language, field names must be given exactly as below, in English.
Field Name and Type | Description |
---|---|
type: string | Required for Advantage+ catalog ads and commerce. Unique home (apartment/condo) listing ID; most granular ID possible. Example: |
type: string | Not applicable to Advantage+ catalog ads. Optional for commerce. Building or apartment's unique ID. Must be unique per group. |
type: string | Required for Advantage+ catalog ads and commerce. Title of home listing. Example: |
type: string | Required for Advantage+ catalog ads and commerce. Current availability for the home listing. Supported values are: |
type: string | Required for Advantage+ catalog ads and commerce. Street address for the property that must be resolvable to its location. See Address Object Parameters. Example: |
type: string | Required for Advantage+ catalog ads and commerce. City where the property is located. See Address Object Parameters. Example: |
type: string | Required for Advantage+ catalog ads and commerce. State, county, region, or province for the property. See Address Object Parameters. Example: |
type: object | Required for Advantage+ catalog ads and commerce. Country where the property is located. See Address Object Parameters. Example: |
type: string | Required for Advantage+ catalog ads and commerce. Country where the property is located. See Address Object Parameters. Example: |
type: float | Required for Advantage+ catalog ads and commerce. Latitude of the listing. Example: |
type: float | Required for Advantage+ catalog ads and commerce. Longitude of the listing. Example: |
type: string | Required for Advantage+ catalog ads. Optional, but strongly recommended for commerce. Max neighborhoods allowed: 20 Listing neighborhood for the property. Can have multiple neighborhoods. If you have more than one neighborhood, add additional columns for each type and use JSON-path syntax in each column name to indicate the number of neighborhoods. Example: |
type: string | Required for Advantage+ catalog ads and commerce. Sale or rental price of the property. Format price as the cost, followed by the [3-digit ISO currency code](https://en.wikipedia.org/wiki/ISO_4217?fbclid=IwAR0_xYfUmL3kIUA6sMeEaFAzbJa4MLeMiPDPrftFSX6wkKiTXxPinC-5j70">, with a space between cost and currency. Example: |
type: object | Required for Advantage+ catalog ads and commerce. Maximum images: 20 Maximum size: 4 MB The URL for the image used in your ad.
Example: |
type: string | Required for Advantage+ catalog ads and commerce. Link to the property listing page. Must be a valid URL. Example: |
type: string | Optional for Advantage+ catalog ads. Required for commerce. Max characters: 5000 Description of the property. Example: |
type: float | Optional for Advantage+ catalog ads. Required for commerce. Total number of bedrooms. Can be Example: |
type: float | Optional for Advantage+ catalog ads. Total number of bathrooms. For commerce, must be |
type: float | Not applicable for Advantage+ catalog ads. Required for commerce. Total number of rooms of property. |
type: string | Optional for Advantage+ catalog ads. Type of property. Supported values for Advantage+ catalog ads: |
type: string | Optional for Advantage+ catalog ads. Type of property listing. Supported values for Advantage+ catalog ads: |
type: int | Not applicable for Advantage+ catalog ads. Required for commerce. Area or space of the floor plan's listing. |
type: string | Not applicable for Advantage+ catalog ads. Required for commerce. The units (square feet or square meters) of the floor area's value. Supported values: |
type: string | Not applicable for Advantage+ catalog ads. Optional for commerce. Type of air conditioning. Supported values: |
type: string | Not applicable for Advantage+ catalog ads. Optional for commerce. Type of furniture available in the property. Supported values: |
type: string | Not applicable for Advantage+ catalog ads. Optional for commerce. Type of heating installed in the property. Supported values: |
type: string | Not applicable for Advantage+ catalog ads. Optional for commerce. Type of laundry available. Supported values: |
type: int | Optional for Advantage+ catalog ads and commerce. Total number of units (apartments, condos) available for rent. Example: |
type: string | Not applicable for Advantage+ catalog ads. Optional for commerce. Type of parking available on property. Supported values: |
type: string | Not applicable for Advantage+ catalog ads. Optional for commerce. Whether the partner company has verified the listing. Supported values: |
type: string | Year the property was built, using the YYYY format, 4 digit year. Example: 1994. |
type: string | Not applicable for Advantage+ catalog ads. Optional for commerce. Indicates the pets allowed on the property: |
type: object | List of dates and prices that a listing is available. When you provide values, Facebook can recommend listings based on their available dates and dynamically show the associated price in your ad. |
type: object | App link to listing. |
Type: 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: Example: Note: Some partner platforms such as Shopify may sync items to your catalog with a status called staging, which behaves the same as This field was previously called |
Visit the Marketplace Platform documentation for commerce country-specific required fields.
Field Name and Type | Description |
---|---|
type: string | Required for Advantage+ catalog ads and commerce. Image source URL. Follow these image specifications:
|
type: string | Optional for Advantage+ catalog ads and commerce. Tag appended to the image that shows what's in the image. There can be multiple tags associated with an image. Examples:
|
Field Name and Type | Description |
---|---|
type: string | Required. Street address of hotel. Example: |
type: string | Required. City where hotel is located. Example: |
type: string | Required. State, county, region or province for hotel. Example: |
type: string | Required. Country of the hotel. Example: |
type: string | Postal or zip-code of the property. Required unless country does not have a postal-code system. Examples: |
With available_dates_price_config
, you can provide the availability and prices of each property for a given date range. When you include date ranges in this field, Facebook factors this availability into our product recommendations and tries to show listings that are available for the dates someone searched on your site. Optionally, if you include pricing we can also show date-specific prices in your ad creative. To enable this feature, you must also send Facebook lease_start_date
and lease_end_date
in your pixel events.
Field Name and Type | Description |
---|---|
type: string | Optional if Start of the available date range in ISO-8601 format; inclusive of the start date. If you only provide Example: |
type: string | Optional if End of the available date range in ISO-8601 format; excludes the end date. If you only provide Example: |
type: string | Integer price of the listing during this time range. Example: |
type: string | Required if you provide ISO-4217 currency code. Example: |
type: string | Length of stay for the specified rate. Allowed values are: |
This is an example of a listing's availability and how it appears in JSON:
"available_dates_price_config": [ { // available until 11/01 at $150/night "end_date": "2018-11-01", "rate": "15000", "currency": "USD", "interval": "nightly", }, { // available from 11/01 - 12/01 at $200/night "start_date": "2018-11-01", "end_date": "2018-12-01", "rate": "20000", "currency": "USD", "interval": "nightly", }, { // available from 11/01 onward at $500/week "start_date": "2018-11-01", "rate": "50000", "currency": "USD", "interval": "weekly", }, ]
Provide deep links in feed following the App Links specification. Deep link information in feed takes precedence over any information Facebook collects with App Links metadata with our web crawler.
If you already have deep link information from App Links, you don't need to specify this data. Facebook uses information from App Links to display the correct deep link. To display deep links in your ads, see Advantage+ Catalog Ads, Ad Template.
For Advantage+ catalog ads, you can refresh home listing info in the catalog through the following ways with direct upload. See Direct Upload Feed Reference
Example — You can manually do a one-time upload:
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
For commerce, You can refresh home listing info in the catalog by setting up a recurring (scheduled) feed upload and updating your feed. In Marketplace, we highly recommend to use the Set a Schedule option.
Commerce supports a multilanguage experience. When you add a secondary language feed to a catalog, you can create another feed with the second language from that single catalog. The information on the secondary feeds overrides your default language when the relevant audience sees your listings.
This feature is applicable only for the specific country partners. Please contact to your Facebook representative to find out possibility in your market.
This is a group of items in a catalog that you advertise in your Advantage+ catalog ads. Each listing catalog can have many listing sets.
curl \
-F "name=test set" \
-F 'filter={"availability":{"eq":"for_sale"}}' \
-F "access_token=" \
https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_sets
The above filter
is made up of the following operators and data:
Operators | Type of filter |
---|---|
| Contains substring (case insensitive) |
| Does not contain substring (case insensitive) |
| Contains substring (case sensitive) |
| Does not contain substring (case sensitive) |
| Equal to (case insensitive) |
| Not equal to (case insensitive) |
| Less than (numeric fields only) |
| Less than or equal to (numeric fields only) |
| Greater than (numeric fields only) |
| Greater than or equal to (numeric fields only) |
Data | Data to filter |
---|---|
| Listing availability. Example: |
| Listing type. Example: |
| Property type. Example: |
| Listing price |
| Name |
| City |
| Country |
| Region or state |
| Postal code |
| Number of beds |
| Number of baths |
You can send offline conversion events and see how many customers viewed or clicked on Facebook ads and commerce listings before converting; use the Offline Conversions API and add the following fields in step 4. Upload Offline Events.
Match keys compare a conversion to a user.
Key | Description |
---|---|
| Email address(es) Hash |
| Phone number(s) Hash |
| First name Hash |
| Last name Hash |
| Apple or Android advertising ID Hash |
| ZIP code(s) Hash |
| City Hash |
| State Hash |
| Country Hash |
| Date of birth (DD format) Hash |
| Date of birth (YYYY format) Hash |
| Gender Hash |
| Age Hash |
| Lead ID of Marketplace leads |
Custom data compares a conversion to a dealer.
Field | Description |
---|---|
|
|
| Set to |
Event details describe the offline conversion event that took place. The upload frequency is daily, within 48 hours of the event.
Field | Description |
---|---|
| Required Event type enum:
|
| Required Time of the event |
| Required Rent value. Set to |
| Required Currency code |