Vai al contenuto

Real user monitoring that catches what synthetic misses.

A small script measures the load time of every real visit, split by country, browser and device. You're alerted when speed drops, visitors stop arriving or JavaScript errors spike.

30-day free trial · 50 RUM monitors No credit card No cookies · no PII
Loads measured
100%
Pageviews included
150,000+
Checkpoints
171+
Countries covered
70+

Slow bundle to alert: 9 minutes

A checkout bundle ships at 09:14. Every synthetic check stayed green throughout.

09:14 A new checkout bundle shipsUptime and synthetic checks stay green — the server still answers normally users: waiting
09:21 Real users feel it — 2.1 s → 3.3 sField data from live visits climbs; a JS error fires on Safari users: waiting
09:23 Speed Drops pings you — +57%The alert names the site and how far speed slipped → Slack users: waiting
09:31 Rolled back — confirmed by real visitsRecovery is real the moment live visitors load fast again users: fast again
10 minfelt → fixed
The probes never noticed.09:31
Every synthetic check passed the entire time — the regression only existed on real devices, on real networks. Field data caught it, named it, and confirmed the fix from live traffic.
+57% vs baseline, in the alertimpact: 10 minutesJS errors grouped by browser7 timing phases · every real load
And without field data? A regression that only hits real devices never fails a lab check. It lives on as "checkout feels slow on my phone" — the bug report you can't reproduce. can't reproduce

Everything real user monitoring catches

One snippet measures every real page load in the visitor's own browser and records JavaScript errors as they happen — no cookies, no personal data.

Page load timeEvery real visit, timed end to end
DNS, connection & TTFBThe network phases, split out
Render & DOM loadedBrowser-side build time, measured
Browsers, devices & OSChrome vs Safari, phone vs desktop
1 passive snippet every real visit · no cookies
CountriesEvery country's real speed, ranked
JavaScript errorsCaught live, grouped by message
Redirects & data transferThe overlooked phases, counted
Every signal above powers the rest of the page: the Apdex score, the satisfaction breakdown, the slowest-pages ranking, speed-drop and traffic-stop alerts, and grouped error reports. one snippet

What the snippet reports

Where your visitors are slow

See which countries are slow

Averages hide geography. Load time is broken down by each visitor's real country, so you know where a CDN or edge server would earn its keep — and where it wouldn't.

  • Every country ranked by loads and average load time, from real visits
  • Derived from the visitor's IP, which is then randomized — no cookies, no personal data stored
  • The full table — no country rolled into "other", so nothing hides
caldmont.comreal visits · by country · last 24 h
🇺🇸 United States
1.9 s · 6,204 loads
🇧🇷 Brazil
4.3 s · 2,140 loads
🇮🇳 India
5.1 s · 1,905 loads
+ 41 more
every country ranked
Country comes from the visitor's IP, resolved server-side. Brazil at 4.3 s against a 1.9 s US average is where an edge server pays for itself. no cookies
The errors your users really hit

Catch the JavaScript errors QA never sees

A global error hook reports every JavaScript error real visitors trigger — message, script, line and column, and a stack trace when the browser provides one — grouped so you fix the common ones first.

  • Grouped by error and by script — with the pages and error rate each affects
  • Message, script URL and line & column, plus a stack trace when available
  • A JS Errors alert fires when the error rate crosses a threshold you set
Where alerts are delivered
24×TypeError: undefined is not a function
checkout.bundle.js · 812:14 · 3 pages affected
TypeError: undefined is not a function at applyCoupon (checkout.bundle.js:812:14) at HTMLFormElement.onSubmit (checkout.bundle.js:640:9)
37errors · 24 h
6unique
0.20%of loads
Safari 17 · iPhone · 09:12:41
TypeError: undefined is
  not a function
checkout.bundle.js:812:14
Chrome 126 · Windows · 09:14:03
TypeError: undefined is
  not a function
