Skip to content

Real Estate Ads - Get Started

Updated: May 21, 2026

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 with your ads. See Ads Insights.

Step 9: Use debugging tools to diagnose and resolve problems. See Advantage+ Catalog Ads Debugging Tools.

Step 1: Create a Home Listing Catalog

For Advantage+ catalog ads

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:

Select language

cURL


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 commerce

For instructions on how to create a catalog for commerce, visit the Marketplace Platform documentation.

Step 2: Set Up Listing and Prices

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 on your website or app.

Supported Feed Formats

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 FormatDescriptionSample File
XMLTypically generated by automated feed provider systems. A root <listings> XML node encloses a set of <listing> nodes, each representing a home listing. The file must begin with a valid <?xml declaration tag.Download⁠
CSV, TSVThe 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 image[0].url, image[0].tag[0], image[0].tag[1].Download⁠ (CSV)

For commerce, you must provide the listing feed in XML format:

File FormatDescription
XMLTypically generated by automated feed provider systems. A root <listings> XML node encloses a set of <listing> nodes, each representing a home listing. The file must begin with a valid <?xml declaration tag.
CSV, TSV, JSONThese 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.

Feed XML example

<?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>

Supported Fields - Home Listings

The following supported fields are designed for items you add to your product catalog. For a complete list of supported fields, see the Home Listing reference.

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 TypeDescription
home_listing_id type: stringRequired for Advantage+ catalog ads and commerce. Unique home (apartment/condo) listing ID; most granular ID possible. Example: FB_home_1234
home_listing_group_id type: stringNot applicable to Advantage+ catalog ads. Optional for commerce. Building or apartment's unique ID. Must be unique per group.
name type: stringRequired for Advantage+ catalog ads and commerce. Title of home listing. Example: Modern Eichler in Green Oaks
availability type: stringRequired for Advantage+ catalog ads and commerce. Current availability for the home listing. Supported values are: for_sale, for_rent, sale_pending, recently_sold, off_market, available_soon. For commerce, the only supported value is 'for_rent'.
address type: stringRequired for Advantage+ catalog ads and commerce. Street address for the property that must be resolvable to its location. See Address Object Parameters. Example: 1 Hacker Way
address.city type: stringRequired for Advantage+ catalog ads and commerce. City where the property is located. See Address Object Parameters. Example: Menlo Park
address.region type: stringRequired for Advantage+ catalog ads and commerce. State, county, region, or province for the property. See Address Object Parameters. Example: Menlo Park
address.country type: objectRequired for Advantage+ catalog ads and commerce. Country where the property is located. See Address Object Parameters. Example: United States
address.postal_code type: stringRequired for Advantage+ catalog ads and commerce. Country where the property is located. See Address Object Parameters. Example: United States
latitude type: floatRequired for Advantage+ catalog ads and commerce. Latitude of the listing. Example: 37.484100
longitude type: floatRequired for Advantage+ catalog ads and commerce. Longitude of the listing. Example: -122.148252
neighborhood type: stringRequired 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: neighborhood[0]; neighborhood[1]
price type: stringRequired 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⁠, with a space between cost and currency. Example: 13,999 USD
image type: objectRequired for Advantage+ catalog ads and commerce. Maximum images: 20 Maximum size: 4 MB The URL for the image used in your ad. * For square (1:1) aspect ratios in the carousel ad format, your image should be 600x600. * For single image ads, your image should be at least 1200x630 pixels. * For commerce, The first photo is displayed in the commerce feed as the cover image. Example: image[0].url, image[0].tag[0] See Image Object Parameters.
url type: stringRequired for Advantage+ catalog ads and commerce. Link to the property listing page. Must be a valid URL. See Image Object Parameters. Example: http://www.realestate.com
description type: stringOptional for Advantage+ catalog ads. Required for commerce. Max characters: 5000 Description of the property. Example: Beautiful 3BD home available in Belmont
num_beds type: floatOptional for Advantage+ catalog ads. Required for commerce. Total number of bedrooms. Can be 0 for Studios. Example: 2
num_baths type: floatOptional for Advantage+ catalog ads. Total number of bathrooms. For commerce, must be 1 at minimum.
num_rooms type: floatNot applicable for Advantage+ catalog ads. Required for commerce. Total number of rooms of property.
property_type type: stringOptional for Advantage+ catalog ads. Type of property. Supported values for Advantage+ catalog ads: apartment, condo, house, land, manufactured, other, townhouse. Supported values for commerce: apartment, builder_floor, condo, house, house_in_condominium, house_in_villa, loft, penthouse, studio, townhouse, other.
listing_type type: stringOptional for Advantage+ catalog ads. Type of property listing. Supported values for Advantage+ catalog ads: for_rent_by_agent, for_rent_by_owner, for_sale_by_agent, for_sale_by_owner, foreclosed, new_construction, new_listing. Supported values for commerce: for_rent_by_agent, for_rent_by_owner.
area_size type: intNot applicable for Advantage+ catalog ads. Required for commerce. Area or space of the floor plan's listing.
area_unit type: stringNot applicable for Advantage+ catalog ads. Required for commerce. The units (square feet or square meters) of the floor area's value. Supported values: sq_ft, sq_m.
ac_type type: stringNot applicable for Advantage+ catalog ads. Optional for commerce. Type of air conditioning. Supported values: central, other,none.
furnish_type type: stringNot applicable for Advantage+ catalog ads. Optional for commerce. Type of furniture available in the property. Supported values: furnished, semi-furnished,unfurnished.
heating_type type: stringNot applicable for Advantage+ catalog ads. Optional for commerce. Type of heating installed in the property. Supported values: central,gas,electric,radiator,other,none.
laundry_type type: stringNot applicable for Advantage+ catalog ads. Optional for commerce. Type of laundry available. Supported values: in_unit,in_building, other,none.
num_units type: intOptional for Advantage+ catalog ads and commerce. Total number of units (apartments, condos) available for rent. Example: 0
parking_type type: stringNot applicable for Advantage+ catalog ads. Optional for commerce. Type of parking available on property. Supported values: garage,street,off-street, other,none.
partner_verification type: stringNot applicable for Advantage+ catalog ads. Optional for commerce. Whether the partner company has verified the listing. Supported values: verified, none.
year_built type: stringYear the property was built, using the YYYY format, 4 digit year. Example: 1994.
pet_policy type: stringNot applicable for Advantage+ catalog ads. Optional for commerce. Indicates the pets allowed on the property: cat, dog, all, none.
available_dates_price_config type: objectList 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. See Available Dates Object Parameters
applink type: objectApp link to listing.
status Type: stringControls 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: active Note: 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.

