Overview
AdCP 3.2 promotes demographic targeting from a platform extension to a first-class capability. Platforms that support it declaredemographic_targeting
directly on their products. Buyers express a demographic intent in
targeting_overlay.demographics when creating a media buy, and the platform
confirms the exact execution in targeting_resolution.demographics on the
response.
Demographic targeting is distinct from the exact-age-targeting brief used
during product discovery. The discovery brief filters which products match; the
targeting_overlay.demographics request writes a targeting constraint into the
resulting media buy.
Once the AdCP 3.2 surface is activated for public buyers, demographic
overlays will be accepted on create_media_buy for every platform in the
support table below. On update_media_buy, behavior differs by platform:
Legacy AdCP 3.0 / 3.1 update calls that send
targeting_overlay.demographics will be refused with a 400
UNSUPPORTED_TARGETING_DIMENSION on every platform.
Supported platforms
The following platforms advertise demographic targeting capability via AdCP 3.2:
A product that does not carry
demographic_targeting does not support this
path — submit a targeting overlay with demographics against such a product and
the request is rejected.
How to use
1. Discover products with demographic targeting
Request products as usual. The product response will include ademographic_targeting object when the platform supports it, describing the
supported age bounds and bucket structure. Once activated, TikTok and Spotify
will additionally accept demographic changes on update_media_buy; Meta,
Google, Snap, and Pinterest will reject demographic updates and require a
delete+recreate to change the demographic constraint.
2. Express a demographic intent
Passtargeting_overlay.demographics in your create_media_buy request with
an age constraint:
The platform validates that the requested range maps exactly to its native
bucket structure. A range that cuts through a bucket, or a closed maximum that
the platform represents as open-ended (such as
65+ on Google or TikTok), is
rejected rather than silently broadened.
3. Confirm the resolution
The media-buy response includestargeting_resolution.demographics describing
how the intent was executed, and returns the effective
targeting_overlay.demographics applied to the package:
targeting_resolution.demographics.execution to verify the platform
execution path, and compare requested, applied, and equivalent before
treating the buy as active.
Unknown-age users
Some platforms can deliver to users whose age is unknown. Support varies:- Meta and Google: Support
include_unknown: true. Users with unknown age are included only when you setinclude_unknown: true; setinclude_unknown: falseto exclude them. - Snap, Spotify, TikTok, Pinterest: Cannot include users with unknown age
when an age constraint is active. Pass
include_unknown: falsefor these platforms.
include_unknown: true sent to a platform that cannot honor it is
rejected. The platform reports the unsupported combination in the error rather
than silently excluding unknown-age users.
Relationship to exact-age targeting in product discovery
The exact-age-targeting brief documented in Exact Age Targeting controls which products are returned during discovery — it is a filter, not a commitment. Thetargeting_overlay.demographics field in create_media_buy is
the commitment: it writes the constraint into the media buy and is confirmed by
targeting_resolution.demographics. Both paths use the same platform support
table and the same exact-match rule — no silent broadening on either surface.
Demographic updates through update_media_buy will be accepted on TikTok
and Spotify (recompiled against the product’s declared capability); Meta,
Google, Snap, and Pinterest will reject demographic updates and require a
delete+recreate to change the demographic constraint.
AdCP 3.2 reference
Demographic targeting as a first-class capability (not an EXT extension) is defined in the AdCP 3.2 specification. Earlier protocol versions carry age targeting through platform-specific extension fields and do not populatedemographic_targeting, targeting_overlay.demographics, or
targeting_resolution.demographics.