WebRTC Metrics

A comprehensive overview of WebRTC statistics, derived calculations, extracted features, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats

Back
clientbrowserplatformuseragent

User agent data (feature)

Client-level feature capturing the browser, version, and platform reported at dump start.

Description

Client-level feature, extracted per session into features_client.

userAgentData captures the user agent (and User Agent Client Hints, when the browser exposes them) recorded at dump start. It is stored as a structured object holding the browser brands and versions, the platform, and the mobile flag, so you can identify what the session ran on without parsing a raw UA string.

Why it matters

WebRTC behavior varies sharply by browser, version, and platform, so almost every quality question eventually needs a browser or version breakdown. When a metric regresses, userAgentData is how you find out whether it is one Chrome release, one operating system, or mobile devices as a group, which turns "something got worse" into a targeted bug report. It is also the field you group launch and adoption numbers by when you need to know which clients your traffic actually comes from.

SQL example

Session counts by reported browser brand, last 30 days:

SELECT
  client.user_agent_data ->> 'platform' AS platform,
  brand.value ->> 'brand'               AS browser,
  COUNT(*)                              AS sessions
FROM "rtcstats-server" AS server
JOIN features_metadata AS metadata ON metadata.dump_id = server.id
JOIN features_client   AS client   ON client.dump_id   = metadata.id
CROSS JOIN LATERAL jsonb_array_elements(client.user_agent_data -> 'brands') AS brand(value)
WHERE server.created_at > NOW() - INTERVAL '30 days'
GROUP BY platform, browser
ORDER BY sessions DESC;

See also