A Rum Site uses a Catchpoint-generated Javascript tag to collect RUM data from your website. This inline tracking code calls a library file which Catchpoint hosts (you can also host a copy of this file if you prefer.) For browsers that support it, the JavaScript tag gathers timing data provided by the Navigation Timing API. For browsers that do not support the Navigation Timing API, Catchpoint uses a cookie to provide as much timing information as possible. Catchpoint also gathers site analytics information like bounce rate, page views, browser type, ISP, and geographical location of end users.
The inline tracking code can be added via a tag manager, but this can delay execution of the code, which may result in less accuracy for metrics like Time on Page, First Input Delay, and any other metric for events that occur early in the page-load lifecycle.
Catchpoint RUM also works with Single Page Apps (SPA). Since deployment in SPAs can vary depending on the technology used, we do not provide implementation instructions for these scenarios. Deployment on SPAs is generally similar to multi-page apps and doesn't require any custom tagging; the tag just needs to be included in the initial page load.
RUM Site Configuration Steps
- Navigate to Control Center > RUM and click New to create a new App
- Select Site as the App type
- Complete the Site Properties section (details below)
- Add and configure any desired Page Groups, Variations, Insights, Zones, and Alerts (details below)
- After all configuration settings are complete, copy the tracking code from the bottom of the configuration blade. By default, this code will be the latest version. If you want to use a previous version, select it in the Version dropdown list before copying the tracking code.

