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.
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.
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.
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.
| Field | Level | Accepted values / example |
|---|---|---|
| vehicle_id | required | 1FADP5AU6DL536022 |
| title | required | 2017 Volvo XC90 T6 Inscription |
| description | required | |
| url | required | |
| make | required | Volvo |
| model | required | XC90 |
| year | required | 2017 |
| mileage.value | required | 31200 |
| mileage.unit | required | MI · KM |
| image[0].url | required | |
| body_style | required | CONVERTIBLE · COUPE · HATCHBACK · MINIVAN · TRUCK · SUV · SEDAN · VAN · WAGON · CROSSOVER · SMALL_CAR · OTHER |
| price | required | 39990 USD |
| exterior_color | required | Black |
| state_of_vehicle | required | New · Used · CPO |
| latitude | required | 37.4841 |
| longitude | required | -122.1483 |
| vehicle_type | optional 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
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.
| Field | Level | Accepted values / example |
|---|---|---|
| vehicle_offer_id | required | offer1 |
| make | required | Volvo |
| model | required | XC90 |
| year | required | 2024 |
| title | required | $299/month lease on the 2024 XC90 |
| offer_description | required | Valid through September on approved credit |
| url | required | |
| offer_disclaimer | optional required for offers | *Available on approved credit. See dealer for details. |
| image[0].url | required | |
| amount_price | recommended | 299 USD |
| amount_percentage | optional recommended for offers | 3.9 |
| amount_qualifier | optional recommended for offers | per month |
| term_length | optional recommended for offers | 36 |
| term_qualifier | optional recommended for offers | months · years · month · year |
| downpayment | optional recommended for offers | 1500 USD |
| downpayment_qualifier | optional recommended for offers | due at signing |
| trim | recommended | T6 Inscription |
| price | optional required for model catalogs | 13999 USD |
| body_style | optional 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 |
| generation | optional recommended for model catalogs | XC90 II |
| transmission | optional recommended for model catalogs | Automatic · Manual · Other · None |
| drivetrain | optional recommended for model catalogs | 4X2 · 4X4 · AWD · FWD · RWD · Other · None |
| fuel_type | optional recommended for model catalogs | Diesel · Electric · Gasoline · Flex · Hybrid · Petrol · PlugIn_Hybrid · Other |
| availability | optional recommended for model catalogs | AVAILABLE · NOT_AVAILABLE |
| exterior_color | optional recommended for model catalogs | White |
| interior_color | optional recommended for model catalogs | Blue |
| interior_upholstery | optional 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
Mileage is a value plus a unit, mapped as two fields. A bare number, or a unit outside MI and KM, fails the record.
New, Used and CPO are the accepted values. Anything else in that column rejects.
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.
Not a feed rejection but the most expensive miss: the catalog uploads cleanly and retargeting silently never fires.
One mapped catalog serves every channel; each page covers what that platform's feed needs.
Connect a source and serve AIA and Offers from the same project, or check your current feed free.