Catalog Setup

You need an appropriate real estate catalog that lists items to advertise such as apartments, condos, houses, lands, and so on. Each item has information to create customized ads. You can constantly update catalogs through various options. If you use batch uploads, you can also use a partial upload option, which enables you to create or update items that changed, see Batch Upload. This is available for all Dynamic Ads.

To set up catalogs, see:

Step 1: Create Listing Catalog

This contains a list of properties that you want to advertise. See Product Catalog Reference.

To create a home listing catalog, 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>/product_catalogs

To use the product catalog API, you need Marketing API Access Level and accept the Terms of Service by creating your first catalog through Business Manager.

Step 2: Setup Listing and Prices

This contains information for properties such as listing id, name, availability, description, address, bedrooms, bathrooms, and so on.

Listing Feed

This is 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.

You must provide the listing feed in one of these formats:

File FormatDescriptionSample File

XML

Typically 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, TSV

This format is not currently supported.

N/A

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.

NameTypeDescriptionRequired

home_listing_id

string

Unique apartment/home/condo level id - most granular id possible.

Yes

name

string

Yes

description

string

No

image

object

Max items: 20

Yes

image: url

string

Image source URL.

Yes

image: tag

string

No

num_beds

float

Number of beds

No

num_baths

float

Number of baths

No

property_type

string

Type of property, Allowed values are: apartment, condo, house, land, manufactured, other, townhouse.

No

listing_type

string

Type of listing. Allowed values are: for_rent_by_agent, for_rent_by_owner, for_sale_by_agent, for_sale_by_owner, foreclosed, new_construction, new_listing.

No

num_units

int

For apartments, condos for rental, list the number of units available.

No

address

object

A complete address for the listing that must be resolvable to its location.

Yes

address: addr1

string

Street address of this listing, e.g. 675 El Camino Real.

Yes

address: city

string

City of this listing, e.g. Palo Alto.

Yes

address: region

string

State, county, region or province of this listing, e.g. California.

Yes

address: country

string

Country of the listing, e.g. United States.

Yes

address: postal_code

string

Postal or zip-code of the listing, e.g. 94125 or NW1 3FG.

No

neighborhood

string

Listing neighborhood. Can have multiple. Max 20 items.

Yes

latitude

float

The latitude of the listing.

Yes

longitude

float

The longitude of the listing.

Yes

price

string

Sale or Rental price with ISO 4217 currency code.

Yes

availability

string

Whether or not the listing is available. Allowed values are: for_sale, for_rent, sale_pending, recently_sold, off_market, available_soon.

Yes

url

string

Link to listing page.

Yes

applink

object

App link to listing.

No

Step 3: Update Options

You can refresh home listing info in the catalog through the following ways with direct upload. See Direct Upload Feed Reference

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

Step 4: Filter Listing Catalog to Listing Set

This is a group of items in a catalog that you advertise in your Dynamic Ad. 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:

OperatorsType of filter

i_contains

Contains substring (case insensitive)

i_not_contains

Does not contain substring (case insensitive)

contains

Contains substring (case sensitive)

not_contains

Does not contain substring (case sensitive)

eq

Equal to (case insensitive)

neq

Not equal to (case insensitive)

lt

Less than (numeric fields only)

lte

Less than or equal to (numeric fields only)

gt

Greater than (numeric fields only)

gte

Greater than or equal to (numeric fields only)

DataData to filter

availability

Listing availability e.g. for_sale

listing_type

Listing type e.g. for_sale_by_agent

property_type

Property type e.g. house

price

Listing price

name

Name

city

City

country

Country

region

Region or state

postal_code

Postal code

num_beds

Number of beds

num_baths

Number of baths