Boomerang 1.792 Generally Available
By Nic Jansma on
Table of Contents
Boomerang 1.792 is now Generally Available (GA) for all customers to use.
Boomerang is the open-source JavaScript library (maintained by the Akamai mPulse developers) that captures Real User Monitoring (RUM) metrics for mPulse.
The most recent GA version of Boomerang is 1.766.
1.792 adds new features (such as measuring BFCache Navigations and a trial for Soft Navigation Heuristics in Chrome), in addition to addressing some important bug fixes (for LCP and SPA measurements, and more).
Back-Forward Cache (BFCache) Navigations
Back-Forward Cache (known as BFCache) Navigations are a browser optimization that allows for nearly-instant back-and-forward navigations between pages on a site. Chrome joined Safari and Firefox in supporting BFCache navigations in 2023.
Measuring BFCache navigations with RUM is important to understand the full picture of user experiences on your site. BFCache navigations are generally much faster than a regular back-forward navigation (which requires a full page re-construction), as the previous page is instead restored from memory (a cache). Faster page loads result in happier users, and as a result, BFCache navigations can have a positive effect on your overall business metrics.
Not all sites are capable of BFCache navigations. For example, if any JavaScript on your site registers an unload
event handler, BFCache will not be possible. The Chrome team has a great guide on web.dev for optimizing your page for BFCache.
BFCache Navigations in mPulse
Prior to Boomerang 1.792, only regular Back-Forward navigations were being measured (i.e. sending a beacon). BFCache navigations didn't trigger a beacon because they weren't causing a "full" page load.
With 1.792+, Boomerang will now also measure BFCache navigations by default.
On the beacon, BFCache navigations will have http.initiator: bfcache
and nt_nav_type: 2
(back-forward).
Once the beacon arrives in mPulse, you can view BFCache navigation beacons in the regular mPulse dashboards.
BFCache Navigations have the following characteristics:
- Timers:
- Page Load Time and Front-End Time will be the time it took to restore the page (generally, this very small, often under 100ms)
- Back-End Time will be
0
milliseconds - First Contentful Paint and Largest Contentful Paint should be included on the beacon (and generally, very small as well)
- Dimensions:
- Beacon Type will be
bfcache
- Navigation Type will be
Back-Forward
- BFCache Navigation will be set to
True
(a new dimension, coming soon!) - Other dimensions such as Page Group, A/B and Custom Dimensions are not currently set, but will be in a future version of Boomerang
- Beacon Type will be
BFCache Navigations are classifed as Back-Forward
navigations for the Navigation Type dimension. When looking at your mPulse dashboards, you could use the Dimensions dashboard to Group By Navigation Type to see how frequently visitors use the Back-Forward button on your site. If BFCache is enabled, a subset of those Back-Forward navigations will be BFCache-powered:
Switching to Group By Beacon Type in the Dimensions dashboard, we can see a little more than half of the Back-Forward
navigations are bfcache
specifically:
BFCache navigations have different performance characteristics than regular Page Loads, and as a result, will likely change aggregated performance metrics and reports.
BFCache navigations should be dramatically faster than all other navigations (regular and non-BFCache Back-Forward). Here's an example where we can see the differences in Front-End Time, Load Time, FCP and LCP between the two:
Finally, if a Back-Forward navigation was not BFCache-eligible, due to page construction limitations, we are collecting the "Not Restored Reason". This is set as bfc.nrr
on the beacon, and will be surfaced as a new BFCache Not Restored Reason dimension in the mPulse dashboards soon. The Not Restored Reason feature should be available in Chrome 122+.
Disabling Boomerang BFCache Measurements
You can choose to disable Boomerang's BFCache measurements if you'd prefer. Via JavaScript:
window.BOOMR_config = window.BOOMR_config || {};
window.BOOMR_config.BFCache = { enabled: false };
Via Akamai Property Manager in the mPulse Behavior's Config Override section:
{
"BFCache": {
"enabled": false
}
}
Soft Navigation Heuristics
Soft Navigation Heuristics is an experiment that the Chrome team is running to try to expose better metrics for SPA "soft" navigations.
The way Boomerang is utilizing Soft Nav Heuristics is to supplement the existing SPA measurements that Boomerang captures. We believe Soft Nav Heuristics will give Boomerang a more accurate measurement of the "start" of each soft navigation.
For now, we have added support to collect Soft Nav Heuristic data, and are adding that data to our mPulse beacons. The data and timestamps we gather are not affecting the "start" or "duration" timestamps of the soft navigations that Boomerang reports. Instead, we will be analyzing the new data-points (in aggregate) to see how closely it aligns to our existing instrumentation.
Eventually, we may prioritize the timestamps that Soft Nav Heuristics reports over our existing measurement mechanisms, if we find it more accurate.
You could see these new data-points on the beacon:
spa.snh.s
: When Soft Navigation Heuristics is active, the latest start time (Unix Epoch)spa.snh.n
: When Soft Navigation Heuristics is active, the number of Soft Navs detected for this beacon
Bug Fixes
We are continually improving Boomerang and addressing customer feedback and pain-points. This version brings a number of bug-fixes and changes.
Please review the full release notes for details on all of the fixes:
Upgrading a mPulse App to Boomerang 1.792
You can change your app to any version of Boomerang by using the mPulse App Editor.
For example, to upgrade to 1.792 in your mPulse App Editor dialog:
We always recommend testing Boomerang version updates on a staging or QA domain first.