Skip to content

Latest commit

 

History

History
54 lines (38 loc) · 4.69 KB

File metadata and controls

54 lines (38 loc) · 4.69 KB

TargetingSpec

Normalized, platform-agnostic ad-targeting spec. Every field is optional, an empty object targets the platform's default broadest audience. Field names are camelCase and identical across POST /v1/ads/create (the targeting object), POST /v1/ads/targeting/reach-estimate, and saved_targeting audiences, so a spec resolved once can be reused verbatim. Entity ids (regions[].key, cities[].key, zips[].key, metros[].key, interests[].id, behaviors[].id) are the platform's opaque identifiers resolved via GET /v1/ads/targeting/search. A spec is therefore meaningful only for the platform it was built against, except the portable fields (countries, ageMin/ageMax, gender, incomeTier, languages) which carry across platforms. Fields a platform cannot honour are rejected at create time with INVALID_FIELD_VALUE naming the offending field (not silently dropped).

Properties

Name Type Description Notes
countries List<String> ISO 3166-1 alpha-2 country codes (e.g. ['US']). [optional]
regions List<CreateStandaloneAdRequestZipsInner> Region/state targeting. `key` is the platform location ID from /v1/ads/targeting/search?dimension=geo&geoType=region. [optional]
cities List<TargetingSpecCitiesInner> City targeting. Optional `radius` + `distanceUnit` extend beyond the city limits; both must be set together or both omitted. `radius` is only honoured on platforms whose capability map allows city radius (Meta). [optional]
zips List<CreateStandaloneAdRequestZipsInner> Postal/ZIP targeting. `key` is the platform's postal location ID (e.g. Meta `US:94304`). Supported on Meta, Google, TikTok, Pinterest, X. [optional]
metros List<CreateStandaloneAdRequestZipsInner> DMA / metro-area targeting. `key` is the platform's metro ID (e.g. Meta `DMA:807`). [optional]
customLocations List<TargetingSpecCustomLocationsInner> Point-radius (lat/lng) targeting (Meta custom_locations / Google proximity). Honoured only where the capability map allows radius (Meta). [optional]
excludedLocations TargetingSpecExcludedLocations [optional]
ageMin Integer [optional]
ageMax Integer [optional]
gender GenderEnum Restrict by gender. 'all' (default) targets everyone. [optional]
incomeTier IncomeTierEnum Normalized household-income tier (ZIP/percentile based). Meta and TikTok express all four. Google maps only `top_10` (its INCOME_RANGE_90_UP); other tiers on Google, and any income tier on LinkedIn / X / Pinterest, are rejected. On Meta, income/zip targeting requires the relevant `specialAdCategories` to be unset (housing/employment/credit ads cannot use it). [optional]
languages List<String> Language codes (e.g. ['en']). [optional]
interests List<CreateStandaloneAdRequestBehaviorsInner> Interest entities from /v1/ads/targeting/search?dimension=interest. Each carries the platform's opaque id. [optional]
behaviors List<CreateStandaloneAdRequestBehaviorsInner> Behaviour entities from /v1/ads/targeting/search?dimension=behavior. Supported on Meta and TikTok. [optional]
industries List<String> LinkedIn B2B only. Industry URN id fragments. [optional]
companySizes List<String> LinkedIn B2B only. [optional]
seniorities List<String> LinkedIn B2B only. [optional]
jobFunctions List<String> LinkedIn B2B only. [optional]
audienceInclude List<String> Platform audience IDs to include. [optional]
audienceExclude List<String> Platform audience IDs to exclude. [optional]

Enum: GenderEnum

Name Value
ALL "all"
MALE "male"
FEMALE "female"

Enum: IncomeTierEnum

Name Value
TOP_5 "top_5"
TOP_10 "top_10"
TOP_10_25 "top_10_25"
TOP_25_50 "top_25_50"