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).

Boomerang BFCache Navigation in Chrome Developer Tools

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

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:

Navigation Type in mPulse Dashboards

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:

Beacon Type in mPulse Dashboards

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:

Difference between Normal and BFCache Navigations

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:

Upgrading a mPulse App

We always recommend testing Boomerang version updates on a staging or QA domain first.