# Who are the top RUM analytics providers?

**URL:** <https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15>\
**Category:** Analysis\
**Created:** [June 27, 2013, 10:58pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15 "2013-06-27T22:58:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![igrigorik](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/igrigorik/32/925_2.png) [@igrigorik](https://discuss.httparchive.org/u/igrigorik)\
**Post date:** [June 27, 2013, 10:58pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/1 "2013-06-27T22:58:49Z")

</div>

```sql
SELECT vendor, sites, ROUND(ratio*10000)/100 as percent FROM (
  SELECT     
    COUNT(DISTINCT pageid, 1000000) as sites, 
    RATIO_TO_REPORT(sites) OVER() AS ratio,
    CASE 
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
      WHEN REGEXP_MATCH(url, "insight.torbit.com/.*.js") THEN "Torbit"
      WHEN url CONTAINS "aksb.min.js" THEN "Akamai"
      WHEN url CONTAINS "mpulse.net/boomerang/" 
        OR url CONTAINS "lognormal.net/boomerang/" THEN "SOASTA"
      WHEN url CONTAINS "/gomez" 
        AND url CONTAINS "rum" 
        AND url CONTAINS ".js" THEN "Gomez"
      WHEN url CONTAINS "boomerang.js" THEN "boomerang.js"
      WHEN url CONTAINS "/eum/rum.js" THEN "New Relic"
    END as vendor
  FROM [httparchive:runs.latest_requests] 
  GROUP BY vendor
  HAVING vendor IS NOT NULL
)
ORDER BY sites desc

```

**Note:** Akamai dynamically injects their RUM script at the time when the HTML is being generated (with customer defined sampling rate). As a result, the absolute count will vary (and won’t report all sites).

---

<div class="post-metadata">

**Author:** ![igrigorik](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/igrigorik/32/925_2.png) [@igrigorik](https://discuss.httparchive.org/u/igrigorik)\
**Post date:** [June 28, 2013, 2:23am UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/2 "2013-06-28T02:23:16Z")

</div>

![](https://yyz1.discourse-cdn.com/flex035/uploads/httparchive/18/c6cab5aaf94fe1d2.png)

@souders all merged into a single query now! The `percent` column is the relative market share for all the sites that have RUM installed. Trying to figure out how to add an absolute % as well, but that’s turning out to be a bit more tricky… /cc @fhoffa

---

<div class="post-metadata">

**Author:** ![rviscomi](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/rviscomi/32/835_2.png) [@rviscomi](https://discuss.httparchive.org/u/rviscomi)\
**Post date:** [May 25, 2017, 4:25pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/3 "2017-05-25T16:25:39Z")

</div>

Reran the query with 4/15/17 data:

![](https://canada1.discourse-cdn.com/flex035/uploads/httparchive/original/1X/837e4bae936aedc22463e50a8f53221a730f03dc.png)

Not much change with GA but Pingdom, SOASTA, and Akamai have grown substantially.

Would also be interesting to see the distribution of Alexa ranks for each vendor before and after…

Edit: Looking at the absolute numbers, GA now has fewer sites, but a similar % of vendorshare. Where did they go?

---

<div class="post-metadata">

**Author:** ![NicJ](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/nicj/32/672_2.png) [@NicJ](https://discuss.httparchive.org/u/NicJ)\
**Post date:** [May 25, 2017, 5:18pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/4 "2017-05-25T17:18:37Z")

</div>

Was there a change in New Relic detection? Going from 6440 sites to 2 seems suspect.

---

<div class="post-metadata">

**Author:** ![paulcalvano](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/paulcalvano/32/1601_2.png) [@paulcalvano](https://discuss.httparchive.org/u/paulcalvano)\
**Post date:** [May 25, 2017, 5:47pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/5 "2017-05-25T17:47:41Z")

</div>

Changing the NewRelic detection to:

> WHEN url CONTAINS “[js-agent.newrelic.com](http://js-agent.newrelic.com)” THEN “New Relic”

appears to work -

 ![](https://canada1.discourse-cdn.com/flex035/uploads/httparchive/original/1X/ca68be085ba9a59613cb1ce3c0f1de703617f42c.png)

---

<div class="post-metadata">

**Author:** ![andydavies](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/andydavies/32/1306_2.png) [@andydavies](https://discuss.httparchive.org/u/andydavies)\
**Post date:** [June 6, 2017, 2:20pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/6 "2017-06-06T14:20:12Z")

</div>

To add a few more providers into the mix (as AppDynamics can be self-hosted it may under-report their numbers)

```sql
SELECT vendor, sites, ROUND(ratio*10000)/100 as percent FROM (
  SELECT     
    COUNT(DISTINCT pageid, 1000000) as sites, 
    RATIO_TO_REPORT(sites) OVER() AS ratio,
    CASE 
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
      WHEN REGEXP_MATCH(url, "insight.torbit.com/.*.js") THEN "Torbit"
      WHEN url CONTAINS "aksb.min.js" THEN "Akamai"
      WHEN url CONTAINS "mpulse.net/boomerang/" 
        OR url CONTAINS "lognormal.net/boomerang/" THEN "SOASTA"
      WHEN url CONTAINS "/gomez" 
        AND url CONTAINS "rum" 
        AND url CONTAINS ".js" THEN "Gomez"
      WHEN url CONTAINS "boomerang.js" THEN "boomerang.js"
      WHEN url CONTAINS "js-agent.newrelic.com" THEN "New Relic"
      WHEN url CONTAINS "spdcrv" THEN "SpeedCurve"
      WHEN url CONTAINS "nccrum.core.js" THEN "NCC Web Perf"
      WHEN url CONTAINS "cdn.appdynamics.com" THEN "AppDynamics"
    END as vendor
  FROM [httparchive:runs.latest_requests] 
  GROUP BY vendor
  HAVING vendor IS NOT NULL
)
ORDER BY sites desc

```

![](https://canada1.discourse-cdn.com/flex035/uploads/httparchive/original/1X/52a196456fc1d504cfaa7fbb0f116cadb740ce5e.png)

---

<div class="post-metadata">

**Author:** ![benhastings](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/benhastings/32/1159_2.png) [@benhastings](https://discuss.httparchive.org/u/benhastings)\
**Post date:** [May 16, 2018, 1:25pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/7 "2018-05-16T13:25:25Z")

</div>

Looking for my own purposes and thought I’d share the results as of May.  
 ![image](https://cdck-file-uploads-canada1.s3.dualstack.ca-central-1.amazonaws.com/flex035/uploads/httparchive/original/2X/c/c25711b734511a6067320f3d361a99bddbffe068.png)

I’m curious what others think about this:  
For the sites I’ve inspected and companies I’ve worked with that explore RUM as a performance tool, many of them use Google Analytics AND something else - is this analysis a fair representation of what’s out there?

I’m going to experiment with the querying tool some more, but haven’t arrived at any different results with a simple reordering of the case statement.

---

<div class="post-metadata">

**Author:** ![benhastings](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/benhastings/32/1159_2.png) [@benhastings](https://discuss.httparchive.org/u/benhastings)\
**Post date:** [May 18, 2018, 5:19pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/8 "2018-05-18T17:19:25Z")

</div>

Another conclusion/question -  
I reran the query without the “HAVING vendor IS NOT NULL” and ended up with about 82% of sites having no observable RUM presence. That’s not terribly surprising, but it’s interesting when thinking about market penetration of paid-for performance monitoring solutions.

---

<div class="post-metadata">

**Author:** ![igrigorik](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/igrigorik/32/925_2.png) [@igrigorik](https://discuss.httparchive.org/u/igrigorik)\
**Post date:** [July 13, 2018, 11:19pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/9 "2018-07-13T23:19:53Z")

</div>

Rerunning the query against latest tables (with larger origin count)…

```sql
SELECT vendor, sites, ROUND(ratio*10000)/100 as percent FROM (
  SELECT     
    COUNT(DISTINCT page, 1000000) as sites, 
    RATIO_TO_REPORT(sites) OVER() AS ratio,
    CASE 
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
      WHEN REGEXP_MATCH(url, "insight.torbit.com/.*.js") THEN "Torbit"
      WHEN url CONTAINS "aksb.min.js" THEN "Akamai"
      WHEN url CONTAINS "mpulse.net/boomerang/" 
        OR url CONTAINS "lognormal.net/boomerang/" THEN "SOASTA"
      WHEN url CONTAINS "/gomez" 
        AND url CONTAINS "rum" 
        AND url CONTAINS ".js" THEN "Gomez"
      WHEN url CONTAINS "boomerang.js" THEN "boomerang.js"
      WHEN url CONTAINS "js-agent.newrelic.com" THEN "New Relic"
      WHEN url CONTAINS "spdcrv" THEN "SpeedCurve"
      WHEN url CONTAINS "nccrum.core.js" THEN "NCC Web Perf"
      WHEN url CONTAINS "cdn.appdynamics.com" THEN "AppDynamics"
    END as vendor
  FROM [httparchive:response_bodies.2018_07_01_desktop]  
  GROUP BY vendor
  HAVING vendor IS NOT NULL
)
ORDER BY sites desc

```

![image](https://canada1.discourse-cdn.com/flex035/uploads/httparchive/original/2X/f/f6e7a98cec81f2d84d13a48914e0744a2e1459b8.png)

---

<div class="post-metadata">

**Author:** ![rviscomi](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/rviscomi/32/835_2.png) [@rviscomi](https://discuss.httparchive.org/u/rviscomi)\
**Post date:** [July 26, 2018, 5:10pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/10 "2018-07-26T17:10:05Z")

</div>

I would suggest one change from @igrigorik’s query above to use the `requests` dataset rather than `response_bodies`, which is 3x the size. Since the query doesn’t care about the responses themselves (just the URL) `requests` would do.

---

<div class="post-metadata">

**Author:** ![igrigorik](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/igrigorik/32/925_2.png) [@igrigorik](https://discuss.httparchive.org/u/igrigorik)\
**Post date:** [July 27, 2018, 7:28pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/11 "2018-07-27T19:28:06Z")

</div>

Hmm, just realized that we’re missing some GA tags in above query (analytics.js, gtag.js)…

```sql
SELECT vendor, sites, ROUND(ratio*10000)/100 as percent FROM (
  SELECT     
    COUNT(DISTINCT page, 1000000) as sites, 
    RATIO_TO_REPORT(sites) OVER() AS ratio,
    CASE 
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/analytics.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*googletagmanager.com/gtag/js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
      WHEN REGEXP_MATCH(url, "insight.torbit.com/.*.js") THEN "Torbit"
      WHEN url CONTAINS "aksb.min.js" THEN "Akamai"
      WHEN url CONTAINS "mpulse.net/boomerang/" 
        OR url CONTAINS "lognormal.net/boomerang/" THEN "SOASTA"
      WHEN url CONTAINS "/gomez" 
        AND url CONTAINS "rum" 
        AND url CONTAINS ".js" THEN "Gomez"
      WHEN url CONTAINS "boomerang.js" THEN "boomerang.js"
      WHEN url CONTAINS "js-agent.newrelic.com" THEN "New Relic"
      WHEN url CONTAINS "spdcrv" THEN "SpeedCurve"
      WHEN url CONTAINS "nccrum.core.js" THEN "NCC Web Perf"
      WHEN url CONTAINS "cdn.appdynamics.com" THEN "AppDynamics"
    END as vendor
  FROM [httparchive:requests.2018_07_01_desktop]  
  GROUP BY vendor
)
ORDER BY sites desc

```

Using the above, a big bump for GA…

![image](https://canada1.discourse-cdn.com/flex035/uploads/httparchive/original/2X/e/ef8fbb51f37c588ef3e98202eb08202aa1562be4.png)

---

<div class="post-metadata">

**Author:** ![benhastings](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/benhastings/32/1159_2.png) [@benhastings](https://discuss.httparchive.org/u/benhastings)\
**Post date:** [August 5, 2018, 6:38pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/12 "2018-08-05T18:38:56Z")

</div>

I can’t see the inside view, but is this really accurately representing RUM by including all of the GA content? I know developers _can_ create and send performance metrics through GA, but it seems like that’s more of a boundary case.

GA isn’t on the short list at all when I think about RUM (performance) in any context. I’d be happy to know otherwise.

---

<div class="post-metadata">

**Author:** ![NicJ](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/nicj/32/672_2.png) [@NicJ](https://discuss.httparchive.org/u/NicJ)\
**Post date:** [January 27, 2020, 7:42pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/13 "2020-01-27T19:42:46Z")

</div>

Updated query:

1. Renamed `Akamai` to `Akamai (Legacy RUM)`
2. Renamed `SOASTA` to `Akamai mPulse`
3. Added the `lux.js` URL for SpeedCurve
4. Added CloudFlare’s RUM

```sql
SELECT vendor, sites, ROUND(ratio*10000)/100 as percent FROM (
  SELECT     
    COUNT(DISTINCT page, 1000000) as sites, 
    RATIO_TO_REPORT(sites) OVER() AS ratio,
    CASE 
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/analytics.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*googletagmanager.com/gtag/js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
      WHEN REGEXP_MATCH(url, "insight.torbit.com/.*.js") THEN "Torbit"
      WHEN url CONTAINS "aksb.min.js" THEN "Akamai (Legacy RUM)"
      WHEN url CONTAINS "go-mpulse.net/boomerang/" 
        OR url CONTAINS "lognormal.net/boomerang/" THEN "Akamai mPulse"
      WHEN url CONTAINS "/gomez" 
        AND url CONTAINS "rum" 
        AND url CONTAINS ".js" THEN "Gomez"
      WHEN url CONTAINS "boomerang.js" THEN "boomerang.js"
      WHEN url CONTAINS "js-agent.newrelic.com" THEN "New Relic"
      WHEN (url CONTAINS "spdcrv" OR url CONTAINS 'speedcurve.com/js/lux.js') THEN "SpeedCurve"
      WHEN url CONTAINS "nccrum.core.js" THEN "NCC Web Perf"
      WHEN url CONTAINS "cdn.appdynamics.com" THEN "AppDynamics"
      WHEN url CONTAINS "static.cloudflareinsights.com/beacon.min.js" THEN "CloudFlare"
    END as vendor
  FROM [httparchive:requests.2020_01_01_desktop]  
  GROUP BY vendor
)
ORDER BY sites desc

```

(note you have to run in Legacy SQL mode)

2020-01-01 results:

| Row | vendor | sites | percent | |
| --- | --- | --- | --- | --- |
| 1 | null | 4280567 | 57.46 | |
| 2 | Google Analytics | 2994638 | 40.2 | |
| 3 | New Relic | 142304 | 1.91 | |
| 4 | Akamai mPulse | 14058 | 0.19 | |
| 5 | Pingdom | 5795 | 0.08 | |
| 6 | CloudFlare | 3585 | 0.05 | |
| 7 | AppDynamics | 3192 | 0.04 | |
| 8 | Akamai (Legacy RUM) | 3047 | 0.04 | |
| 9 | SpeedCurve | 1940 | 0.03 | |
| 10 | boomerang.js | 761 | 0.01 | |
| 11 | NCC Web Perf | 19 | 0.0 | |

---

<div class="post-metadata">

**Author:** ![rviscomi](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/rviscomi/32/835_2.png) [@rviscomi](https://discuss.httparchive.org/u/rviscomi)\
**Post date:** [January 27, 2020, 8:20pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/14 "2020-01-27T20:20:45Z")

</div>

HTTP Archive integrates Wappalyzer detections upstream in WebPageTest and they have an [Analytics](https://www.wappalyzer.com/categories/analytics) category. It’s not exhaustive for web perf tools but it’s great because the detections are open source and community-maintained. I’d definitely recommend [filing a PR](https://github.com/AliasIO/wappalyzer/blob/master/src/apps.json) to get any major RUM tools added.

Here’s an example of querying the Wappalyzer data, which lives in the `technologies` dataset:

```sql
#standardSQL
SELECT
  app,
  COUNT(0) AS sites,
  COUNT(0) / total AS percent
FROM
  `httparchive.technologies.2020_01_01_desktop`,
  (SELECT COUNT(0) AS total FROM `httparchive.summary_pages.2020_01_01_desktop`)
WHERE
  category = 'Analytics'
GROUP BY
  app,
  total
ORDER BY
  sites DESC

```

This query processes 1.12 GB, which is much smaller than querying the `requests` tables.

| app | sites | percent |
| --- | --- | --- |
| Google Analytics | 3087580 | 72.13% |
| Google Analytics Enhanced eCommerce | 185820 | 4.34% |
| Hotjar | 177381 | 4.14% |
| Yandex.Metrika | 134906 | 3.15% |
| Matomo | 117786 | 2.75% |
| New Relic | 116995 | 2.73% |
| comScore | 84665 | 1.98% |
| TrackJs | 79999 | 1.87% |
| Liveinternet | 77979 | 1.82% |
| Quantcast | 48154 | 1.12% |
| Crazy Egg | 42600 | 1.00% |
| SiteCatalyst | 31086 | 0.73% |
| Statcounter | 30389 | 0.71% |
| Mixpanel | 27669 | 0.65% |
| Segment | 27241 | 0.64% |
| Visual Website Optimizer | 20877 | 0.49% |
| Intercom | 18662 | 0.44% |
| Optimizely | 16710 | 0.39% |
| Gemius | 16113 | 0.38% |
| Clicky | 15133 | 0.35% |
| WP-Statistics | 12453 | 0.29% |
| Chartbeat | 10578 | 0.25% |
| Mouse Flow | 10551 | 0.25% |
| Inspectlet | 6315 | 0.15% |
| BugSnag | 6299 | 0.15% |

---

<div class="post-metadata">

**Author:** ![NicJ](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/nicj/32/672_2.png) [@NicJ](https://discuss.httparchive.org/u/NicJ)\
**Post date:** [January 27, 2020, 8:22pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/15 "2020-01-27T20:22:23Z")

</div>

Also modified the `boomerang.js` query a bit to match a bunch of URLs we found from open-source users like `/boomerang-n.n.n.min.js` and `/boomerang`:

```sql
SELECT vendor, sites, ROUND(ratio*10000)/100 as percent FROM (
  SELECT     
    COUNT(DISTINCT page, 1000000) as sites, 
    RATIO_TO_REPORT(sites) OVER() AS ratio,
    CASE 
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*google-analytics.com/analytics.js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://[www.|ssl.]*googletagmanager.com/gtag/js") THEN "Google Analytics"
      WHEN REGEXP_MATCH(url, "http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
      WHEN REGEXP_MATCH(url, "insight.torbit.com/.*.js") THEN "Torbit"
      WHEN url CONTAINS "aksb.min.js" THEN "Akamai (Legacy RUM)"
      WHEN url CONTAINS "go-mpulse.net/boomerang/" 
        OR url CONTAINS "lognormal.net/boomerang/" THEN "Akamai mPulse"
      WHEN url CONTAINS "/gomez" 
        AND url CONTAINS "rum" 
        AND url CONTAINS ".js" THEN "Gomez"
      WHEN REGEXP_MATCH(url, r".*boomerang[\d\-\w\.]*(\.js)?$") THEN "boomerang.js"
      WHEN url CONTAINS "js-agent.newrelic.com" THEN "New Relic"
      WHEN (url CONTAINS "spdcrv" OR url CONTAINS 'speedcurve.com/js/lux.js') THEN "SpeedCurve"
      WHEN url CONTAINS "nccrum.core.js" THEN "NCC Web Perf"
      WHEN url CONTAINS "cdn.appdynamics.com" THEN "AppDynamics"
      WHEN url CONTAINS "static.cloudflareinsights.com/beacon.min.js" THEN "CloudFlare"
    END as vendor
  FROM [httparchive:requests.2020_01_01_desktop]  
  GROUP BY vendor
)
ORDER BY sites desc

```

Which bumps it up quite a bit:

| Row | vendor | sites | percent | |
| --- | --- | --- | --- | --- |
| 1 | null | 4280567 | 56.88 | |
| 2 | Google Analytics | 2994638 | 39.79 | |
| 3 | New Relic | 142304 | 1.89 | |
| 4 | boomerang.js | 76162 | 1.01 | |
| 5 | Akamai mPulse | 14058 | 0.19 | |
| 6 | Pingdom | 5795 | 0.08 | |
| 7 | CloudFlare | 3585 | 0.05 | |
| 8 | AppDynamics | 3192 | 0.04 | |
| 9 | Akamai (Legacy RUM) | 3047 | 0.04 | |
| 10 | SpeedCurve | 1940 | 0.03 | |
| 11 | NCC Web Perf | 19 | 0.0 | |

---

<div class="post-metadata">

**Author:** ![NicJ](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/nicj/32/672_2.png) [@NicJ](https://discuss.httparchive.org/u/NicJ)\
**Post date:** [January 27, 2020, 8:43pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/16 "2020-01-27T20:43:21Z")

</div>

Thanks Rick! I’ll take a look at updating Wappalyzer’s data too

---

<div class="post-metadata">

**Author:** ![rockeynebhwani](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/rockeynebhwani/32/1775_2.png) [@rockeynebhwani](https://discuss.httparchive.org/u/rockeynebhwani)\
**Post date:** [July 12, 2020, 11:57pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/17 "2020-07-12T23:57:05Z")

</div>

Is it possible to add ‘Dynatrace’ RUM solution to this list? I believe detection can be based on “ruxitagent\*.js”

---

<div class="post-metadata">

**Author:** ![paulcalvano](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/paulcalvano/32/1601_2.png) [@paulcalvano](https://discuss.httparchive.org/u/paulcalvano)\
**Post date:** [July 14, 2020, 5:05am UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/18 "2020-07-14T05:05:27Z")

</div>

Updated the query to use Standard SQL instead of Legacy SQL. Also added DynaTrace’s RUM.

```sql
SELECT 
  sites,
  ROUND(sites / (SELECT COUNT(DISTINCT page) FROM `httparchive.requests.2020_06_01_desktop`) * 100 , 2) AS pct_sites,
  vendor
FROM (
  SELECT     
    COUNT(DISTINCT page) as sites, 

    CASE 
      WHEN REGEXP_CONTAINS(url, r"http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
      WHEN REGEXP_CONTAINS(url, r"http[s]*://[www.|ssl.]*google-analytics.com/analytics.js") THEN "Google Analytics"
      WHEN REGEXP_CONTAINS(url, r"http[s]*://[www.|ssl.]*googletagmanager.com/gtag/js") THEN "Google Analytics"
      WHEN REGEXP_CONTAINS(url, r"http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
      WHEN REGEXP_CONTAINS(url, r"insight.torbit.com/.*.js") THEN "Torbit"
      WHEN url LIKE "%aksb.min.js%" THEN "Akamai (Legacy RUM)"
      WHEN url LIKE "%go-mpulse.net/boomerang/%" 
        OR url LIKE "%lognormal.net/boomerang/%" THEN "Akamai mPulse"
      WHEN url LIKE "%/gomez%" 
        AND url LIKE "%rum%" 
        AND url LIKE "%.js%" THEN "Gomez"
      WHEN REGEXP_CONTAINS(url, r".*boomerang[\d\-\w\.]*(\.js)?$") THEN "boomerang.js"
      WHEN url LIKE "%js-agent.newrelic.com%" THEN "New Relic"
      WHEN url LIKE "%spdcrv%" OR url LIKE '%speedcurve.com/js/lux.js%'THEN "SpeedCurve"
      WHEN url LIKE "%nccrum.core.js%" THEN "NCC Web Perf"
      WHEN url LIKE "%cdn.appdynamics.com%" THEN "AppDynamics"
      WHEN url LIKE "%static.cloudflareinsights.com/beacon.min.js%" THEN "CloudFlare"
      WHEN url LIKE "%ruxitagent%.js%" THEN "Dynatrace" 
    END as vendor
  FROM `httparchive.requests.2020_06_01_desktop`
  GROUP BY vendor 
)
WHERE vendor IS NOT NULL
GROUP BY vendor, sites
ORDER BY sites DESC

```

Here’s the results for June 2020 Desktop -

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/httparchive/original/2X/8/82c67a40312117729fb202718c75ec918834cbce.png)

---

<div class="post-metadata">

**Author:** ![rockeynebhwani](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/rockeynebhwani/32/1775_2.png) [@rockeynebhwani](https://discuss.httparchive.org/u/rockeynebhwani)\
**Post date:** [July 14, 2020, 6:25pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/19 "2020-07-14T18:25:33Z")

</div>

Thanks @paulcalvano for adding Dynatrace. I don’t know how to identify DataDog OR Raygun’s RUM solutions but it will good to add those as well.

I remember @andydavies saying on a thread that he has a long list of RUM providers. @andydavies - are you able to list provider names here so that we can expand this analysis?

---

<div class="post-metadata">

**Author:** ![jrharalson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.httparchive.org/jrharalson/32/1610_2.png) [@jrharalson](https://discuss.httparchive.org/u/jrharalson)\
**Post date:** [July 14, 2020, 10:05pm UTC](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15/21 "2020-07-14T22:05:51Z")

</div>

Certainly would be interested in @andydavies listing/thread.

In the meantime I’ve added Montis, Site24\*7, Uptrends, and Raygun. I’d like to add Catchpoint later.

> [@](#):
>
> ```sql
> SELECT 
> sites,
> ROUND(sites / (SELECT COUNT(DISTINCT page) FROM `httparchive.requests.2020_06_01_desktop`) * 100 , 2) AS pct_sites,
> vendor
> FROM (
> SELECT     
> COUNT(DISTINCT page) as sites, 
> 
> CASE 
> WHEN REGEXP_CONTAINS(url, r"http[s]*://[www.|ssl.]*google-analytics.com/ga.js") THEN "Google Analytics"
> WHEN REGEXP_CONTAINS(url, r"http[s]*://[www.|ssl.]*google-analytics.com/analytics.js") THEN "Google Analytics"
> WHEN REGEXP_CONTAINS(url, r"http[s]*://[www.|ssl.]*googletagmanager.com/gtag/js") THEN "Google Analytics"
> WHEN REGEXP_CONTAINS(url, r"http[s]*://rum-static.pingdom.net/prum") THEN "Pingdom"
> WHEN REGEXP_CONTAINS(url, r"insight.torbit.com/.*.js") THEN "Torbit"
> WHEN url LIKE "%aksb.min.js%" THEN "Akamai (Legacy RUM)"
> WHEN url LIKE "%go-mpulse.net/boomerang/%" 
> OR url LIKE "%lognormal.net/boomerang/%" THEN "Akamai mPulse"
> WHEN url LIKE "%/gomez%" 
> AND url LIKE "%rum%" 
> AND url LIKE "%.js%" THEN "Gomez"
> WHEN REGEXP_CONTAINS(url, r".*boomerang[\d\-\w\.]*(\.js)?$") THEN "boomerang.js"
> WHEN url LIKE "%js-agent.newrelic.com%" THEN "New Relic"
> WHEN url LIKE "%spdcrv%" OR url LIKE '%speedcurve.com/js/lux.js%'THEN "SpeedCurve"
> WHEN url LIKE "%nccrum.core.js%" THEN "NCC Web Perf"
> WHEN url LIKE "%cdn.appdynamics.com%" THEN "AppDynamics"
> WHEN url LIKE "%static.cloudflareinsights.com/beacon.min.js%" THEN "CloudFlare"
> WHEN url LIKE "%ruxitagent%.js%" THEN "Dynatrace" 
> WHEN url LIKE "%rum.monitis.com%.js%" THEN "Monitis" 
> WHEN url LIKE "%site24x7rum-min.js%" THEN "Site24x7"
> WHEN url like "%uptrends.com%rum.%.js%" THEN "Uptrends"
> WHEN url like "%cdn.raygun.io/raygun4js/raygun.%.js%" THEN "RayGun"
> END as vendor
> FROM `httparchive.requests.2020_06_01_desktop`
> GROUP BY vendor 
> )
> WHERE vendor IS NOT NULL
> GROUP BY vendor, sites
> ORDER BY sites DESC
> 
> ```

Here are the results for June 2020 Desktop

| Row | sites | pct\_sites | vendor | |
| --- | --- | --- | --- | --- |
| 1 | 3393853 | 68.03 | Google Analytics | |
| 2 | 147983 | 2.97 | New Relic | |
| 3 | 127671 | 2.56 | boomerang.js | |
| 4 | 15396 | 0.31 | Akamai mPulse | |
| 5 | 7773 | 0.16 | CloudFlare | |
| 6 | 5667 | 0.11 | Dynatrace | |
| 7 | 5018 | 0.1 | Pingdom | |
| 8 | 2949 | 0.06 | AppDynamics | |
| 9 | 2514 | 0.05 | Akamai (Legacy RUM) | |
| 10 | 1150 | 0.02 | SpeedCurve | |
| 11 | 963 | 0.02 | RayGun | |
| 12 | 886 | 0.02 | Site24x7 | |
| 13 | 166 | 0.0 | Monitis | |
| 14 | 12 | 0.0 | NCC Web Perf | |
| 15 | 1 | 0.0 | Uptrends | |

[Next page](https://discuss.httparchive.org/t/who-are-the-top-rum-analytics-providers/15.md?page=2)
