Ducted

Meta Automotive feeds:
Inventory and Offer Ads.

Vehicle catalogs for Facebook and Instagram.

Meta runs two automotive catalog products, and they take different feeds. Ducted ships a template for each, so the same dealer inventory serves both without hand-building either.

Automotive Inventory Ads (AIA)

VIN-level dynamic ads: a shopper who viewed a truck on the VDP sees that truck on Instagram at the current price. AIA needs a vehicle catalog plus the Meta Pixel, and the catalog item IDs must match what the pixel sends, or the retargeting never connects. fb_page_id is optional: Meta only needs it for inventory ads with an on-Facebook destination such as Marketplace.

Automotive Offer Ads

Offer-level campaigns: one row per lease, finance or cash offer on a model, separate from the vehicle inventory catalog. Ducted's template carries the offer type, amount and term structure, downpayment, disclaimer and market scoping. The same template covers model catalogs: a row with no offer_type is a model, and price and body_style become required for it.

Ducted's Meta Vehicle Offers & Models template uses comscore_market_codes, not the retired dma_codes that stopped delivering in June 2026.

What the Inventory Ads feed needs

Generated from the Ducted Meta Automotive template, the same field rules your mapping is validated against.

76 fields: 16 required, 60 optional. 1 field changes level with the market, the product or how the record is sent.

FieldLevelAccepted values / example
vehicle_idrequired1FADP5AU6DL536022
titlerequired2017 Volvo XC90 T6 Inscription
descriptionrequired
urlrequired
makerequiredVolvo
modelrequiredXC90
yearrequired2017
mileage.valuerequired31200
mileage.unitrequiredMI · KM
image[0].urlrequired
body_stylerequiredCONVERTIBLE · COUPE · HATCHBACK · MINIVAN · TRUCK · SUV · SEDAN · VAN · WAGON · CROSSOVER · SMALL_CAR · OTHER
pricerequired39990 USD
exterior_colorrequiredBlack
state_of_vehiclerequiredNew · Used · CPO
latituderequired37.4841
longituderequired-122.1483
vehicle_typeoptional
recommended for non-car vehicles (Meta treats an empty vehicle_type as car_truck)
car_truck · boat · commercial · motorcycle · powersport · rv_camper · trailer · other

Field rules from the official spec, verified 2026-10-01.

Also supported, always optional (59): address, vin, trim, transmission, drivetrain, fuel_type, condition, availability, dealer_id, dealer_name, sale_price, interior_color, image[0].tag[0], date_first_on_lot, days_on_lot, dealer_phone, stock_number, address.city, address.region, address.country, address.postal_code, fb_page_id, custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4, address.addr1, custom_number_0, custom_number_1, custom_number_2, custom_number_3, custom_number_4, dealer_communication_channel, dealer_privacy_policy_url, vehicle_registration_plate, availability_circle_radius, availability_circle_radius_unit, status, chrome_id, image[1].url, image[2].url, image[3].url, image[4].url, image[5].url, image[6].url, image[7].url, image[8].url, image[9].url, image[10].url, image[11].url, image[12].url, image[13].url, image[14].url, image[15].url, image[16].url, image[17].url, image[18].url, image[19].url

What the Vehicle Offers & Models feed needs

Generated from the Ducted Meta Vehicle Offers & Models template, the same field rules your mapping is validated against.

53 fields: 8 required, 2 recommended, 43 optional. 17 fields change level with the market, the product or how the record is sent.

FieldLevelAccepted values / example
vehicle_offer_idrequiredoffer1
makerequiredVolvo
modelrequiredXC90
yearrequired2024
titlerequired$299/month lease on the 2024 XC90
offer_descriptionrequiredValid through September on approved credit
urlrequired
offer_disclaimeroptional
required for offers
*Available on approved credit. See dealer for details.
image[0].urlrequired
amount_pricerecommended299 USD
amount_percentageoptional
recommended for offers
3.9
amount_qualifieroptional
recommended for offers
per month
term_lengthoptional
recommended for offers
36
term_qualifieroptional
recommended for offers
months · years · month · year
downpaymentoptional
recommended for offers
1500 USD
downpayment_qualifieroptional
recommended for offers
due at signing
trimrecommendedT6 Inscription
priceoptional
required for model catalogs
13999 USD
body_styleoptional
required for model catalogs
CONVERTIBLE · COUPE · CROSSOVER · ESTATE · GRANDTOURER · HATCHBACK · MINIBUS · MINIVAN · MPV · PICKUP · ROADSTER · SALOON · SEDAN · SPORTSCAR · SUPERCAR · SUPERMINI · SUV · TRUCK · VAN · WAGON · OTHER · NONE
generationoptional
recommended for model catalogs
XC90 II
transmissionoptional
recommended for model catalogs
Automatic · Manual · Other · None
drivetrainoptional
recommended for model catalogs
4X2 · 4X4 · AWD · FWD · RWD · Other · None
fuel_typeoptional
recommended for model catalogs
Diesel · Electric · Gasoline · Flex · Hybrid · Petrol · PlugIn_Hybrid · Other
availabilityoptional
recommended for model catalogs
AVAILABLE · NOT_AVAILABLE
exterior_coloroptional
recommended for model catalogs
White
interior_coloroptional
recommended for model catalogs
Blue
interior_upholsteryoptional
recommended for model catalogs
LEATHER · FABRIC · OTHER

Field rules from the official spec, verified 2026-10-01.

Also supported, always optional (26): offer_type, image[0].tag[0], start_date, end_date, market_name, comscore_market_codes, status, image[1].url, image[2].url, image[3].url, image[4].url, image[5].url, image[6].url, image[7].url, image[8].url, image[9].url, image[10].url, image[11].url, image[12].url, image[13].url, image[14].url, image[15].url, image[16].url, image[17].url, image[18].url, image[19].url

Where Meta vehicle feeds get rejected

Mileage without its unit

Mileage is a value plus a unit, mapped as two fields. A bare number, or a unit outside MI and KM, fails the record.

state_of_vehicle outside the accepted list

New, Used and CPO are the accepted values. Anything else in that column rejects.

Missing location

AIA records need the dealership address, either as one JSON address column or as address.city, address.region and address.country, plus latitude and longitude. Records without them are rejected.

Catalog IDs that do not match the pixel

Not a feed rejection but the most expensive miss: the catalog uploads cleanly and retargeting silently never fires.

Validate your Meta feed for free →

From source to a live feed URL

  1. Connect the source. HomeNet, DealerOn, DealerMasters, All Auto Network, Revvable, a file, a feed URL or a REST API. No source at all? Website Indexing builds one from the dealer site.
  2. AutoMap the fields. Every source column is scored against the vehicle template and the best match is pre-filled. You confirm or tweak.
  3. Transform what needs it. Casing, currency and number formats, conditional values, fallbacks for fields the source sometimes leaves empty.
  4. Validate before you send. The health check names the field, counts the affected records and shows example rows from your own data.
  5. Serve a permanent URL. The platform fetches your feed on a schedule; feed pull tracking shows when it last did.

The rest of the automotive stack

One mapped catalog serves every channel; each page covers what that platform's feed needs.

Automotive feedsGoogle VLATikTok AutomotiveMicrosoft Automotive

Both Meta catalogs, one mapped inventory.

Connect a source and serve AIA and Offers from the same project, or check your current feed free.

Create free accountCheck your Meta feed