Country-Specific Required Fields — Commerce Only

Visit the Marketplace Platform documentation for commerce country-specific required fields.

Image Object Parameters

Field Name and TypeDescription
url type: stringRequired for Advantage+ catalog ads and commerce. Image source URL. Follow these image specifications: * All images must be in JPG, GIF, or PNG format. * For carousel ads and collection ads: Images display in square (1:1) format. The minimum image size is 500 x 500 px. We recommend 1024 x 1024 px for best quality. * For single image ads: Images display at a 1.91:1 aspect ratio. The minimum image size is 500 x 500 px. We recommend 1200 x 628 px for best quality.
tag type: stringOptional 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: Fitness Center, Swimming Pool INSTAGRAM_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 Object Parameters

Field Name and TypeDescription
addr1 type: stringRequired. Street address of hotel. Example: 675 El Camino Real
city type: stringRequired. City where hotel is located. Example: Palo Alto
region type: stringRequired. State, county, region or province for hotel. Example: California
country type: stringRequired. Country of the hotel. Example: United States
postal_code type: stringPostal or zip-code of the property. Required unless country does not have a postal-code system. Examples: 94125, NW1 3FG

Available Dates Price Config

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.

Available Dates Object Parameters

Field Name and TypeDescription
start_date type: stringOptional if end_date is provided. Start of the available date range in ISO-8601 format; inclusive of the start date. If you only provide start_date, end_date defaults to a year from that date. Example: YYYY-MM-DD, such as 2018-01-01.
end_date type: stringOptional if start_date is provided. End of the available date range in ISO-8601 format; excludes the end date. If you only provide end_date, start_date defaults to the current date. Example: YYYY-MM-DD, such as 2018-02-01.
rate type: stringInteger price of the listing during this time range. Example: 10000 if the listing was $100.00 USD
currency type: stringRequired if you provide rate. ISO-4217⁠ currency code. Example: USD, GBP, etc.
interval type: stringLength of stay for the specified rate. Allowed values are: nightly, weekly, monthly, sale.

