Advanced targeting attributes let you target participants on a broader set of
profile characteristics — languages spoken, employment, technology and devices,
products and services used, and more — beyond the core audience fields in
Targeting audiences effectively.These attributes are additive. Every existing targeting field
(targetCountries, targetGenders, targetHouseholdIncome, the B2B
firmographic fields, and so on) is unchanged and continues to work exactly as
before. Advanced attributes are set through a single new object,
advancedTargeting, when you create or update a project, and are available
identically to B2C and B2B projects.
Advanced targeting is rolling out gradually and is enabled per organization.
Contact your Respondent account manager to enable advanced targeting for your
account. Until it’s enabled, advancedTargeting is not part of your
available targeting surface.
We strongly recommend making an attribute a hard filter whenever it genuinely
needs to be met — add its key to keyQualifiers. Keep it a signal only when
you want a soft preference and broader reach.
Targeting an advanced attribute does not shrink your reachable audience to
only participants who have already answered it. Participants who haven’t yet set
that attribute can still match on your other criteria and be contacted; when
they apply, they’re asked to complete the missing attribute and only continue if
they qualify.
All attributes below are available on both B2C and B2B projects. Behavior shows whether an attribute is a soft signal by default (promotable to a hard filter via keyQualifiers) or always a hard filter. For each attribute’s allowed values, see the advancedTargeting schema in the Create a project reference — it’s generated from the API, so it’s always current.
Set advancedTargeting when you create a project (POST /v1/projects) or update
a draft (PATCH /v1/projects/{projectId}). Add any attribute keys you want
promoted to hard filters to keyQualifiers.In the create examples below, languages (B2C) / cloudPlatforms (B2B) are
promoted to hard filters via keyQualifiers; the other set attributes act as
soft signals; and the always-hard attributes (webcam, workSetting) filter
automatically without appearing in keyQualifiers.
// POST /v1/projects{ // … required project fields — see "Create a project" in the API reference "publicTitle": "Streaming habits study", "targetMarketType": "b2c", "advancedTargeting": { "languages": ["en", "es"], "streamingServices": ["netflix", "disneyplus"], "homeOwner": true, "webcam": true }, "keyQualifiers": ["languages"]}
On PATCH /v1/projects/{projectId}, advancedTargeting is merged per
attribute — send only the attributes you want to change:
Goal
What to send
Set / change an attribute
Include the key with its new value
Clear an attribute
Send the key with the value null
Clear an array attribute
Send [] — it’s stored as an empty list and treated as no target (no filter, no signal)
Leave an attribute unchanged
Omit the key
keyQualifiers is not merged — it’s replaced as a whole, so always send the
complete set of hard filters you want in effect (send [] to remove all of
them).
Clearing examples
// PATCH /v1/projects/{projectId}{ "advancedTargeting": { "languages": ["en"], // set / change "relationshipStatus": null, // clear (remove the target) "streamingServices": [] // clear an array attribute (no target) // workSetting omitted // left unchanged }, "keyQualifiers": ["languages"] // replaces the whole hard-filter set}