- Edit the HTML code for your web page and add a
<script>tag immediately after the first<head>tag. Paste the Tracking Code into this tag.
<head>
<script>
TRACKING CODE GOES HERE
</script>
(rest of your website's code)...
(NOTE: you can change the version of the Catchpoint Library file the tracking code references, and where it is hosted. See the following section for more details.)
- Save the Site App
Code Versions
Since the inline JavaScript may undergo changes as features are added, please be aware that it may be required to periodically update your site with the latest JavaScript tag.
By default, the tracking code provided in the portal is the latest version. You can select which version you wish to use allowing you to test versions in your QA environment before updating to a newer version.
Both the inline code and the library file may receive updates, so version increments may be a result of changes to either, though most commonly changes are made to the library file.
If you wish to always get the latest library file without requiring a code change to your site, please update the following section in the inline code:
Before: restUrl="https://g.3gl.net/jp/1/v4.0.7/InitialLoadScript.js"
After: restUrl="https://g.3gl.net/jp/1/latest/InitialLoadScript.js"
The file can be self-hosted by using the "__cpCdnPath" variable, for example:
var __cpCdnPath = mycdn.com
Site Properties
| Field Name | Description |
|---|---|
| Name | A friendly name for this Site App. Must be unique within the system. |
| Description | Optional description for this Site App. Only displayed within the Portal UI |
| Status | Active or Inactive - determines whether the App should currently be collecting and processing RUM data. |
| Domain | The Domain name of the website to be monitored. This field supports Regular Expressions, enabling you to collect data for multiple related domains. e.g. http://companywebsite.* |
| URL Case | If enabled, Domain name matching will not be case sensitive and the uppercase and lowercase letters will be treated as the same. For example if a URL has uppercase ‘O’ it will be captured as lowercase ‘o’ and displayed in the explorer when viewing the RUM data. |
| URL Fragment Truncation | URL Fragments consist of text following a hash character (#) and are used to specify a location on the page:http://companywebsite.com/home.html#tophttp://companywebsite.com/home.html#mainttp://companywebsite.com/home.html#footerIf enabled, these fragments will be removed, resulting in fewer unique URLs being stored. (i.e. all three URLs above would simply be stored as http://companywebsite.com/home.html) |
| System URL Truncation | If enabled, Catchpoint will automatically remove portions of URL that are dynamically generated. |
| Limit AJAX Collection | Specifies a list of domains to collect AJAX from. If left blank, AJAX will be collected for all domains. |
| Custom Truncation | Add RegEx matching anything else that you would like to have removed. |
| Restrict NEL Collection | If enabled, the Site App will reduce the amount of Network Element Layer data collected. |
| Mask Client IP | If enabled, client IPs will be hidden in RUM data results. This can help protect user privacy. |
| Ignore Known Bots/Spiders | If enabled, the Site App will disregard known Bots/Spiders accessing the monitored webpage |
| Ignore Catchpoint Nodes | If enabled, the Site App will disregard Catchpoint test nodes accessing the monitored webpage. |
| Sample Rate % | Determines what percent of actual page-views will be collected and reported. You can configure a value for each RUM Site, or use the Default sample rate, which is set by an administrator in Settings > Info. (See RUM Sampling section for more information) |
Page Groups
Many websites are modular or built on templates (e.g. most eCommerce
sites.) For such sites Catchpoint provides a feature called Page Groups,
which enables you to group related pages and view their monitored data
in aggregate. There are two methods you can use to associate tests with
a Page Group: regular expressions and tag tokens.
-
By Regular Expression - Page groups may be defined using
regular expressions to match a portion of the URL. For example, if all
product pages contain "/products/" in the path, you can configure a
page group with a regex matching this substring, and Catchpoint
will automatically associate data from all product pages with this
page group. The regex is always checked against the path, filename,
and query string. You can include the hostname by selecting the "Regex
include host name" option. -
By Tag Token - A tag token is an arbitrary unique identifier that
you define in the Page Group configuration, and add to each page in a
corresponding tag. Tag tokens are supported by multiple different
features in Catchpoint. You can find full details on tag token syntax
below in the Tag Tokens section.
Each test is checked against your page groups in order from top to
bottom until a match is found, and then no further page groups are
checked. If two or more page groups use regular expressions that would
match a given page, only the page group on top will take effect.
Variations
Some websites vary the content of the page delivered to users in order
to test different versions of content or features.
The Variations feature accommodates these scenarios by tracking data
from all variations of a page together. Variations are determined using
tag tokens (more detail below in the Tag Tokens section).
Insight
Catchpoint has the ability to collect custom metrics. There are two
types of custom metrics: Insight Indicators (numerical values) and
Insight Tracepoints (string values).
For example, a common use for
Indicators would be "Server Processing Time", and a common Tracepoint is
"Server Name”. Insight functionality relies on the use of tag tokens,
which are described in the next section.
Tag Tokens
A tag token is a unique identifier associated with a Page Group,
Variation, Insight Indicator, or Insight Tracepoint. To create a tag
token, enter a unique value* in the tag token field under the
feature you are configuring, and manually include the same value in a
corresponding tag in the page source of each each page that you want to
include.
- For Variations and Insights, the tag should come just after the
tracking tag in the head. - For Page Groups, the tag should be included with the code for that
module. For example, a Page Group tag for product pages might be
included in a file called products.php.
*Tag tokens must be lower-case and can be up to 30 characters.
Tokens do not allow special characters such as hyphens.
Tag Syntax:
-
Page Group: RProfiler.addInfo('pageGroup', '<tag token>');
-
Variation: RProfiler.addInfo('variation', '<tag token>');
-
Insight Indicator: RProfiler.addInfo('indicator', '<tag token>',
<indicator value>); -
Insight Tracepoint: RProfiler.addInfo('tracepoint', '<tag
token>', ‘<tracepoint value>’);
Tag tokens are contained within <script> tags, as in the following
example:
<script language="javascript" type="text/javascript">
RProfiler.addInfo('pageGroup', 'pg1');
</script>
To keep the browser from attempting to create tag tokens before the
Catchpoint script is loaded, use the "GlimpseLoaded" event as follows:
<script language="javascript" type="text/javascript">
function init() {
window.RProfiler.addInfo('tracepoint', 'vt', ttoken);
}
window.RProfiler ? init() : window.addEventListener("GlimpseLoaded", init);
</script>
System URL Truncation
We can truncate URLs in RUM to avoid hitting the unique URL storage limit. We can create regex-based rules to specify patterns in URLs that should be truncated.
This user-customized truncation is a separate option from the system truncation, so we support both system default URL truncation and user-customized truncation.
Example:
We can store: staging.example.com/p/product.*.html
Instead of: staging.example.com/p/product/022992662.html
Insight Configuration Settings
After the tokens are configured, the last step is to associate them with the UI. In the App Properties page you can add the names of the Page Groups or Variations as well as the tag token associated with that feature. This is also where you can enable Insight for the App.
For Insight you will see a section where you can add the Tag Token for the Tracepoint or Indicator.
Insight will only be available in the App Properties if Insights are configured under Settings > Insight. The required fields are:
- Name
- Token (must be the same as the token used in the tag token)
- Format (this field is used for Catchpoint Synthetic monitoring, so the UI validates that a value is present in the field, but that value is not used for Real User).
Zones
Zones are groups of content that can be charted together allowing you to separate performance such as content you own vs 3rd parties. Zones are based on the domain of requests on the page. If you don't configure any Zones, they will default to "Self" and "Others" where self matches the domain of your site.
Alerts
Alerts can be applied to any RUM metric and supports filtering to specific dimensions such as checking for "Average DNS > 5000 ms in United States". The alerts include time windows for when the alert should apply to help handle different expectation of performance by time of day or day of week.
RUM Sampling
The RUM Sampling rate determines the percentage of actual page-views that will be captured and reported. By configuring a sampling rate less than 100%, you can avoid consuming the page-view limit specified by your license, which would lead to a temporary pause in RUM data collection.
Your RUM license specifies the maximum number of pageviews that may be collected during any 24-hour period. These pageviews are distributed at hourly intervals (i.e. each hour is allotted 1/24 of the total allowed pageviews.) At the end of each hour, unused pageviews are rolled over for use during any of the subsequent 23 hours.
This means that during slower times of the day, pageviews will build up for consumption during higher-traffic hours. If, during any given hour, all available pageviews are consumed (initial 1/24 allotment + any previously rolled over) then monitoring will pause for the remainder of that hour.
In order to avoid pauses to your monitoring, we recommend setting your Sample Rate % based on your expected daily traffic. For example, if your daily website traffic is around 1 million pageviews, and your RUM License allows 500k pageviews per day, then we would recommend configuring a Sample Rate of 50%.
An administrator can configure the defaults sample rate for your account under Settings > Info. When setting a RUM App, you can use this default, or configure a different value.
Note that the sampling logic prevents Catchpoint from capping a session before it is over; once we begin capture pageviews from a given user session, we continue for that session regardless of the hourly allotment.