Trust-safe relevance · Mechanism

Ads can be relevant without tracking. Here is how the mechanism works.

Behavioral ad systems compute relevance from a user profile they have built over time. Trust-safe relevance does the opposite: it computes relevance from public signals visible at the moment of the request — the conversation's own context, the sponsor's verifiable declaration of what they are offering, and the provenance headers attached to the content. The user is not modeled. The match is.

What "trust-safe relevance" means

Relevance is the answer to: of all ads that could be shown right now, which is most appropriate for this moment? Behavioral systems answer it by ranking ads against a stored profile of the viewer. Trust-safe relevance answers it without that profile.

Three public inputs replace the profile:

  1. Conversation context — the semantic shape of the current moment, expressed as context hints (intent clauses), not keywords.
  2. Sponsor declaration — the advertiser's published manifest of what they are offering, including category, attestation, and eligibility constraints.
  3. Content provenance — FCS headers attesting where the surrounding content came from, so brand-safety checks can run before render.

A relevance function operating on these three inputs is auditable when the implementation publishes the scoring logic or a reference verifier — given the same public inputs, an independent reader can re-run the function and check the answer. A behavioral relevance function is not auditable in that sense, because the profile is private and time-dependent.

Why this is mechanically possible (and not a privacy compromise)

Three technical components, each with public academic grounding (see Technical foundations below), make this work:

None of these components require a user identifier. None require cross-site tracking. None build a profile that persists between requests.

The relevance is built from the request, not from the requester.

The relevance function, abstractly

For a given moment with context hints C, against a set of sponsor declarations S each with their own eligibility constraints, the relevance score for a candidate ad s ∈ S is:

relevance(s, C, provenance) = match(s.intent_descriptor, C)
                              × eligibility(s, provenance)
                              × guardrail_weight(s)

None of these terms takes a user identifier as input. The function is closed over public, auditable signals.

How this differs from behavioral relevance

BehavioralTrust-safe
Inputs include a stored user profileInputs are limited to the moment + public declarations + provenance
Relevance depends on historyRelevance depends on the current request
Score is opaque (dense embedding)Score is interpretable (sparse vocabulary)
Audit requires accessing the profileAudit requires only the public inputs
Privacy risk: the profilePrivacy risk: none in the same kind

The trade-off: trust-safe relevance can lose information that behavioral systems retain (purchase history, prior conversions). What it gains: the relevance function is portable, auditable, and not bound to a single advertiser's data moat.

Where this fits relative to OpenAI Ads

OpenAI Ads computes placement against conversation intent using context hints, landing-page content, and ad copy — the same family of public signals trust-safe relevance describes. The product implements one operational version of the broader trust-safe relevance idea on its own platform.

Trust-safe relevance is the protocol-layer description of how that works in general — not a competing product, but the framework that lets other agent runtimes implement the same approach without rebuilding the trust math from scratch.

OpenAI Ads can operate without the contextual-ads.ai protocol. Agent runtimes that want a portable, auditable relevance function benefit from it being defined.

What trust-safe relevance is not

How the relevance feeds the verification step

The relevance function outputs a ranked candidate set. The verification step (on the sister page) is what runs against each candidate before the ad is rendered. The split:

The first is computed from context. The second is computed from the verifiable manifest at /.well-known/agent-ad.json. Together they make placement decidable without user tracking.

Technical foundations

Cited as protocol foundations, not endorsements.