This is an example of a listing's availability and how it appears in JSON: November 2018 calendar with date ranges shaded to show a listing priced at 150 dollars per night, then 200 dollars per night or 500 dollars per week

"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.

Step 3: Update Options

Advantage+ Catalog Ads

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:

Select language

cURL


  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

Commerce

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 using the Set a Schedule option.

Set a Schedule for Your Catalog Data Feed Upload

  • Go to Commerce Manager.
  • Click Data Sources.
  • Click Add Data Source.
  • Click Use Data Feeds and click Next.
  • Click Set a schedule.
    Data feed setup with Set a Schedule option selected, data feed URL and login fields, and Hourly, Daily, Weekly upload frequency options
  • Choose how frequently you want Facebook to check your data feed for updates: Daily, Hourly, and Weekly. If you choose Hourly or Weekly as your frequency, you can also specify when your scheduled upload repeats.
  • Enter the direct URL for your feed. You can use URLs that use HTTP, HTTPS, FTP, or SFTP. Note: The URL should point directly to your data feed file; otherwise, the upload may fail.
  • (Optional) Enter the username and password for the data feed provider. This is different from the username and password you use to access your Facebook ad account.
  • Enter a name for your data feed.
  • Choose the currency type for your data feed. The currency type is used for your data feed if you don't specify it in your data feed file.
  • Click Next.
  • Review your data feed file for any errors. If you're missing any required columns in your file, or there are columns that Facebook doesn't recognize, you can map them to the appropriate columns here. Any columns mapped here are saved for future data feed uploads.
  • Click Next.

Multilanguage Feed Upload

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 specific country partners. Please contact your Facebook representative to check availability in your market.

  • Create a catalog with a data feed for your default language and country.
  • Create an XML file only with the listing ID (home_listing_id) and additional fields that required local language overwrite like name, description or additional fields. To overwrite information, the home_listing_id must match the ones in your original catalog data feed.
  • Add the additional information feed from the Commerce Manager.
    Home Listings tab in Catalogs with the Add Home Listings menu open and Add Home Listing Information highlighted
    Add the additional feed from the Commerce Manager [Add Home Listing Information] - [Add Language Information]
    Add Home Listing Information dialog with Add Country Information and Add Language Information options; Add Language Information is selected
  • Confirm the two data sources within the same catalog.
    Home Listing Data Sources table listing two data feeds, a language feed and a listing feed, both with All good status in the same catalog

Step 4: Filter Listing Catalog to Listing Set

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.

Select language

cURL


  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:

OperatorsType of filter
i_containsContains substring (case insensitive)
i_not_containsDoes not contain substring (case insensitive)
containsContains substring (case sensitive)
not_containsDoes not contain substring (case sensitive)
eqEqual to (case insensitive)
neqNot equal to (case insensitive)
ltLess than (numeric fields only)
lteLess than or equal to (numeric fields only)
gtGreater than (numeric fields only)
gteGreater than or equal to (numeric fields only)
DataData to filter
availabilityListing availability. Example: for_sale
listing_typeListing type. Example: for_sale_by_agent
property_typeProperty type. Example: house
priceListing price
nameName
cityCity
countryCountry
regionRegion or state
postal_codePostal code
num_bedsNumber of beds
num_bathsNumber of baths

Step 5: Send Offline Conversions

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

Match keys compare a conversion to a user.

KeyDescription
emailEmail address(es) Hash
phonePhone number(s) Hash
fnFirst name Hash
lnLast name Hash
madidApple or Android advertising ID Hash
zipZIP code(s) Hash
ctCity Hash
stState Hash
countryCountry Hash
dobDate of birth (DD format) Hash
dobyDate of birth (YYYY format) Hash
genGender Hash
ageAge Hash
lead_idLead ID of Marketplace leads

Custom Data

Custom data compares a conversion to a dealer.

FieldDescription
content_idshome_listing_id from the catalog upload
content_typeSet to home_listing

Event Details

Event details describe the offline conversion event that took place. The upload frequency is daily, within 48 hours of the event.

FieldDescription
event_nameRequired Event type enum: ViewContent Search AddToCart AddToWishlist Lead = Had a phone call or other qualified lead CompleteRegistration = Appointment setup InitiateCheckout = Agency visit AddPaymentInfo = Property viewing Purchase = Lease signed Other
event_timeRequired Time of the event
valueRequired Rent value. Set to 0 for non-lease events.
currencyRequired Currency code

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About