checkout.bundle.js:812:14
+ 22 more occurrences
same message, same script — grouped into one line you fix once
Rate crossing the threshold you set? The JS Errors alert fires on the same channels as every other monitor. alert fires
What your traffic really runs

Fix for the browsers people really use

Real user monitoring shows the true split of browsers, devices and operating systems across your live traffic — so you spend fix time where the visitors really are.

  • Separate Browsers, Devices and OS breakdowns, each with share and load count
  • Read straight from the user agent on each real load — nothing to tag
  • Spot the long tail — the old browser quietly breaking checkout for 3% of buyers
One real page loadBerlin · 09:14:02
Every load carries its user agent — browser, device and OS are read straight from it. Nothing to tag.
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 Chrome/126
Browsers tab
Chrome75%
Safari22%
Other3%
Devices tab
Desktop58%
Mobile38%
Tablet4%
OS tab
Windows44%
iOS24%
Android19%
That 3% arrives with its real share — a browser too small to notice in an average is a line item here. the 3%
One score, set to your bar

Apdex — one number for visitor satisfaction

Apdex rolls thousands of real page loads into a single 0–1 score — satisfied, tolerating, or frustrated — against the speed threshold you choose. RUM is passive: nothing to schedule, you just define what "too slow" means.

  • Tune the Apdex threshold to your site — anywhere from 1 to 20 seconds (4 s by default)
  • Four alerts, each on or off: Traffic Stops, Speed Drops, Traffic Drops, JS Errors
  • No check frequency to set — it runs on every real page load, not a schedule
Lab measurement, from real Chrome
🇩🇪2.1 s loadBerlin · 09:14:02satisfied
🇺🇸6.7 s loadAustin · 09:14:05tolerating
🇦🇺18.9 s loadSydney · 09:14:11frustrated
4 syour
threshold
Apdex 0.90last 24 h
(13,022 satisfied + 1,988 tolerating ÷ 2) ÷ 15,571 real loads — one number for visitor satisfaction.
Traffic StopsSpeed DropsTraffic DropsJS Errors
Every real load moves the score — 15,571 of them in 24 hours, weighted by what each visitor actually waited. 0 schedules

Add one snippet.See the speed your visitors actually get.

Every load, every country, every alert channel — free for 30 days, and none of it is a paid add-on.

Start your free 30-day trial
30 days free no credit card cancel anytime

How real user monitoring works

One snippet turns every real visit into a data point — no agents, no sampling, no schedule.

Step 12 min

Paste one snippet

Drop a small async JavaScript snippet into your page's <head> — it never blocks rendering.

<script>var _uptm="a1b2c3…";/* Uptimia RUM */</script>
Step 2passive

Real visits report in

Every real page load posts its timings, browser, device and OS — plus any JavaScript error — in the background.

timingsjs errorsuacountry
Step 324 / 7

Alerts fire when a threshold is crossed

Your dashboard aggregates pages, errors, geography, browsers and devices, and recomputes Apdex from every real load that arrives.

Apdex 0.86 · Speed Drops armed · 18,204 loads/24h

Also included

Everything below comes with RUM monitoring — no add-ons, no separate line item.

Alerts to the channels you already use

Traffic, speed and error alerts fire through the same contacts and integrations as the rest of Uptimia — no separate setup.

SlackTeamsDiscordTelegramPagerDutyWhatsAppWebhook

Apdex, your way

Set the satisfaction threshold to your site's own speed bar.

1–20 s
threshold · default 4 s

Per-page breakdown

Every URL, ranked by real load time — slowest first.

/checkout 4.62 s · slowest

No cookies, no PII

It reads timings, errors and the user agent — nothing personal, no cookies, no cross-page tracking id.

privacy-first · no cookies

Query your data from your own tools

A REST API returns the same summary, pages, errors, geographic and browser data — complete result sets.

GET /api/v2/rum/{id}/data/os

Grouped error reports

Errors rolled up by name and by script, so you fix the common ones first.

6 unique · 37 total

What is real user monitoring?

