Skip to content

[spec] A ctx_token alone does not identify which telemetry consumer can resolve it #30

Description

@pedroamaralsantos

Specification section

7.1 (ctx_token issuance and resolution), 7.3 (Routing and aggregation)

What you observed

Section 7.1 says the agent issues an opaque ctx_token on click-out, and a telemetry consumer resolves that token to the session’s click manifest. Section 7.3 allows that consumer to be platform-hosted, marketplace-hosted, or a third party.

What a holder of a ctx_token cannot do from the token alone: know which party issued it, or which telemetry consumer can resolve it. The token is opaque (ct_…-style examples in fixtures) with no issuer, consumer, or routing hint. There is no specified format that would let a destination, affiliate network, or other intermediary pick the correct resolve endpoint.

Why it matters

Resolve only works if the requester can address the consumer that holds the session map. Without a reliable way to identify that party from the ctx_token, any entity that receives a click token is stuck:

Destination / network holds:  ctx_token=T
Spec says:                    "ask a telemetry consumer to resolve T → click manifest"

Missing:                      which consumer? how do you know from T?

Consequences:

  • When a destination or affiliate network receives a ctx_token, it has no way to determine which telemetry consumer is able to resolve it. As a result, the only option is to query every known telemetry consumer, which is inefficient, increases unnecessary traffic and latency for token resolution, and adds operational complexity. additionally, the specification doesn't explain, or solves the issue around discovering new telemetry consumers. If all known consumers do not have the click manifest, it means it was generated by an unknown telemetry consumer.

Proposed direction (optional)

The specification should define a reliable way to identify, from a ctx_token, which telemetry consumer can resolve it (or which issuer/operator to start discovery from).

One possible option (among others):

  • Structured / prefixed token — ctx_token follows a pattern that embeds a non-secret issuer or consumer identifier (e.g. ct_<consumer_or_issuer_id>_<opaque>), so any holder can route resolve to the right party.

OpenAttribution would maintain a directory mapping each consumer ID to entity information (name, URL, etc.) for the party responsible for operating that consumer.

Consequence: a holder of a ctx_token can look up the consumer in the directory hosted by OpenAttribution, then query that consumer directly with the token to obtain the click manifest.

Your perspective

None

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    v1-coreAccepted for the Content Telemetry v1 core specification

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions