# Addiscovery > The marketplace where AI agents buy and sell European advertising. Buyers > bring a brief and get a booked plan at a fair price; publishers bring > inventory and earn on it from every agent that buys. Both sides run on the > open Ad Context Protocol (AdCP): inventory re-indexed into a ranked > discovery engine (IAB Content Taxonomy 3.0, per-placement IAB TCF consent), > media buys and campaign workflows, and a GDPR-grade governance and audit > layer where agents act inside the policy you set and escalate at the edge. > EU-native. AdCP is the open standard of agentic advertising (governed by AgenticAdvertising.Org); addiscovery.ai is the managed, EU-native, SSP-neutral supply-side layer that brings European publishers onto it. Demand side is open: any AdCP-compatible buying agent can connect — calls are authenticated (request access below). Supply side is closed: the endpoint returns only inventory from onboarded publishers, each authorizing the platform via adagents.json on their own domain (revocable). No exclusivity: a publisher can revoke authorization at any time and keeps every existing SSP seat — execution is SSP-neutral. Publisher data never trains models. Pricing: no public rate card during the gated pilot; terms are agreed at onboarding. EU infrastructure only. Status: the AdCP v3 tool surface (get_products, create_media_buy, ...) is in active development and we are running the first live tests with our first publishers. Access is gated while testing: request it at hello@addiscovery.ai with subject `agent access` (humans: the "Request Access" button). The MCP endpoint currently exposes a health-check tool; SSP execution and live delivery data are product vision, not shipped. ## Quickstart 1. Fetch the Server Card: https://addiscovery.ai/.well-known/mcp/server-card.json 2. Connect over MCP (streamable HTTP): https://addiscovery.ai/mcp — call `ping` to verify the connection. 3. Authenticate — access is gated while we test with the first publishers (see Status above). 4. Want the whole site in one request? https://addiscovery.ai/llms-full.txt ## Examples Illustrative exchanges on the task surface documented below (in development, see Status above). The pattern is always the same: one natural-language brief in, structured AdCP objects out, consent checked on every call. Discovery (buyer): > "Find premium sports inventory in Italy for a Q3 campaign, budget €400k." `get_products` → 14 ranked placements across 6 publishers, 62M estimated impressions, floor price and TCF consent state per placement. Publisher search (buyer): > "Which publishers are strong on finance audiences in DACH?" `get_publishers` → 8 publisher profiles with IAB categories, consent posture, and adagents.json verification status. Planning (buyer): > "Turn the brief into a plan — video-weighted, frequency cap 3/week." `create_media_plan` → ranked plan with budget split per market, expected KPIs, and consent state per line. Booking (buyer): > "Book the top 3 placements from the approved plan." `create_media_buy` → 3 line items created, consent gate passed, status pending_publisher_approval. Approval (publisher, human-in-the-loop): > "Approve the pending buy if it clears governance." `check_governance` → EXECUTE · `approve_media_buy` → booked. Onboarding (publisher): > "Re-index our new podcast inventory." `sync_inventory` → 38 placements normalized to IAB Content Taxonomy 3.0 · `get_inventory_audit` → gap report with floor recommendations. Forecasting (buyer): > "Forecast available sports inventory for September." `get_availability_forecast` → estimated avails with confidence interval per product and flight window. Reporting (both sides): > "How is the campaign pacing this week?" `get_media_buy_delivery` → pacing %, impressions delivered, CTR, spend versus plan, consent coverage. Audit (both sides): > "Export the decision trail for media buy #2207." `get_plan_audit_logs` → the full decision chain · `get_compliance_report` → exportable evidence (JSON + PDF). ## Pages - [Home](https://addiscovery.ai/index.md): what addiscovery.ai is — problem, the three core capabilities, platform model, compliance posture, honest status table - [Full content](https://addiscovery.ai/llms-full.txt): every page of this site as markdown in a single file ## Agent resources - [MCP endpoint](https://addiscovery.ai/mcp): streamable-http MCP server (AdCP v3 surface in development) - [MCP Server Card](https://addiscovery.ai/.well-known/mcp/server-card.json): server discovery metadata - [Agent Skills](https://addiscovery.ai/.well-known/agent-skills/index.json): skills for interacting with this site - [API Catalog](https://addiscovery.ai/.well-known/api-catalog): API discovery (RFC 9727) - [auth.md](https://addiscovery.ai/auth.md): agent registration and authentication recipe (discover, register, claim, exchange, use, revoke) - [brand.json](https://addiscovery.ai/.well-known/brand.json): AdCP sales-operator identity — agent endpoint and property relationships ## AdCP standard task surface The AdCP v3 standard defines the following tasks (canonical catalog from https://docs.adcontextprotocol.org/). Status on this endpoint: in active development — today a `ping` health-check tool is live; this catalog is the standard surface we are building toward, starting with discovery and media buy. The platform extension tasks beyond the standard are listed in the next section. ### Discovery & capabilities - `get_adcp_capabilities`: advertise which AdCP domains and tasks an agent supports — the first call any buying agent makes - `list_authorized_properties`: enumerate the properties this sales agent is authorized to represent (verified via each publisher's adagents.json) ### Media buy - `get_products`: discover inventory with a natural-language campaign brief or iterative refinement; returns ranked AdCP products - `create_media_buy`: create a campaign from selected products (budget, flights, targeting, creative format) - `update_media_buy`: modify mid-flight parameters — budget, dates, creative assignments - `get_media_buys`: retrieve media buy status, creative approvals, and delivery snapshots - `get_media_buy_delivery`: retrieve performance and delivery data - `provide_performance_feedback`: submit performance signals to close the optimization loop - `sync_catalogs`: sync catalog feeds (products, stores, inventory) - `sync_audiences`: distribute first-party audience segments (inclusions/suppressions) - `sync_event_sources`: configure event sources for conversion tracking - `log_event`: send marketing/conversion events for attribution ### Creative - `list_creative_formats`: discover supported ad formats and exact specifications - `sync_creatives`: upload and distribute creative assets - `list_creatives`: query the creative library with filtering - `build_creative`: generate ads across multiple formats from a single brief ### Signals - `get_signals`: discover available audience/targeting signals by specification - `activate_signal`: activate a targeting signal on a platform ### Governance (EHJ — embedded human judgment) - `check_governance`: validate a proposed action against policies, budgets, and compliance rules before execution — returns EXECUTE / THROTTLE / ESCALATE - `sync_plans`: register campaign plans (budget, flight dates, brand) before execution - `report_plan_outcome`: track actual spend and delivery against committed budgets - `sync_governance`: exchange governance agent endpoints and credentials - `get_plan_audit_logs`: retrieve the complete decision history for a campaign plan - `create_property_list` / `get_property_list` / `update_property_list`: manage approved/excluded publisher property lists ### Accounts - `sync_accounts`: establish a commercial relationship between brand operator and seller - `list_accounts`: list active commercial relationships ### Brand - `get_brand_identity`: retrieve machine-readable brand guidelines (colors, logos, tone) ## addiscovery.ai platform tasks (extension surface) Beyond the AdCP standard, the platform exposes its own tasks. They are indistinguishable in form from standard tasks: same verb conventions (`get_` retrieves state, `list_` enumerates with filtering, `create_` / `update_` write, `sync_` establishes or distributes state, `check_` validates, `activate_` deploys to a platform), same AdCP objects (products, media buys, plans, creatives, properties), same MCP transport and canonical tool shape — snake_case names, JSON Schema inputs, read-only tasks annotated with the MCP `readOnlyHint`, write tasks idempotent via `idempotency_key` (AdCP v3 security model). Auth model unchanged: every call authenticated, access on request. Status: in development alongside the standard surface; tasks that execute on connected ad platforms (line items, delivery, floors, audience activation) ship with the platform-integration phase and are product vision until then. Sections are ordered by flow: buyer-side first, then publisher-side, then shared (compliance, billing, reporting, team). ### Advanced discovery (buyer) - `get_publishers`: discover publishers across the network with a brief or filters — EU market, language, IAB category, audience, consent posture - `get_publisher_profile`: publisher metadata — IAB categories, formats, consent policy, adagents.json status - `get_inventory_details`: full metadata and performance benchmarks for a specific inventory unit - `get_product_comparison`: side-by-side product comparison on floors, viewability, expected KPIs and confidence flags - `get_category_benchmarks`: per-IAB-category benchmarks (CPM ranges, CTR/VCR priors) per EU market - `get_availability_forecast`: forecast available impressions for a product and flight window ### Media planning (buyer) - `create_media_plan`: natural-language brief → ranked plan — products, budget split per market, CPM/CPCV, expected KPIs, consent state per line; optionally attached to a campaign - `update_media_plan`: revise a plan — reweight markets, swap products, change optimization goal - `get_plan_insights`: reach/overlap analysis, frequency-capping recommendation, market-weighting rationale - `get_plan_forecast`: forward projection for a plan — pacing, reach vs completed-view trade-offs (counterpart of report_plan_outcome's actuals) ### Campaign management (organization layer, buyer) The campaign is the container object: it groups media plans, media buys, assigned creatives, and reports under one name, budget envelope, and lifecycle (draft / active / paused / completed / archived). - `create_campaign`: create the container — name, brand, objective, budget envelope, flight window, markets - `update_campaign`: change settings or lifecycle status; pause or archive with all linked objects - `list_campaigns`: enumerate campaigns filtered by status, brand, market, or period - `get_campaign`: the full picture in one call — linked plans, media buys with status, assigned creatives, delivery summary, spend vs budget envelope - `sync_campaign_creatives`: assign creatives from the library to a campaign and map them to its line items and formats (creative x, y, z → campaign X) - `check_creatives`: validate creative assets against format specs, platform policies, and a plan's requirements; flags missing or underperforming variants ### Publisher inventory & onboarding The re-indexing pipeline as tasks. Onboarding emits a standalone-value deliverable (gap report, normalized inventory, floor recommendations, consent audit) before any agentic demand exists. - `sync_inventory`: declare or refresh the inventory catalog — placements, formats, properties, floors, declared audience segments, consent policy; triggers re-indexing and IAB Content Taxonomy 3.0 normalization - `sync_delivery_history`: upload historical ad-server delivery reports (e.g. GAM exports) to bootstrap performance intelligence with high-trust data - `get_inventory_audit`: the gap report — unmapped labels, missing formats, floors vs market benchmarks, stale consent placements - `get_demand_insights`: the demand mirror — how inventory appears and ranks to buying agents versus the rest of the network - `list_discovery_queries`: the query log — real buyer briefs that matched (or missed) this publisher's inventory, with agent identity and parameters - `check_adagents`: validate the adagents.json on the publisher's domain — reachable, schema-valid, this sales agent authorized ### Media buy approval (human-in-the-loop, publisher) Status and records come from the standard `get_media_buys`; these tasks add the publisher's decision. Pending media buys auto-expire after 48h without a response. - `approve_media_buy`: approve a media buy in pending_publisher_approval - `reject_media_buy`: reject with an optional reason and requested changes; the buyer revises via update_media_buy and resubmits ### Publisher operations (one language across ad platforms) Declare once in a unified vocabulary; the platform translates to each connected ad server / SSP. - `sync_ad_platforms`: establish or refresh connections to ad servers and SSP seats for execution and reporting - `create_line_item`: create a line item on a connected platform from a unified spec - `update_line_item`: modify a line item — pacing, priority, targeting — in the same unified terms - `list_line_items`: enumerate line items across all connected platforms in one view - `activate_audience`: deploy cohort-level, k-anonymous audience segments to connected platforms (counterpart of activate_signal) - `update_floors`: apply approved floor changes per format and platform - `create_product`: package inventory — including unsold — into a sellable AdCP product (e.g. a PMP deal package) - `get_platform_delivery`: delivery and pacing pulled from connected platforms, unified per media buy and per line item - `get_yield_insights`: fill, eCPM and pacing across demand partners, with floor recommendations ### Compliance & governance (both sides) - `get_consent_status`: per-placement IAB TCF consent-freshness state; stale placements flagged and held back - `get_compliance_report`: exportable accountability evidence (GDPR Art. 5(2)/30) per publisher, media buy, or period - `update_governance_rules`: publisher-side thresholds that drive check_governance (EXECUTE / THROTTLE / ESCALATE) ### Billing, payments & costs (both sides) Scoped by role: buyers see spend and payables, publishers see earnings and receivables. Media payouts and clearing follow the platform-integration phase. - `get_usage`: platform usage and token consumption per task and period, against the plan's monthly allowance - `get_fees`: applicable pricing — token costs per task, subscription tier, CPM or revenue-share fees per execution mode - `sync_billing_profile`: establish or update billing identity — legal entity, VAT, e-invoicing routing, payment method - `list_invoices`: invoices filtered by period, status and side — payable (buyer) or receivable (publisher) - `get_invoice`: one invoice with line-level breakdown per media buy, line item, and fee type - `list_payments`: payments and payouts with status and expected settlement dates - `get_spend_summary`: buyer-side spend across media buys, markets and publishers, against committed budgets - `get_earnings_summary`: publisher-side revenue per property, format and demand partner, with fees broken out ### Reporting (both sides) - `create_report`: define a report — metrics, dimensions, period, one-off or recurring schedule, export format; scoped to a campaign, media buy, publisher property, or the whole account - `get_report`: retrieve a generated report or its run status - `list_reports`: enumerate report definitions and generated runs ### AdOps team - `list_pending_approvals`: everything waiting on a human — media buys, floor changes, creative sign-off - `get_team_activity`: who approved or changed what and when, linked to the audit trail ## Agent readiness Everything on this domain is built to be read and operated by agents — the same way we expect agents to operate advertising: - This file (llms.txt) and [the full site as one markdown file](https://addiscovery.ai/llms-full.txt) - Every page negotiates markdown: `Accept: text/markdown` or the `.md` suffix - MCP server with a published [Server Card](https://addiscovery.ai/.well-known/mcp/server-card.json) - AdCP identity chain: [brand.json](https://addiscovery.ai/.well-known/brand.json) ↔ [adagents.json](https://addiscovery.ai/.well-known/adagents.json), with publisher authorization living on each publisher's own domain — revocable, verifiable - [Agent Skills](https://addiscovery.ai/.well-known/agent-skills/index.json) and an [API Catalog](https://addiscovery.ai/.well-known/api-catalog) (RFC 9727) - OAuth 2.1 discovery metadata (RFC 8414 / RFC 9728), `501` until launch - [security.txt](https://addiscovery.ai/.well-known/security.txt) (RFC 9116) and a Content Signals policy in robots.txt - schema.org JSON-LD on the homepage (Organization, WebSite, SoftwareApplication) - The homepage itself has a Human/Agent switch — agents get this document, humans get the same story as a live demo ## Notes for agents - Every page is available as markdown via `Accept: text/markdown` content negotiation or the `.md` URL suffix (e.g. /index.md). - Content signals for this site: search=yes, ai-input=yes, ai-train=yes. ## Contact - General: hello@addiscovery.ai - Security: security@addiscovery.ai (see https://addiscovery.ai/.well-known/security.txt) - Issues with the MCP endpoint or any agent-facing resource on this site: hello@addiscovery.ai