Real user monitoring (RUM) measures your website's performance from the browsers of the people actually visiting it. A small JavaScript snippet, installed once, reads each real page load's timing and reports it back — the real-world speed, errors and experience your visitors get on their own devices and networks.

How it works

How does real user monitoring work?

Real visit
a page loads
reads
Snippet
Performance API
posts
Uptimia
aggregates

Timings, browser/device/OS and any JavaScript error are posted asynchronously in the background — nothing blocks your page, and no cookies are set.

The difference

Real user monitoring vs synthetic monitoring

Synthetic ("lab") monitoring runs a scripted check from a probe server on a schedule — perfect for outages and pre-traffic testing. RUM ("field") measures what real people experience on their own devices and connections. Most teams run both; Uptimia includes both.

Field vs lab

Which answers which question

They're complements, not rivals. Here's who each one is built to answer for.

QuestionReal user monitoring · fieldSynthetic monitoring · lab
Who is measured?Your real visitorsA probe you configure
When is it measured?On every real page loadOn a fixed schedule
Real devices & networks?Yes — the visitor's ownNo — the probe's
Catches JS errors users hit?YesNo
Works before you have traffic?No — it needs real visitsYes
Best for finding outages?Traffic-stop signalYes — its core job

Real user monitoring FAQ

01Synthetic monitoring vs real user monitoring — what's the difference?+
Synthetic monitoring runs a scripted check from a probe server on a schedule — great for outages and pre-traffic testing. Real user monitoring measures what actual visitors experience on their own devices and networks, on every real page load. Most teams run both; Uptimia includes both.
02How do I install real user monitoring?+
Paste one small async JavaScript snippet into your page's <head>. Once it's on your pages, real visits report in on their own — no agents, no server access, no schedule to configure.
03Will the snippet slow my website down?+
No. The snippet loads asynchronously and never blocks rendering — it reads the browser's Performance API for a load that has already happened and posts the numbers in the background.
04Does real user monitoring use cookies or collect personal data?+
No. It records page-load timings, JavaScript errors and browser/device/OS from the user agent — no cookies, no form input, no personal identifier. The per-load session id is a temporary in-browser value never carried across page loads.
05Can I see my visitors on a map?+
The Geographic view is a sortable country table today — loads and average load time per country — rather than a world map. It's derived server-side from the visitor's IP — which is then randomized — and no country is rolled into an "other" bucket.
06Does it record sessions or show heatmaps?+
No. Real user monitoring is about performance and errors, not session replay or heatmaps. It collects load-time phases, JavaScript errors and browser/device/OS metadata — it never plays back what an individual visitor did.
07Does real user monitoring work for mobile apps?+
It's browser real user monitoring — a JavaScript snippet — so it covers your website in mobile and desktop browsers. It isn't a native iOS or Android app SDK — but any web content loaded in a browser is covered.
08What alerts can it send, and where?+
Four alerts, each on or off with your own thresholds: Traffic Stops (no visits for a window you set), Speed Drops and Traffic Drops (percentage change over a rolling window), and JavaScript Errors (error rate over your limit). They fire through the same channels as the rest of Uptimia — Slack, Teams, Discord, Telegram, PagerDuty, WhatsApp, webhooks and more.
09What do I need to get started?+
Just your website and the snippet. The 30-day free trial needs no credit card and includes 50 real-user monitors and 500,000 pageviews a month.
10Is real user monitoring a paid add-on?+
No. Every paid plan includes real user monitoring alongside uptime, SSL, transaction, DNS and heartbeat monitoring — never as a paid add-on. Plans differ only in how many RUM monitors and monthly pageviews are included.

Real load times, ranked by country — from your own visitors

Add one snippet — real page loads, errors and country-by-country speed land in your dashboard, with alerts when anything slips.

30-day free trial No credit card No cookies · no PII
50 real-user monitors · 500,000 pageviews a month included on the trial · runs alongside your uptime and synthetic checks in the same account