Skip to content

Pass user agent to auction telemetry - #1103

Open
ChristianPavilonis wants to merge 1 commit into
mainfrom
auction-telemetry-user-agent
Open

Pass user agent to auction telemetry#1103
ChristianPavilonis wants to merge 1 commit into
mainfrom
auction-telemetry-user-agent

Conversation

@ChristianPavilonis

@ChristianPavilonis ChristianPavilonis commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

What

Passes the request User-Agent through each auction observation and every emitted Tinybird row.

  • /auction reads the value from AuctionRequest.device.user_agent.
  • Initial-navigation and SPA auction paths snapshot the original request header.
  • auction_events_raw gains a nullable user_agent string column.
  • Missing or non-string header values remain null.

This deliberately does not classify browser_family at the edge. Downstream data syncs own browser aggregation, as requested in the review of #1039.

Contract change

The complete User-Agent is now intentionally retained in raw auction telemetry, including skipped and consent-denied observations, under the datasource's existing 30-day TTL. The telemetry design and implementation plan now document this contract. EC IDs, internal auction request IDs, IP addresses, full URLs, query strings, and fragments remain excluded.

Why

Edge-side browser classification fixes the aggregation policy in application code and discards information that downstream data syncs may need. Keeping the source value lets each sync derive the browser dimensions it requires without another edge deployment.

Supersedes #1039 and addresses its requested change.

Related to #979

Verification

  • Added failing-before regression coverage for complete User-Agent NDJSON serialization.
  • cargo fmt --all -- --check
  • cargo test-fastly
  • cargo test-axum
  • cargo test-cloudflare
  • cargo test-spin
  • cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --test parity
  • cargo clippy-fastly
  • cargo clippy-axum
  • cargo clippy-cloudflare
  • cargo clippy-cloudflare-wasm
  • cargo clippy-spin-native
  • cargo clippy-spin-wasm
  • cd crates/trusted-server-js/lib && npx vitest run
  • cd crates/trusted-server-js/lib && npm run format
  • cd docs && npm run format
  • tb check tinybird/datasources/auction_events_raw.datasource

Rollout

Deploy the additive Tinybird datasource column before deploying the edge version. Older rows and requests without a valid User-Agent remain null.

@ChristianPavilonis ChristianPavilonis changed the title Pass complete user agent to auction telemetry Pass user agent to auction telemetry Aug 31, 2026
@ChristianPavilonis ChristianPavilonis added this to the 202609 milestone Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Auction telemetry addendum: rollup correctness, breakdown dimensions, and dashboard spec

1 participant