Agentic Advertising
AI agents and data leakage in advertising: what agents touch, how data escapes and which setups to allow
Published · Last updated
Next scheduled review:
AI agents leak advertising data through six routes: prompts sent to a model provider, tool calls to outside servers, logs, model training, delegation to other agents and prompt injection. The defences are scoped credentials, least-privilege tools, limits on outbound calls and clear processing terms. This page maps the data, the routes and which setups to allow.
Contents
Key facts
- MCP forbids passing tokens through. In the 2026-07-28 revision, MCP servers must accept only tokens issued for them and must not forward a client's token to upstream APIs (MCP specification, authorization security considerations).
- Consent is a principle, not a protocol feature. The MCP specification says hosts must get explicit user consent before exposing user data to servers, and admits MCP "cannot enforce these security principles at the protocol level" (MCP specification, 2026-07-28).
- A2A authenticates every call but leaves authorisation to you. Agent2Agent (A2A) v1.0.0 shipped on 12 March 2026; its specification says servers must authenticate every incoming request and that authorisation logic is implementation-specific (A2A releases; A2A specification).
- Hashed emails are still personal data. AdCP's privacy notes say unsalted
hashed_emailandhashed_phonevalues are "pseudonymous PII", not anonymous. AdCP's latest tag is v3.2.9, dated 9 November 2026 (AdCP privacy considerations, 3.2.8 docs; AdCP releases). - Assistants have already leaked data through injected text. CVE-2025-32711, published on 11 June 2025, describes AI command injection in Microsoft 365 Copilot that let an unauthorised attacker disclose information over a network (NIST NVD).
- A registry listing is not a data audit. The IAB Tech Lab agent registry held 53 entries on 9 November 2026; a listing checks identity and endpoints, not data handling (IAB Tech Lab registry).
Definition
Agent data leakage: any flow of advertising data from the system that holds it to a party, store or purpose the data owner did not approve. The cause is an AI agent's prompts, tool calls, logs, delegated tasks or training use, and the data may be personal, commercially confidential or both.
Leakage is broader than a breach. Nothing has to be hacked. An agent that sends a full bid log to a model provider to answer a simple question has leaked data, even if every party behaves as designed. This page sits in the agentic advertising hub. What a platform must expose to agents in the first place is covered in agent-ready ad infrastructure.
What data advertising agents touch
Agentic advertising puts software agents between people and platforms. Buying agents read inventory and place orders. Analytics agents query performance data. Selling agents answer briefs. Each needs data, and each kind of data carries a different risk.
6 of 6 rows
Bid and auction data | Bid requests, bids, clearing prices, win rates, log-level data | DSP, SSP, exchange logs | Reveals pricing strategy and may carry device IDs and location |
Deal terms and prices | Floors, rate cards, negotiated CPMs, deal IDs | SSP, sales systems, contracts | Commercially confidential; a leak weakens every later negotiation |
Audiences and identifiers | CRM lists, hashed emails, segment definitions | Data warehouse, DMP, clean room | Personal data under GDPR and US state laws |
Clean-room outputs | Overlap counts, reach and conversion aggregates | Clean room results tables | Aggregates can still single people out if queried repeatedly |
Briefs and creative | Campaign plans, budgets, unreleased products, creative files | Agency tools, email, shared drives | Business secrets; also a carrier for injected instructions |
Credentials | API keys, OAuth tokens, seat logins | Agent configuration, secret stores | One stolen token can unlock all of the above |
Bid and auction data
- Examples
Bid requests, bids, clearing prices, win rates, log-level data
- Where it usually lives
DSP, SSP, exchange logs
- Why it is sensitive
Reveals pricing strategy and may carry device IDs and location
Deal terms and prices
- Examples
Floors, rate cards, negotiated CPMs, deal IDs
- Where it usually lives
SSP, sales systems, contracts
- Why it is sensitive
Commercially confidential; a leak weakens every later negotiation
Audiences and identifiers
- Examples
CRM lists, hashed emails, segment definitions
- Where it usually lives
Data warehouse, DMP, clean room
- Why it is sensitive
Personal data under GDPR and US state laws
Clean-room outputs
- Examples
Overlap counts, reach and conversion aggregates
- Where it usually lives
Clean room results tables
- Why it is sensitive
Aggregates can still single people out if queried repeatedly
Briefs and creative
- Examples
Campaign plans, budgets, unreleased products, creative files
- Where it usually lives
Agency tools, email, shared drives
- Why it is sensitive
Business secrets; also a carrier for injected instructions
Credentials
- Examples
API keys, OAuth tokens, seat logins
- Where it usually lives
Agent configuration, secret stores
- Why it is sensitive
One stolen token can unlock all of the above
Table by AdSovereign, CC BY 4.0.
The last row decides how bad any leak can get. An agent holding a broad, long-lived token turns a small mistake into access to everything the token can reach.
Six routes by which data leaks
Each route below has been described in a specification, a security catalogue or a public incident. The controls column summarises the fix; the sections after the table explain it.
6 of 6 rows
| The agent sends records to a hosted model to reason about them | AdCP tells operators to settle prompt retention and training use in each provider's DPA (AdCP privacy considerations) | Send aggregates, not rows; contract terms on retention and training |
| The agent passes data to a third-party MCP server or API | MCP calls tools "arbitrary code execution" and says hosts must obtain consent before exposing user data (MCP specification) | Allowlisted servers; per-tool data scopes |
| Prompts, tool inputs and outputs land in logs kept by several vendors | AdCP leaves retention of "LLM prompts, conversation logs" to the operator (AdCP) | Redaction at write time; short retention |
| Prompts or outputs are used to train or fine-tune a model | OWASP lists sensitive information disclosure as LLM02:2025 (OWASP GenAI) | No-training terms; self-hosted models for the most sensitive data |
| One agent hands a task, with data, to another agent | A2A agents run as "opaque" systems that do not share internal plans or tools (A2A specification) | Pass references, not data; check the receiving agent |
| Untrusted text instructs the agent to send data out | CVE-2025-32711 in Microsoft 365 Copilot (NIST NVD) | Separate data-reading tools from outbound tools |
- Prompts and context
- How it happens
The agent sends records to a hosted model to reason about them
- Evidence
AdCP tells operators to settle prompt retention and training use in each provider's DPA (AdCP privacy considerations)
- First control
Send aggregates, not rows; contract terms on retention and training
- Tool calls
- How it happens
The agent passes data to a third-party MCP server or API
- Evidence
MCP calls tools "arbitrary code execution" and says hosts must obtain consent before exposing user data (MCP specification)
- First control
Allowlisted servers; per-tool data scopes
- Logs and traces
- How it happens
Prompts, tool inputs and outputs land in logs kept by several vendors
- Evidence
AdCP leaves retention of "LLM prompts, conversation logs" to the operator (AdCP)
- First control
Redaction at write time; short retention
- Model training
- How it happens
Prompts or outputs are used to train or fine-tune a model
- Evidence
OWASP lists sensitive information disclosure as LLM02:2025 (OWASP GenAI)
- First control
No-training terms; self-hosted models for the most sensitive data
- Delegation
- How it happens
One agent hands a task, with data, to another agent
- Evidence
A2A agents run as "opaque" systems that do not share internal plans or tools (A2A specification)
- First control
Pass references, not data; check the receiving agent
- Injection and exfiltration
- How it happens
Untrusted text instructs the agent to send data out
- Evidence
CVE-2025-32711 in Microsoft 365 Copilot (NIST NVD)
- First control
Separate data-reading tools from outbound tools
Table by AdSovereign, CC BY 4.0.
Routes 1 to 4: data leaves through normal operation
The first four routes need no attacker. They follow from how agents work. A model reasons over its context, so whatever the agent puts there goes to the model provider. If the agent calls an outside tool, the tool's operator sees the arguments. Every hop may log the exchange.
AdCP's documentation puts the responsibility plainly. Every agent that uses a large language model has subprocessors. "The DPA with each provider must be explicit" about whether prompts, brand assets, first-party signals or creative metadata may be kept or used for training (AdCP privacy considerations, 3.2.8). A data processing agreement (DPA) that is silent on training is a gap, whatever the provider's marketing page says.
Route 5: delegation between agents
A2A lets agents hand tasks to each other. The protocol is built for "opaque execution": agents share declared capabilities and results, not their internal tools (A2A specification). That protects the receiving agent's secrets, but it also means you cannot see what it does with the data you sent. Pass the smallest payload that lets it do the task, such as a report ID it can fetch under its own credentials, rather than the report itself.
Route 6: injected instructions
The most dangerous route uses an agent's own permissions against its owner. Simon Willison named the combination that makes it possible "the lethal trifecta": access to private data, exposure to untrusted content and the ability to communicate externally (Simon Willison, 16 June 2025). Advertising agents often have all three. They read campaign data, they read briefs, publisher pages and creative metadata written by others, and they can call APIs or send messages.
AdCP's notes describe the advertising version. Untrusted text in briefs, creative metadata or tool outputs "can carry prompt-injection payloads" that make an agent leak credentials or issue unauthorised tool calls (AdCP privacy considerations). OWASP ranks prompt injection first, as LLM01:2025, and lists excessive agency as LLM06:2025 (OWASP Top 10 for LLM Applications 2025). The only reliable defence is structural: an agent that can read sensitive data should not also hold a tool that sends data anywhere you have not approved.
Clean-room outputs are not a free pass
Clean rooms release aggregates, and aggregates feel safe. They are safer, but an agent changes the threat. A person runs a few queries a day. An agent can run thousands, and small differences between overlapping queries can reveal individuals.
Platforms build defences for this. Google's Ads Data Hub uses static query checks, data access budgets, aggregation checks and noise injection. Its aggregation check requires rows of typically 50 or more users, or 10 or more for queries on clicks and conversions only. Noise injection needs about 20 users per row (Google, Ads Data Hub privacy checks, updated 25 September 2026). Amazon says advertisers "can only access aggregated, anonymous outputs" from Amazon Marketing Cloud (company claim, Amazon Ads, accessed 9 November 2026).
Two cautions follow for agent access. First, a data access budget that assumes human query rates may be spent in minutes by an agent; cap the agent's query rate separately. Second, outputs that leave the clean room become ordinary data again. If an agent copies them into a prompt, routes 1 to 4 apply. Methods such as differential privacy and the main clean-room designs are compared in clean room architectures compared.
Models trained on such data raise a related question. The European Data Protection Board said on 18 December 2024 that whether an AI model is anonymous must be assessed case by case. For that, it should be very unlikely that individuals can be identified or that personal data can be extracted through queries (EDPB, 18 December 2024). A model fine-tuned on your audience data is therefore not automatically safe to share.
Controls that work, layer by layer
No single setting stops leakage. The controls below work together, from identity at the bottom to contracts at the top.
- Credentials scoped to one resource. The Model Context Protocol (MCP) requires clients to name the target resource when requesting tokens, using RFC 8707 resource indicators. Servers must reject tokens not issued for them (MCP authorization security considerations). Never give an agent a token that works on several platforms.
- No token passthrough. The same section says an MCP server "MUST NOT pass through" the token it received to upstream APIs. Each hop gets its own token. Check this in any MCP server you install.
- Least-privilege tools. Give each agent only the tools its task needs. Split read tools from write tools, and data tools from outbound tools.
- Data minimisation in tool design. Return aggregates and IDs rather than raw rows. AdCP notes it does not scan free text such as
ext,contextor brief prose for personal data (AdCP), so your tools must. - Outbound allowlists. Block network calls from the agent runtime except to approved hosts. This breaks the exfiltration leg of the trifecta.
- Log redaction and retention. Redact identifiers before logs are written, and set retention per log store. AdCP makes log retention and PII redaction the operator's job.
- Human approval for sensitive actions. A2A lets an agent pause a task in an "auth required" state when it needs a person's approval before a destructive action (A2A specification, section 7.6). Use it for exports as well as for spending.
- Vendor diligence before data moves. AAMP 2.3 added a vendor approval gate tied to the IAB Diligence Platform and SafeGuard Privacy. It is off by default (PPC Land, 30 July 2026). Turn it on, or run the same check yourself.
- Contracts per data flow. AdCP's guidance says operators must document their controller or processor role for each data flow and sign a DPA with each counterparty. A buying agent, a governance agent and a model provider each need their own terms.
What MCP, A2A and AdCP require, and what they leave to you
The protocols help, but none of them enforces data protection on its own. This table lists what each specification requires and what it explicitly leaves to the operator.
7 of 7 rows
Transport security | Covered in authorization security section | HTTPS or TLS must be used in production | Bearer, mutual TLS or signed requests | Certificate and key management |
Token scope | Audience-bound tokens; no passthrough | Credentials obtained out of band; every request authenticated | Signing optional in 3.x | Short token lifetimes; one token per resource |
User consent | Hosts must obtain consent before exposing user data | Not addressed in the protocol | No consent signal carried (no TCF or GPP) | Consent capture and checks |
Authorisation rules | Server's responsibility | "Implementation-specific" | Governance checks as a hook | Per-tool, per-field permissions |
Personal data in fields | Not addressed | Not addressed | Hashed identifiers reject cleartext; free text not scanned | Redaction and scanning |
Logs and retention | Not addressed | Agents may persist task history | Audit logs immutable; retention is the deployer's job | Retention schedule, deletion |
Model training | Not addressed | Not addressed | DPA must state training use | Contract terms |
Transport security
- MCP (2026-07-28)
Covered in authorization security section
- A2A (v1.0)
HTTPS or TLS must be used in production
- AdCP (3.2.x)
Bearer, mutual TLS or signed requests
- Left to you
Certificate and key management
Token scope
- MCP (2026-07-28)
Audience-bound tokens; no passthrough
- A2A (v1.0)
Credentials obtained out of band; every request authenticated
- AdCP (3.2.x)
Signing optional in 3.x
- Left to you
Short token lifetimes; one token per resource
User consent
- MCP (2026-07-28)
Hosts must obtain consent before exposing user data
- A2A (v1.0)
Not addressed in the protocol
- AdCP (3.2.x)
No consent signal carried (no TCF or GPP)
- Left to you
Consent capture and checks
Authorisation rules
- MCP (2026-07-28)
Server's responsibility
- A2A (v1.0)
"Implementation-specific"
- AdCP (3.2.x)
Governance checks as a hook
- Left to you
Per-tool, per-field permissions
Personal data in fields
- MCP (2026-07-28)
Not addressed
- A2A (v1.0)
Not addressed
- AdCP (3.2.x)
Hashed identifiers reject cleartext; free text not scanned
- Left to you
Redaction and scanning
Logs and retention
- MCP (2026-07-28)
Not addressed
- A2A (v1.0)
Agents may persist task history
- AdCP (3.2.x)
Audit logs immutable; retention is the deployer's job
- Left to you
Retention schedule, deletion
Model training
- MCP (2026-07-28)
Not addressed
- A2A (v1.0)
Not addressed
- AdCP (3.2.x)
DPA must state training use
- Left to you
Contract terms
Table by AdSovereign, CC BY 4.0.
Sources: MCP specification; A2A specification; AdCP trust and security, 3.2.8; AdCP privacy considerations, 3.2.8. The standards themselves are compared in AAMP vs AdCP.
The right-hand column is longer than any other. That is the honest summary: the protocols define how agents talk, and you decide what they may say.
Decision table: which agent setup for which data
The table below is our recommendation framework, not a legal standard. It crosses each data class with four ways of running an agent. "Yes, if" names the condition that must hold.
8 of 8 rows
Public inventory and rate cards | Yes | Yes | Yes | No need |
Aggregated performance reports | Yes, if the DPA bars training and sets retention | Yes, if the DPA bars training and sets retention | Yes | No need |
Deal terms and negotiated prices | Yes, if the vendor is your contractual counterparty for that deal | Yes, if the provider's terms bar training | Yes | Consider for strategic deals |
Bid-level and log-level data | No | Only aggregates derived inside your environment | Yes, with outbound allowlist | Raw logs with device IDs |
Clean-room outputs | Yes, inside the clean room's own tools | Yes, if outputs pass aggregation thresholds | Yes | Row-level match tables |
Audiences and hashed identifiers | No | No | Yes, if a lawful basis covers the processing | Yes, unless a privacy-preserving match is used |
Unreleased briefs and creative | Yes, if confidentiality terms cover the vendor | Yes, if the provider's terms bar training | Yes | Highly sensitive launches |
Credentials | Never in prompts | Never in prompts | Never in prompts | Always in a secret store |
Public inventory and rate cards
- Vendor-hosted agent, vendor's model
Yes
- Your agent, external model API
Yes
- Your agent, model in your environment
Yes
- Keep away from agents
No need
Aggregated performance reports
- Vendor-hosted agent, vendor's model
Yes, if the DPA bars training and sets retention
- Your agent, external model API
Yes, if the DPA bars training and sets retention
- Your agent, model in your environment
Yes
- Keep away from agents
No need
Deal terms and negotiated prices
- Vendor-hosted agent, vendor's model
Yes, if the vendor is your contractual counterparty for that deal
- Your agent, external model API
Yes, if the provider's terms bar training
- Your agent, model in your environment
Yes
- Keep away from agents
Consider for strategic deals
Bid-level and log-level data
- Vendor-hosted agent, vendor's model
No
- Your agent, external model API
Only aggregates derived inside your environment
- Your agent, model in your environment
Yes, with outbound allowlist
- Keep away from agents
Raw logs with device IDs
Clean-room outputs
- Vendor-hosted agent, vendor's model
Yes, inside the clean room's own tools
- Your agent, external model API
Yes, if outputs pass aggregation thresholds
- Your agent, model in your environment
Yes
- Keep away from agents
Row-level match tables
Audiences and hashed identifiers
- Vendor-hosted agent, vendor's model
No
- Your agent, external model API
No
- Your agent, model in your environment
Yes, if a lawful basis covers the processing
- Keep away from agents
Yes, unless a privacy-preserving match is used
Unreleased briefs and creative
- Vendor-hosted agent, vendor's model
Yes, if confidentiality terms cover the vendor
- Your agent, external model API
Yes, if the provider's terms bar training
- Your agent, model in your environment
Yes
- Keep away from agents
Highly sensitive launches
Credentials
- Vendor-hosted agent, vendor's model
Never in prompts
- Your agent, external model API
Never in prompts
- Your agent, model in your environment
Never in prompts
- Keep away from agents
Always in a secret store
Table by AdSovereign, CC BY 4.0.
Three rules sit behind the table. Personal data stays where its lawful basis was established. Row-level data goes only to models you run. And no agent that reads sensitive data may also send data to an unapproved destination. The AdCP notes back the second rule for audiences. A privacy-preserving match needs a recognised method such as salted hashing, a keyed hash (HMAC), private set intersection or a clean room, "above the protocol" (AdCP privacy considerations).
A data-boundary policy in JSON
Write the decision down as policy the agent runtime enforces. The format below is ours, not part of MCP, A2A or AdCP, and the values are illustrative. It complements the spending policy shown in agent-ready ad infrastructure, which limits money rather than data.
{
"agent_id": "analytics-agent-emea",
"model_location": "external_api",
"provider_terms": { "training_on_inputs": false, "retention_days": 0, "dpa_reference": "DPA-2026-114" },
"data_classes": {
"public_inventory": "allow",
"aggregated_reports": "allow",
"deal_terms": "allow_with_approval",
"log_level_data": "aggregates_only",
"clean_room_outputs": { "allow": true, "min_users_per_row": 50, "max_queries_per_hour": 20 },
"audiences_hashed_ids": "deny",
"credentials": "deny"
},
"tools": {
"read": ["get_report", "get_products", "run_clean_room_query"],
"write": [],
"outbound": []
},
"network_egress_allowlist": ["api.dsp.example.com", "cleanroom.example.com"],
"logging": { "redact_fields": ["ip", "device_id", "hashed_email", "user_id"], "retention_days": 30 },
"human_approval": { "required_for": ["export_report", "share_with_agent"], "approver_role": "privacy-lead" }
}8 of 8 rows
| Records which column of the decision table applies, and the contract that makes it acceptable |
| One verdict per data class, matching the decision table |
| Mirrors a 50-user aggregation threshold such as Ads Data Hub's; adjust to your clean room |
| Stops an agent spending a privacy budget built for human query rates |
| Empty on purpose: this agent reads data, so it gets no tool that sends data out |
| Enforced by the runtime's network layer, not by the model |
| Identifiers removed before any log is written |
| Exports and handoffs to other agents wait for a named role |
model_location, provider_terms
- Purpose
Records which column of the decision table applies, and the contract that makes it acceptable
data_classes
- Purpose
One verdict per data class, matching the decision table
clean_room_outputs.min_users_per_row
- Purpose
Mirrors a 50-user aggregation threshold such as Ads Data Hub's; adjust to your clean room
max_queries_per_hour
- Purpose
Stops an agent spending a privacy budget built for human query rates
tools.outbound
- Purpose
Empty on purpose: this agent reads data, so it gets no tool that sends data out
network_egress_allowlist
- Purpose
Enforced by the runtime's network layer, not by the model
logging.redact_fields
- Purpose
Identifiers removed before any log is written
human_approval
- Purpose
Exports and handoffs to other agents wait for a named role
Table by AdSovereign, CC BY 4.0.
Three scenarios, three decisions
The scenarios below are illustrative. They show how the decision table works on requests that advertising teams actually receive.
A retail media network's analytics agent. Advertisers want to ask questions in plain language about their campaign results. The agent needs aggregated reports and clean-room outputs, nothing at row level. If an advertiser asks for user-level detail, the agent declines and points to the clean room's own export rules.
The network runs the agent itself and calls an external model under a DPA that bars training and sets zero retention. Every query goes through the clean room's own thresholds, the agent has a query cap, and it holds no tool that can email or export. The answer reaches the advertiser through the network's own interface. This is the "your agent, external model API" column, and it works because no row-level data ever enters a prompt.
An agency's buying agent negotiating with seller agents. The agent reads briefs and budgets and exchanges proposals with sellers' agents over A2A or AdCP. Here the risk is route 6. A seller's reply is untrusted text, and the buying agent may hold tools that commit spend. If a reply asks the agent to send the full media plan or a contact list, the runtime treats that as content to show a person, not as an instruction.
Split the job in two: a negotiation agent that can read and propose, and an execution step that needs a person's approval before any order. Give each seller connection its own credential, so a compromised conversation cannot reach other sellers. Send the seller only the brief fields it needs, not the full media plan. AdCP's design points the same way: its trust model keeps the agent that spends separate from the agent that approves the spend (AdCP trust and security).
A publisher's yield agent reading bid logs. The agent studies log-level bid data to suggest floor changes. Those logs carry device identifiers and precise prices. Run this agent with a model inside the publisher's own environment, with a network allowlist that permits only the ad server's API. If the team wants a hosted model's help, it sends only derived aggregates, such as bid density by hour and placement. The raw logs never leave. This is the "model in your environment" column, and it is the only one in which row-level bid data is allowed.
In all three cases, the decision came from the data class first and the agent's convenience second. That order is the main habit to build.
Ten questions before you connect an agent
- Which data classes will the agent read, and which column of the decision table applies to each?
- Where does the model run, and do the provider's terms bar training on your inputs and set retention?
- Is every token audience-bound to one resource, short-lived and stored outside the prompt?
- Do any MCP servers in the chain pass tokens through? If yes, stop.
- Can the agent both read sensitive data and send data out? If yes, split the tools.
- Is there a network allowlist for the agent runtime?
- Which logs record prompts and tool calls, who holds them, and for how long?
- Does any delegation to another agent send data rather than references?
- Is the vendor listed in the IAB Tech Lab registry, and did it pass a diligence check? Our guide to the IAB Tech Lab agent registry lists what a listing proves.
- Who approves exports, and is the approval logged?
If you cannot answer a question, treat the answer as "no" until you can. What agencies run in production today is surveyed in AI agents for media buying, and the EU AI Act's rules for agents in the EU AI Act and advertising.
FAQ
Can AI agents leak advertising data?
Is MCP secure?
Is hashed audience data safe to give an agent?
Do model providers train on my prompts?
What is agentic AI in programmatic advertising?
How this works on owned infrastructure
The decision table above has one column where most rows say "yes": an agent and model that run in your own environment. That column depends on the bid logs, audiences and clean-room outputs already living there, not in a vendor's account. AdSovereign runs its DSP, SSP, data management and clean room components inside the customer's own cloud account or data centre. Agents connected to it can then query data where it sits, under the customer's network allowlists, identity provider and log retention, and nothing leaves unless a policy allows it. The security page describes the access controls and audit logging, and the architecture page shows where agent endpoints connect.
Sources
- Model Context Protocol, specification revision 2026-07-28, overview and "Security and Trust & Safety" (GitHub, release dated 28 July 2026). https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2026-07-28/index.mdx
- Model Context Protocol, specification revision 2026-07-28, "Authorization: Security Considerations". https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2026-07-28/basic/authorization/security-considerations.mdx
- A2A Project, releases (v1.0.0, 12 March 2026; v1.0.1, 28 May 2026). https://github.com/a2aproject/A2A/releases
- A2A Project, "Agent2Agent (A2A) Protocol Specification" (main branch, accessed 9 November 2026). https://github.com/a2aproject/A2A/blob/main/docs/specification.md
- Ad Context Protocol, releases (v3.2.9, 9 November 2026). https://github.com/adcontextprotocol/adcp/releases
- Ad Context Protocol, "Privacy Considerations" (documentation 3.2.8, accessed 9 November 2026). https://docs.adcontextprotocol.org/dist/docs/3.2.8/reference/privacy-considerations.md
- Ad Context Protocol, "Trust and security" (documentation 3.2.8, accessed 9 November 2026). https://docs.adcontextprotocol.org/dist/docs/3.2.8/trust.md
- IAB Tech Lab, Agent & MCP Server Registry (53 entries on 9 November 2026). https://registry.iabtechlab.ai/
- PPC Land, "AAMP 2.3 blocks AI agents from inventing ad prices, IAB Tech Lab says" (30 July 2026). https://ppc.land/aamp-2-3-blocks-ai-agents-from-inventing-ad-prices-iab-tech-lab-says/
- OWASP GenAI Security Project, "OWASP Top 10 for LLM Applications 2025" (accessed 9 November 2026). https://genai.owasp.org/llm-top-10/
More sources (5)
- Simon Willison, "The lethal trifecta for AI agents: private data, untrusted content, and external communication" (16 June 2025). https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/
- NIST National Vulnerability Database, CVE-2025-32711 (published 11 June 2025). https://nvd.nist.gov/vuln/detail/CVE-2025-32711
- Google for Developers, Ads Data Hub, "Privacy checks" (last updated 25 September 2026). https://developers.google.com/ads-data-hub/guides/privacy-checks
- Amazon Ads, "Amazon Marketing Cloud" product page (accessed 9 November 2026). https://advertising.amazon.com/solutions/products/amazon-marketing-cloud
- European Data Protection Board, "EDPB opinion on AI models: GDPR principles support responsible AI" (18 December 2024; Opinion 28/2024). https://www.edpb.europa.eu/news/news/2024/edpb-opinion-ai-models-gdpr-principles-support-responsible-ai_en