VIN-level inventory in the newest automotive channel.
TikTok added automotive ads in July 2025, which makes it the least-contested of the major vehicle channels. Inventory Ads promote individual VINs and are what dealers and marketplaces run; Model Ads promote models, trims and offers and are aimed at manufacturers.
Ducted also carries a TikTok Automotive Model template for manufacturer campaigns: 8 fields promoting a model and trim rather than a VIN. If you run dealer inventory, the Inventory catalog below is the one you want.
Generated from the Ducted TikTok Automotive Inventory template, the same field rules your mapping is validated against.
45 fields: 16 required, 29 optional. 3 fields change level with the market, the product or how the record is sent.
| Field | Level | Accepted values / example |
|---|---|---|
| vehicle_id | required | 1FADP5AU6DL536022 |
| title | required | Used 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_link | required | |
| body_style | required | CONVERTIBLE · COUPE · HATCHBACK · MINIVAN · TRUCK · SUV · SEDAN · VAN · WAGON · CROSSOVER · SMALL_CAR · OTHER |
| price | required | 18000 USD |
| exterior_color | required | Black |
| state_of_vehicle | required | New · Used · CPO |
| latitude | required optional for feeds that send the address as one JSON column | 37.4841 |
| longitude | required optional for feeds that send the address as one JSON column | -122.1483 |
| vehicle_type | optional recommended for non-car vehicles (TikTok 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 (28): address, vin, trim, transmission, drivetrain, fuel_type, condition, availability, sale_price, interior_color, date_first_on_lot, days_on_lot, ios_url, android_url, dealer_id, dealer_name, dealer_phone, stock_number, address.city, address.region, address.country, address.postal_code, custom_number_0, custom_number_1, custom_number_2, custom_number_3, custom_number_4, address.addr1
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.
Records need the dealership address, either as one JSON address column or as address.addr1, address.city, address.region and address.country, with latitude and longitude when the address comes as separate columns. Without them the record is rejected.
image_link is required. A relative path or an empty value costs the record its placement.
One mapped catalog serves every channel; each page covers what that platform's feed needs.
Connect a source and map it to the TikTok Automotive template, or check your current feed free.