What the law requires
GDPR Art. 22(1) prohibits decisions based solely on automated processing — including profiling — that produce legal effects or similarly significantly affect a natural person, unless a narrow exception applies (explicit consent, contract, or EU/Member State law). Ad-targeting decisions in regulated verticals routinely engage Art. 22: the SCHUFA case (CJEU C-634/21, 2023) extended “similarly significant effects” broadly. EU AI Act Annex III lists high-risk use cases that intersect AdCP:
US parallels are the Fair Housing Act (HUD v. Facebook, 2019 settlement), ECOA for credit, and EEOC / ADEA for employment. AdCP treats housing allocation as equivalent-risk under the
fair_housing category even though Annex III does not name it directly.
For any of the above, the deployer MUST:
- Ensure human oversight (AI Act Art. 14) — a qualified person reviews the decision.
- Maintain automatic logs (AI Act Art. 12) — timestamped records of each decision.
- Provide transparency (AI Act Art. 13, GDPR Art. 13–14) — the data subject can understand what’s happening.
- Govern input data (AI Act Art. 10) — signals used for targeting are documented and restricted-attribute-aware.
- Honor contestation rights (GDPR Art. 22(3)) — the data subject can request human intervention, express their view, and contest the outcome.
What AdCP provides
AdCP’s role is Article 25 data-governance provider: the protocol exposes structured fields that let the deployer discharge its Annex III obligations.Automatic triggering
When a campaign plan declares any of the following, the governance agent MUST setplan.human_review_required = true:
policy_categoriesincludesfair_housing,fair_lending,fair_employment, orpharmaceutical_advertising- Any resolved policy (registry or custom) has
requires_human_review: true - The resolved registry policy
eu_ai_act_annex_iiiapplies via jurisdiction matching brand.industriesintersects a regulated sector (consumer_finance, banking, mortgage, life_insurance, health_insurance, recruitment, staffing, real_estate, property_management, housing)
brand.data_subject_contestation is missing, the governance agent MUST emit a critical finding — Art 22(3) cannot be discharged without a contact point.
This is enforced by the policy framework, not by the buyer. A buyer cannot opt out of human review by omitting the flag — if the resolved policies require it, the governance agent sets it. A buyer who previously declared human_review_required: true cannot downgrade it on re-sync without an explicit human_override artifact (reason + approver).
reallocation_threshold vs. human_review_required
These are different axes and often confused:
A plan can set
reallocation_threshold equal to budget.total (agent reallocates budget freely) and human_review_required: true (every targeting decision gets human review). These govern different things.
Annex III / Art. 22 obligations flow through human_review_required, not through reallocation_threshold. Restricting budget autonomy does not address Art. 22; it just adds friction to reallocation.
Contestation endpoint
AdCP provides a discovery mechanism for the contestation process, not the process itself. Art. 22(3) gives the data subject three substantive rights — human intervention, expression of view, and contestation of the outcome — which are workflow rights the deployer must operate.brand.data_subject_contestation tells downstream agents and data subjects where to find that process; it does not substitute for it.
brand.data_subject_contestation surfaces a contact reference — a URL, an email, or both. It is intentionally not a machine-callable API. Art. 22(3) rights are workflow rights exercised by humans; the deployer runs the workflow behind the contact point.
What AdCP does not do
- AdCP does not perform conformity assessment. The AI Act Art. 43 conformity assessment is the provider’s obligation.
- AdCP does not run the human-oversight workflow. Setting
human_review_required: truemeans the governance agent escalates — the human reviewer and review tooling are outside the protocol. - AdCP does not define the contestation process.
data_subject_contestationpoints to the deployer’s process. - AdCP does not determine which vertical a campaign belongs to. The buyer declares
policy_categories; governance agents may flag mismatches but cannot guess intent.
Jurisdictional scoping is mechanical
AdCP resolves policy applicability by matchingplan.countries against policy jurisdictions. This is a useful first pass but incomplete at the edges:
- A US-based deployer targeting only US audiences may still reach EU residents via cross-border signals, which engages GDPR / AI Act obligations that
plan.countries: ["US"]would miss. - An EU-established entity running a non-EU campaign remains subject to the AI Act under establishment-based jurisdiction (Art. 2 of Regulation (EU) 2024/1689).
- Housing / lending / employment regulations have their own extraterritorial doctrines distinct from privacy law.
brand.industries or campaign objectives suggest an Annex III vertical, the policy fires regardless of whether plan.countries matches the policy’s declared jurisdictions.
See also
eu_ai_act_annex_iii— the seeded registry policy- Policy registry —
requires_human_reviewon policies and categories - Campaign governance specification —
human_review_requiredplan field - Embedded human judgment — the architectural principle behind mandatory oversight