mPulse RUM data now includes minor versions for Safari and iOS

By Nic Jansma on

Table of Contents


Latest mPulse RUM Data Loaded

We've completed an export of mPulse daily RUM data into the BigQuery akamai-mpulse-rumarchive project up through 2024-04-30.

This brings the RUM Archive's mPulse dataset to a running total of 617 straight days of data available since 2022-09-01. (There is also first-of-month data going back to 2021-10-01).

Minor Versions for Safarai, iOS

From 2024-04-01 onward, the USERAGENTVERSION and OSVERSION columns now contain the Minor version information for a subset of browsers and operating systems. For example, you'll see rows with user agent version of 17.5 for Safari instead of just 17.

Both the mPulse Page Load and Third-Party Resource tables now include minor version numbers for the following browsers:

  • Safari
  • Mobile Safari
  • Mobile Safari UI/WKWebView

In addition, the mPulse Page Load and Third-Party Resource tables now include minor version numbers for the following operating systems:

  • iOS
  • iPadOS

All other browsers and operating systems will continue to only contain the major version.

For most browsers and OSs, the major version generally conveys the important features that are included in that release. For example, NavigationTiming has been available since Chrome 6+, and ResourceTiming since 25+.

On the other hand, Safari releases minor versions (e.g. 17.1, 17.2, 17.3, 17.4) at roughly the same schedule that the other browsers release major versions (e.g. Chrome 120, 122, 124). As a result, Safari and iOS often add major features in those "minor" version releases.

There has been a Github issue request to track minor versions of Safari in the RUM Archive for a while. For now, we've decided to do this only for Safari and iOS (per the above list). We are not including minor versions for other browsers and operating systems for two reasons:

  • To minimize problems for queries that span both pre-2024-04 and post-2024-04 data (see below for how to deal with this)
  • Each increase in dimension cardinality creates the possibility that some data may not be included in the RUM Archive dataset due to our minimum count threshold requirements (e.g. more outliers could be excluded)

How to Query Minor Versions

USERAGENTVERSION and OSVERSION are the only two columns affected.

If you query data prior to 2024-04-1, all versions should only contain a single number (major version):

-- 2024-03-31
SELECT USERAGENTFAMILY,
USERAGENTVERSION,
SUM(BEACONS) as BEACONCOUNT,
ROUND(SUM(BEACONS) /
(SELECT SUM(BEACONS)
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE DATE = '2024-03-31' AND USERAGENTFAMILY = 'Mobile Safari')
* 100, 1) as BEACONCOUNTPCT,
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE DATE = "2024-03-31"
AND USERAGENTFAMILY = 'Mobile Safari'
GROUP BY USERAGENTFAMILY, USERAGENTVERSION
ORDER BY BEACONCOUNT DESC
LIMIT 10
USERAGENTFAMILY USERAGENTVERSION BEACONCOUNT BEACONCOUNTPCT
Mobile Safari 17 30735863 78.0
Mobile Safari 16 6617861 16.8
Mobile Safari 15 1437859 3.7
Mobile Safari 13 310754 0.8
Mobile Safari 14 208382 0.5
Mobile Safari 12 53219 0.1
Mobile Safari 10 8930 0.0
Mobile Safari 11 8499 0.0
Mobile Safari 3048 0.0
Mobile Safari 6 2374 0.0

Starting with 2024-04-01 onward, the same columns will have Major.Minor versions for the listed browsers and OSs:

-- 2024-04-01
SELECT USERAGENTFAMILY,
USERAGENTVERSION,
SUM(BEACONS) as BEACONCOUNT,
ROUND(SUM(BEACONS) /
(SELECT SUM(BEACONS)
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE DATE = '2024-04-01' AND USERAGENTFAMILY = 'Mobile Safari')
* 100, 1) as BEACONCOUNTPCT,
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE DATE = "2024-04-01"
AND USERAGENTFAMILY = 'Mobile Safari'
GROUP BY USERAGENTFAMILY, USERAGENTVERSION
ORDER BY BEACONCOUNT DESC
LIMIT 10
USERAGENTFAMILY USERAGENTVERSION BEACONCOUNT BEACONCOUNTPCT
Mobile Safari 17.3 27200470 59.5
Mobile Safari 17.4 5658521 12.4
Mobile Safari 16.6 3591843 7.9
Mobile Safari 17.2 1478059 3.2
Mobile Safari 16.1 1376605 3.0
Mobile Safari 15.6 1213163 2.7
Mobile Safari 16.3 1130011 2.5
Mobile Safari 17.1 1007907 2.2
Mobile Safari 16.2 643075 1.4
Mobile Safari 16.0 523994 1.1

