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
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_tokenon 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_tokencannot 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:Consequences:
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):
ctx_tokenfollows 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_tokencan 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