Real user monitoring (RUM)

A step-by-step guide to help you set up your real user monitoring and onboard your team members who are new to SpeedCurve

Step 1 • Insert the RUM snippet and adjust your sample rate

You can get the snippet at any time by going to Settings > Edit RUM.

Where to insert the snippet

The lux.js script is loaded asynchronously so it won't harm the performance of your site. It's best to put the snippet as early in the page as possible, i.e. at the top of the HEAD element. This ensures that LUX is able to collect as much data as possible for each page.

Single-Page App (SPA)

Follow the guide for using SpeedCurve RUM with a SPA.

How to adjust your sample rate

You can set your RUM sample rate on your Settings page. The default sample rate is 100%. You should change the sample rate to a value that matches the plan you want to sign up for.  

For example, if your site typically gets 900 million page views per month, and you want a RUM plan that covers a maximum of 10 million page views per month, then set the sample rate to 1%. 


Learn more:

Step 2 • Add page labels

This is a crucial step in your RUM setup. By default, pages are grouped by their page title (document.title), but you'll want to use the RUM JS API to label and group your pages by type or template. This is very important for using great features such as the vitals dashboard and combining your synthetic and RUM data. This also streamlines the number of page labels in your RUM filters.


Learn more:

Step 3 • Get to know the dropdown filters

The dropdown filters at the top of each RUM dashboard let you quickly drill down into your data. All you have to do is click the arrow icon on the right-hand side of the filter menu to filter your data by domain, page label, device, browser, country, connection, median/average/75th/95th percentile, and customer data variable.


Learn more:

Filtering Favorites Dashboards

Step 4 • Create custom metrics with User Timing

It’s great to have standard metrics, such as onload time and start render, that work across all web pages. But these metrics don’t tell you about important things you care about, such as how quickly your ads and third parties are rendering, or how fast your site appears to users. 

This is where custom metrics come in. RUM lets you implement custom performance timers to track the performance of key page components – such as hero images (for tracking user-perceived performance) or third-party scripts (for tracking ad performance). Using JavaScript along with the User Timing API built into the browser, you can mark the important times during page loading and those custom metrics are displayed in your SpeedCurve dashboard.

Step 5 • Add your own customer data

RUM includes numerous default metrics collected from real user web pages, such as page load time, DNS lookup time, DOM size, etc. It also records User Timing marks and measures. But sometimes there's other information specific to your site that you would like to track.

This additional data that is specific to your website is called Customer Data. Examples include:

  • Business metrics such as cart size and conversion information. You can use this data to create correlation charts, like the one below, which show you the relationship between your performance metrics and business metrics.

  • Performance metrics such as download time for specific resources or number of search results.

  • A/B testing information such as the name of the test bucket.

  • User information such as account ID or username.

You can add Customer Data by using the RUM addData API.

Page load correlated with conversion rate illustrates the impact of performance on your bottom line.Page load correlated with conversion rate illustrates the impact of performance on your bottom line.

Page load correlated with conversion rate illustrates the impact of performance on your bottom line.


Learn more:

Track any metrics you want (cart size, A/B tests, conversion info) using the addData API

Track conversion rates in RUM

Step 6 • Create custom charts in your Favorites dashboards

RUM gives you dozens of curated default charts and dashboards right out of the box. Ultimately, though, you'll want to go deeper into your specific user data. To do that, you'll want to Create custom dashboards and charts in your Favorites dashboard. 

Custom charts let you do things like:

  • Create performance budgets and set alerts (see Step 10)

  • Combine data from your LUX monitoring and your Synthetic testing in one chart

  • Choose average, median, 75th or 95th percentile

  • Create charts that compare multiple metrics, including metrics generated by User Timing and customer data (see steps 6 & 7)

  • Select multiple values for a filter, eg, browser = Chrome or Firefox, country = UK or US

  • Compare A/B tests in a single chart

  • Generate weekly reports for different teams

A customer dashboard combining RUM and Synthetic dataA customer dashboard combining RUM and Synthetic data

A customer dashboard combining RUM and Synthetic data

Step 7 • Create performance budgets and set alerts

To make sure your website stays fast, set up some performance budgets so you can see if there are any regressions. Performance budgets are a vital tool in your web performance toolbox. They take the hassle out of monitoring performance by notifying you (by email, Slack, or any other webhook) whenever your RUM metrics cross a certain threshold.

The great news: creating performance budgets is quick and easy.

Step 8 • Add more domains

To add more domains to your RUM monitoring, go to your Settings page, scroll down to the bottom, and hit the Edit LUX button. This will take you to a page where you can add domains and allocate pageviews from your budget.

Note that adding more domains will increase your total number of RUM page views. If you're getting close to your monthly cap, you can choose to either adjust your sample rate (as described in step 1) or contact us about increasing your monthly cap.


Learn more:


We're always working to make your SpeedCurve learning curve as short and sweet as possible. If you have any questions or feedback, please let us know! Send your comments to [email protected].

Did this page help you?