If your queries span before/after 2024-04-01, you may want to remove the minor version from USERAGENTVERSION and OSVERSION. Otherwise, you will see a mixture of dimension with-and-without the ..

For example, this query spans 2024-03-31 and 2024-04-01, but does not "deal with" the change to include minor versions:

-- data spanning dates before and after the minor versions were added
SELECT USERAGENTFAMILY,
SPLIT(USERAGENTVERSION, '.')[OFFSET(0)] AS USERAGENTVERSION,
SUM(BEACONS) as BEACONCOUNT,
ROUND(SUM(BEACONS) /
(SELECT SUM(BEACONS)
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE (DATE = '2024-03-31' OR DATE = '2024-04-01') AND USERAGENTFAMILY = 'Mobile Safari')
* 100, 1) as BEACONCOUNTPCT,
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE (DATE = '2024-03-31' OR DATE = '2024-04-01')
AND USERAGENTFAMILY = 'Mobile Safari'
GROUP BY USERAGENTFAMILY, USERAGENTVERSION
ORDER BY BEACONCOUNT DESC

And as a result, the USERAGENTVERSION has data for 17 but also for 17.0, 17.1, 17.2, etc:

USERAGENTFAMILY USERAGENTVERSION BEACONCOUNT BEACONCOUNTPCT
Mobile Safari 17 30735863 36.1
Mobile Safari 17.3 27200470 32.0
Mobile Safari 16 6617861 7.8
Mobile Safari 17.4 5658521 6.6
Mobile Safari 16.6 3591843 4.2
Mobile Safari 17.2 1478059 1.7
Mobile Safari 15 1437859 1.7
Mobile Safari 16.1 1376605 1.6
Mobile Safari 15.6 1213163 1.4
Mobile Safari 16.3 1130011 1.3
Mobile Safari 17.1 1007907 1.2
Mobile Safari 16.2 643075 0.8
Mobile Safari 16.0 523994 0.6
Mobile Safari 13.0 373017 0.4
Mobile Safari 16.5 321928 0.4
Mobile Safari 13 310754 0.4
Mobile Safari 17.0 296167 0.3

Instead, you can use simple SQL like SPLIT() to re-combine minor versions into the major version:

-- re-combine minor versions into just the major version
SELECT USERAGENTFAMILY,
SPLIT(USERAGENTVERSION, '.')[OFFSET(0)] AS USERAGENTVERSION,
SUM(BEACONS) as BEACONCOUNT,
ROUND(SUM(BEACONS) /
(SELECT SUM(BEACONS)
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE (DATE = '2024-03-31' OR DATE = '2024-04-01') AND USERAGENTFAMILY = 'Mobile Safari')
* 100, 1) as BEACONCOUNTPCT,
FROM `akamai-mpulse-rumarchive.rumarchive.rumarchive_page_loads`
WHERE (DATE = '2024-03-31' OR DATE = '2024-04-01')
AND USERAGENTFAMILY = 'Mobile Safari'
GROUP BY USERAGENTFAMILY, USERAGENTVERSION
ORDER BY BEACONCOUNT DESC

And then the data is re-combined:

USERAGENTFAMILY USERAGENTVERSION BEACONCOUNT BEACONCOUNTPCT
Mobile Safari 17 66377696 78.0
Mobile Safari 16 14328819 16.8
Mobile Safari 15 3088770 3.6
Mobile Safari 13 698902 0.8
Mobile Safari 14 431060 0.5
Mobile Safari 12 122833 0.1
Mobile Safari 10 22016 0.0
Mobile Safari 11 17783 0.0

If you have any questions or feedback, please let us know!