What is in an mPulse beacon

What's in an mPulse Beacon (Web Apps)

The content of this page applies to mPulse web apps. Documentation for mobile apps is available here.

mPulse is built on top of the boomerang JavaScript library which collects web performance data from a user’s web browser and sends the data back to the mPulse servers via a beacon.

Beacons are invisible network requests that contain performance data and other page-load characteristics. All of this data is included on the beacon via HTTP headers or as part of the query string or form payload.

Within the web performance community, this data is commonly called RUM or Real User Measurement data because it involves measuring the experience of real users.

In this document, we will describe the various parameters collected via the boomerang beacon as well as how they are mapped to other parts of mPulse such as S3, Asgard and DSWB.

As of April 2020, all IP addresses are truncated. IPv4 IPs are truncated to /24 (e.g. 1.2.3.4 to 1.2.3.0) and IPv6 IPs are truncated to /64 (e.g. aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh to aaaa:bbbb:cccc:dddd::).

Top Level Fields

FieldQuery String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
Log Type--type----beacon batchmPulse log type
Beacon ID--idbeaconId--xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxBeacon GUID
Domainh.ddomain--domainwebsite.comRegistered domain or registered dev domain in mPulse of the page sending the beacon
Domain ID--domainidappid--123Registered domain ID
Timestamp--timestamptimestamptimestamp1512086400000Server timestamp when beacon arrived (Unix epoch)
Page IDpidpage_idpageId--abcd1234Page ID
Beacon Numbernnadditionalfieldsjson--1Beacon number for current page
IP--remote_ipremoteipremoteIP1.2.3.0IP address of the end user (or the proxy they are connected through) (truncated)
API Keyh.keykey--keyXXXXX-XXXXX-XXXXX-XXXXX-XXXXXmPulse API Key assigned to this domain
Beacon HTTP Method--http_method--httpMethodGET POSTHTTP Request method used to send the beacon (for internal use only)
Beacon HTTP Version--http_version--httpVersionHTTP/1.1HTTP Version used to send the beacon (for internal use only)
Beacon Referrer--http_referrer--beaconReferrerhttp://referrer.comURL of the page that sent the beacon. This may be blank depending on browser privacy settings.
Beacon IPv6--ipv6ipv6ipv6trueSet to true if the beacon was sent using IPv6 (for internal use only)
Proxy Address--proxy_address--proxyAddress1.2.3.4IP address of the CDN provider that handled the edge connection for this beacon (for internal use only) (not truncated)
Beacon Typehttp.initiatorbeacon_typebeacontypenamebeaconTypepage view xhr unload spa spa_hard interaction
client_batch api_custom_metric api_custom_timer api_network_request
Type of beacon: page view, XHR, SPA hard or soft navigation, etc
Page Grouph.pgpage_grouppagegroupnamepageGroupHome Orders PDP (No Page Group)Page Group for the page (Page Groups are defined in the mPulse App Config dialog)
A/B Test nameh.abab_testabtestnameabTestNameA BIf the site uses A/B Testing, this variable specifies the test bucket the user was in when they sent the beacon
Site/App Versionh.vsite_versionsiteversionnamesiteVersion1.0 2.5bSite owners may use this to specify a release number for their site.
Filtered URL--urlurlurlhttp://website.com/URL of page according to any URL patterns defined within the app.
If no URL patterns are defined, this is the top level URL of the site.
Warnings--warningswarningswarnings["clock:askew"]Array of warnings added by the collector when parsing this beacon
SPDYnt_spdyspdyspdyspdytrueSet to true if the page was served using SPDY
SSL--sslsslssltrueSet to true if the page was served using SSL
API Statusapiapi----trueSet to true if this beacon was sent from an API call
Mobile Connection Typemob.ctmobile_connection_typemobileConnectionType--Ethernet WiFi 2G 3G 4G LTEMobile connection type
Navigation Typent_nav_typenavigation_typenavigationTypeName--navigate reload back_forwardNavigation Type

Session

The following fields live under the session: {} object in S3.

SessionQuery String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
Session IDrt.siIDsessionidsessionIdxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-nnnnnnSession ID generated by mPulse and stored in a cookie by Boomerang.

The first five chunks are a UUID, while the last chunk is the base36 representation of the session start time based on the user's clock.
Session Start Timert.ssstartsessionstartsessionStart1512086400000Session start time (Unix epoch) based on the user's browser's clock.

This clock may not be in sync with the server clock, so only compare it with other browser timestamps.
Session Latest Timert.endlatestsessionlatestsessionLatest1512086400000The timestamp (Unix epoch) of the current beacon based on the user's browser's clock.

It is not the timestamp of the latest beacon in the session.

To find out actual session duration, look at MAX(latest) - MIN(start) across all beacons grouped by Session ID.
Session Length
(in Pages)
rt.slpagessessionpagessessionLength10The number of pages the user viewed in this session up to and including the current page, but not including any pages viewed after this page in the same session.

To find out actual Session Length in pages, look at MAX(pages) across all beacons grouped by Session ID.

If MAX(pages) == 1, then the session is considered a bounce.
Uncounted pagesrt.obooboPagessessionobopagessessionUncountedPages0The number of pages in the session for which we were unable to calculate a load time.

We need this to get a closer estimate of the actual average load time of all pages in the session.
Total Load Timert.tttotalLoadTimesessiontotalloadtimesessionTotalLoadTime2000The sum of load times (in milliseconds) of all pages within the session where we calculated load time.

The average load time of a session is MAX(totalLoadTime) / (MAX(pages) - MAX(oboPages)).
Unload flagrt.quitisUnloadsessionisunloadsessionIsUnloadtrue or missingThis field specifies if the beacon was part of the unload event of the page or not.

Unload beacons give us a better idea of how long a session actually lasted.

User Agent Fields

The following fields come from the User-Agent HTTP Request Header. There are no query string parameters.

The following fields live under the user_agent: {} object in S3.

User Agent FieldsS3AsgardDSWB BEACON_TABLE varExamplesDescription
Browser FamilyfamilyuseragentnameuserAgentFamilyChrome Firefox IE Safari Mobile SafariThe browser family extracted from the user agent header
Major versionmajoruseragentversionuserAgentMajor42 13 11The browser major version
Minor versionminoruseragentminoruserAgentMinor0 5The browser minor version
OS NameosoperatingsystemnameuserAgentOsWindows Android OS Mac OS X iOSThe Operating System name for the user
OS VersionosversionoperatingsystemversionuserAgentOsVersion8.1The Operating System version for the user
ModelmodeldevicenameuserAgentModeliPhone iPadDevice model for mobile devices
ManufacturermanufacturerdevicemanufacturernameuserAgentManufacturerApple Samsung LGDevice manufacturer for mobile devices
Device TypetypedevicetypenameuserAgentDeviceTypeDesktop Mobile TabletDevice type
Syntheticsynthetic----WebPagetestDetected synthetic user agent name
Botbot----cURL GooglebotDetected bot name
Raw User Agent StringrawuseragentrawuserAgentRawMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36The raw User-Agent HTTP header

Geo Information

The following fields come from doing a MaxMind GeoIP lookup on the source IP address. There are no query string parameters.

The following fields live under the geo: {} object in S3.

Geo InformationS3AsgardDSWB BEACON_TABLE varExamplesDescription
CountrycccountrycodecountryCodeUSThe user's country (L1 geo info)
Region/State/TerritoryrgregioncoderegionCodeDCThe user's region, state, province, or territory (L2 geo info)
CitycitygeocitycityNameWashingtonThe user's city (L4 geo info)
Postal CodepostalcodegeopostalcodepostalCode20009The user's postal/zip code
Latitudelatgeolatlatitude10.0The user's approximate latitude (as granular as the zip code of the ISP the user is connecting from)
Longitudelongeolonlongitude10.0The user's approximate longitude (as granular as the zip code of the ISP the user is connecting from)
OrganizationorggeoorgorganizationComcast Cable Verizon WirelessThe user's organization, if connected over a corporate/university network
ISPispgeoispispComcast Cable Virgin MediaThe user's ISP
Network speednetspeedconntypenamenetworkSpeedCellular Ethernet Cable/DSLThe advertised network grade of the user's internet connection
Overwritten Locationovr----true falseWhether the mobile device's location API was used to determine location (rather than the source IP address)

Bandwidth

The following fields live under the bandwidth: {} object in S3.

Also see Bandwidth & Latency details in the Other Parameters section below.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
bwkbpsbandwidthkbpskbps1000Bandwidth (in kbps) as measured by the bandwidth test
bw_errerror_pcbandwidtherrorpckpbsError10Error in measuring the bandwidth based on standard deviation
blockbandwidthblockcodebandwidthBlock1 5Bandwidth block (calculated by the server)
bw_debugbw_debug----5_20Bandwidth debugging info

Timers

All timers are in milliseconds unless otherwise specified.

The following fields live under the timers: {} object in S3 unless otherwise specified.

Standard Timers

TimersQuery String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
Base TimersThe following fields are sent on the beacon as-is
Unload Time--unload_timeunloadTime--100Time unloading the previous page
Redirect Time--redirect_timeredirectTime--100Time from redirect start to redirect end
Waiting Time--waiting_timewaitingTime--100Time from request start to response start
Download Time--download_timedownloadTime--100Time from response start to response end
Back-End Time (TTFB)t_respt_respfirstbytetimertimersResponse100Time from navigation start to first byte
Front-End Timet_paget_pagefirstlastbytetimertimersPage100Time from first byte to onload (or whenever the page is considered ready)
Page Load timet_donet_donepageloadtimetimersDone100Time from navigation start to onload (or whenever the page is considered ready)
DOM Loadedt_domloadedt_domloadedtimerstdomloadedtimersDomLoaded100Time from navigation start to when the DOMContentLoaded event fired
config.json first bytet_configfbt_configfbtimerstconfigfbtimersConfigFirstByte100Time from config.json request to config.json first byte
config.json load timet_configjst_configjstimerstconfigjstimersConfigJs100Time from config.json request to config.json load complete
Worker Start--worker_startworkerStart--100Time for Service Worker start
Other TimersThe following are sent on the beacon as part of t_other
Boomerang loaderboomr_ldboomr_ldtimersboomrldtimersBoomerangLoader100Time from navigation start to when the Boomerang loader initiates Boomerang download
Boomerang first byteboomr_fbboomr_fbtimersboomrfbtimersBoomerangFirstByte100Time from navigation start to first byte of Boomerang
Boomerang latencyboomr_latboomr_lattimersboomrlattimersBoomerangLatency100Time from Boomerang request to Boomerang first byte
Boomerang download timeboomerangboomerangtimersboomerangtimersBoomerang100Time from first byte of Boomerang until Boomerang completes initialization
Detailed Boomerang TimesThe following are sent on the beacon compressed using Resource Timing compression
Detailed Boomerang timesrt.bmrparams["rt.bmr"]paramsRtBmr*--145,124,2Resource Timing values for Boomerang, compressed using the Resource Timing compression algorithm
Detailed config.json timesrt.cnfparams["rt.cnf"]paramsRtCnf*--301,100,3Resource Timing values for config.json, compressed using the Resource Timing compression algorithm

Prerender States

These are only supported on Chrome at this time.

See Chromium Prerender docs & Prerendering in Chrome

Prerender statesQuery String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
Prerender completet_loadt_loadtimerstloadtimersLoad100Time from navigation start to onload, if the page was in a pre-rendered state when onload fired
Total prerendert_prerendert_prerendertimerstprerendertimersPreRender100Time from navigation start to page becoming visible, if it went through a pre-rendered state first
Post rendert_postrendert_postrendertimerstpostrendertimersPostRender100Time from onload in a pre-rendered state to page becoming visible

Added by Server

The following are calculated on the server. There are no query string parameters.

S3AsgardDSWB BEACON_TABLE varExamplesDescription
navSt_to_boomrtimersnavsttoboomrtimersNavigationStartToBoomerang100Time from navigation start to when the Boomerang loader initiates Boomerang download
fb_to_boomrtimersfbtoboomrtimersFirstByteToBoomerang100Time from the first byte of the page to Boomerang's request initiation.
This is used by FirstByteEstimator for beacons without a valid load time.
boomr_to_endtimersboomrtoendtimersBoomerangToEnd100Time from Boomerang's request initiation to page load.
This is used by FirstByteEstimator for beacons without a valid load time.
before_dnstimersbeforednstimersBeforeDns100domainLookupStart - navigationStart from NavigationTiming
dnsdnstimertimersDns100domainLookupEnd - domainLookupStart from NavigationTiming
tcptcptimertimersTcp100connectEnd - connectStart from NavigationTiming
sslssltimertimersSsl100connectEnd - secureConnectionStart from NavigationTiming
domLoaddomloadtimertimersDomLoad100domLoading - navigationStart from NavigationTiming
domReadydomreadytimertimersDomReady100domComplete - navigationStart from NavigationTiming
renderStarttimersrenderstarttimersRenderStart100firstPaint - navigationStart from NavigationTiming
loadedtimersloadedtimersLoaded100loadEventEnd - navigationStart from NavigationTiming
unounattributedNavigationOverheadunattributedNavigationOverhead100Any non-attributed time between navigationStart and requestStart

Custom Timers

Custom Timers are configured via the mPulse App config dialog and may be based on a JavaScript variable, NavigationTiming, Resource Timing or User Timing.

On the beacon, these are part of t_other.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
custom[0-9]custom[0-9]customtimer[0-9]timersCustom[0-9]100Custom Timer #[n]

User Defined Timers

You may also add your own timers by calling BOOMR.plugins.RT.setTimer() from JavaScript.

Every custom timer also contains a corresponding *_st (eg: custom0_st) that specifies the timestamp (Unix epoch) when the timer started.

Custom Metrics

Custom metrics are defined in the mPulse App config dialog.

On the beacon, these metrics have the prefix cmet., followed by a sanitized version of the metric name.

In the S3 logs, these metrics are all numerically indexed. Example:

...
custom_metrics: {
    "0": 10,
    "5": 1
},
...

Metric values are always numeric.

Currency values are always in the lowest unit (eg, ¢ rather than $). If a decimal place is included, then the value is multiplied by 100 to get the actual currency value.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
cmet.[Metric0-9_Name]0custommetric[0-9]customMetric[0-9]1Custom Metric #[n]

Custom Dimensions

Custom dimensions are defined in the mPulse App config dialog.

On the beacon, these dimensions have the prefix cdim., followed by a sanitized version of the dimension name.

In the S3 logs, these dimensions are in the custom_dimensions array indexed by their dimension number. Dimensions that aren't set may be null or missing (if no dimensions follow). Example:

...
custom_dimensions: [
    {
        "Region": "us",
        "alias": "United States"
    },
    null,
    {
        "Logged In": false,
        "alias": "False"
    }
],
...

Dimension values may be numeric, string or boolean.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
cdim.[Dimension0-9_Name](index 0)customdimension[0-9]value--{ "Region": "us", "alias": "United States" }Custom Dimension #[n]

HTTP Headers

The following fields live under the headers: {} object in S3.

All headers are lower-cased.

This is not an exhaustive list of all possible HTTP headers.

SourceS3AsgardDSWB BEACON_TABLE varExamplesDescription
CDNsx-forwarded-for----1.2.3.0 1.2.3.0,2.2.2.0List of IP addresses specifying user and all proxies between CDN and the user (truncated)
CDNsx-forwarded-proto----https http spdyProtocol used by end user's browser to connect to CDN endpoint
Akamaiaka-true-ip----1.2.3.0Client IP (truncated)
Browserconnection----close keep-aliveThe HTTP Connection header specifies if the browser is willing to handle persistent TCP conections or not
BrowserhostheadershostheadersHostabc123.akstat.ioThe beacon server where the beacon was sent. This is required by the HTTP specification.
Browseraccept-encodingheadersacceptencodingheadersAcceptEncodinggzip deflate sdch brList of encoding (compression) types supported by the user's browser
Browseraccept-language----en_US fr_CHLanguage encodings supported by the user's browser. This could suggest the user's locale.
BrowseracceptheadersacceptheadersAccept*/*Content types supported by the browser, along with their priorities
Browsercontent-lengthheaderscontentlengthheadersContentLength1234This is only used for POST beacons and is the number of bytes in the POSTed beacon

Other Parameters

Navigation Timing Data

See the NavigationTiming spec for more details, and browser support can be reviewed at caniuse.com.

All timestamps are in (Unix epoch) unless otherwise specified.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
nt_nav_typent_nav_typeparamsntnavtypentNavigationType0 1 2Navigation Type: performance.navigation.type
nt_nav_stnt_nav_stparamsntnavstntNavigationStart1512086400000Navigation Start: performance.timing.navigationStart
nt_red_stnt_red_stparamsntredstntRedirectionStart1512086400000Redirect Start: performance.timing.redirectStart
nt_red_endnt_red_endparamsntredendntRedirectionEnd1512086400000Redirect End: performance.timing.redirectEnd
nt_red_cntnt_red_cntparamsntredcntntRedirectionCnt1512086400000Redirect Count: performance.navigation.redirectCount
nt_fet_stnt_fet_stparamsntfetstntFetchStart1512086400000Fetch Start: performance.timing.fetchStart
nt_dns_stnt_dns_stparamsntdnsstntDnsStart1512086400000DNS Start: performance.timing.domainLookupStart
nt_dns_endnt_dns_endparamsntdnsendntDnsEnd1512086400000DNS End: performance.timing.domainLookupEnd
nt_con_stnt_con_stparamsntconstntTcpStart1512086400000TCP Start: performance.timing.connectStart
nt_ssl_stnt_ssl_stparamsntsslstntSslStart1512086400000SSL Start: performance.timing.secureConnectionStart
nt_con_endnt_con_endparamsntconendntTcpEnd1512086400000TCP End: performance.timing.connectEnd
nt_req_stnt_req_stparamsntreqstntRequestStart1512086400000Request Start: performance.timing.requestStart
nt_res_stnt_res_stparamsntresstntResponseStart1512086400000Response Start: performance.timing.responseStart
nt_unload_stnt_unload_stparamsntunloadstntUnloadStart1512086400000Unload Event Start: performance.timing.unloadEventStart
nt_unload_endnt_unload_endparamsntunloadendntUnloadEnd1512086400000Unload Event End: performance.timing.unloadEventEnd
nt_domloadingnt_domloadingparamsntdomloadingntDomLoading1512086400000DOM Loading: performance.timing.domLoading
nt_res_endnt_res_endparamsntresendntResponseEnd1512086400000Response End: performance.timing.responseEnd
nt_domintnt_domintparamsntdomintntDomInt1512086400000DOM Interactive: performance.timing.domInteractive
nt_domcontloaded_stnt_domcontloaded_stparamsntdomcontloadedstntDomContLoadedStart1512086400000DOMContentLoaded Start: performance.timing.domContentLoadedEventStart
nt_domcontloaded_endnt_domcontloaded_endparamsntdomcontloadedentDomContLoadedEnd1512086400000DOMContentLoaded End: performance.timing.domContentLoadedEventEnd
nt_domcompnt_domcompparamsntdomcompntDomComp1512086400000DOM Complete: performance.timing.domComplete
nt_load_stnt_load_stparamsntloadstntLoadStart1512086400000Load Event Start: performance.timing.loadEventStart
nt_load_endnt_load_endparamsntloadendntLoadEnd1512086400000Load Event End: performance.timing.loadEventEnd
nt_worker_startnt_worker_start----1512086400000Worker Start: performance.timing.workerStart
nt_firstpaintnt_firstpaintparamsntfirstpaintntFirstPaint1512086400000note that this is milliseconds on IE, but seconds.microseconds on Chrome. Not supported on other browsers.
nt_spdynt_spdyparamsntspdyntSpdy1 or 0Whether the page was served using SPDY
nt_cinfnt_cinf----http/1.1 http/2+quic/37Connection info
nt_protocolnt_protocolnextHopProtocol--http/1.1 http/2+quic/37Next Hop Protocol information (NavigationTiming2)
nt_enc_sizent_enc_size----100000Compressed size in bytes of the page (NavigationTiming2)
nt_dec_sizent_dec_size----100000Uncompressed size in bytes of the page (NavigationTiming2)
nt_trn_sizent_trn_size----100000Transfer size in bytes of the page (NavigationTiming2)
nt_badnt_bad----1If set, then the NavigationTiming data cannot be trusted due to a browser bug

Paint Timing Data

Data from the Boomerang PaintTiming plugin

See the PaintTiming spec for more details, and browser support can be reviewed at caniuse.com.

All timestamps are in DOMHighResTimeStamp rounded to the nearest millisecond.

The following fields live under the timers: {} object in S3:

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
pt.fpfpfirstPaint--100First Paint
pt.fcpfcpfirstContentfulPaint--300First Contentful Paint
pt.lcplcplargestContentfulPaint--500Largest Contentful Paint

The following fields live under the params: {} object in S3:

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
pt.hidpt.hid----1The document was loaded hidden, so paint metrics won't be added to the beacon
pt.lcp.srcpt.lcp.src----http://example.com/img.jpgSource URL of the Largest Contentful Paint element
pt.lcp.elpt.lcp.el----IMGElement tag name of the Largest Contentful Paint
pt.lcp.ept.lcp.e----body#content .hero-imageElement Pseudo-CSS selector for the Largest Contentful Paint
pt.lcp.spt.lcp.s----50000Size of the Largest Contentful Paint in device-independent pixels squared
pt.lcp.idpt.lcp.id----hero-imageElement ID of the Largest Contentful Paint
pt.lcp.srcsetpt.lcp.srcset----img.jpg 480w, img-large.jpg 800wElement srcset property of the Largest Contentful Paint
pt.lcp.sizespt.lcp.sizes----(max-width: 600px) 480px, 800pxElement sizes property of the Largest Contentful Paint

Single Page App

Information about Single Page App (SPA) navigations.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
spa.missedspa.missed----1 or missingThe SPA hard navigation missed the SPA's route change event
spa.forcedspa.forced----1 or missingThe SPA hard navigation was forced to completion by BOOMR.plugins.spa.markNavigationComplete()
spa.waitingspa.waiting----10The number of resources that were outstanding when the SPA hard navigation was forced
spa.t_clickspa.t_click----10The delta between the last click event and the start of the route change (ms)

Debugging Info and Timestamps

Other browser timestamps and related information taken in Boomerang, mainly used for debugging.

All timestamps are in (Unix epoch) unless otherwise specified.

The following fields live under the params: {} object in S3.

Debugging Info and TimestampsQuery String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
Boomerang VersionvvboomerangversionnameboomerangVersion1.500.0mPulse boomerang.js version
Boomerang Snippet Versionsvsv----12mPulse Loader Snippet version
Boomerang Snippet Methodsmsm----s i if pmPulse Loader Snippet method (SCRIPT, IFRAME, IFRAME fallback, or Preload)
Navigation Start Methodrt.startrt.startparamsrtstartrtStartnone navigation cookie manual csiSpecifies the method used to determine the start time
Navigation Start Timert.tstartrt.tstartparamsrttstartrtNavigationStart1512086400000Timestamp of navigation start using the method specified in rt.start
Cookie Navigation Startrt.cstartrt.cstartparamsrtcstartrtCookieStart1512086400000The value of t_start from the cookie, if different from rt.tstart
Boomerang Startrt.bstartrt.bstartparamsrtbstartrtBoomerangStart1512086400000The timestamp when Boomerang started
Boomerang Loader Startrt.blstartrt.blstartparamsrtblstartrtBoomerangLoadStart1512086400000The timestamp when Boomerang was added to the host page
Page Startrt.nstartrt.nstart----1512086400000Page Start time, if different than rt.tstart (used for XHR and SPA Soft navigations)
End Timert.endrt.endparamsrtendrtEnd1512086400000The timestamp when the t_done timer ended
Session Historyrt.shrt.shparamsrtshrtSessionHistory1486605029950=2:0:5356,1486604946946=1:0:2187Session History is used for debugging
Session Resetrt.srstrt.srstparamsrtsrstrtSessionRest1512086400000Past details of session when it gets reset
Token Timestamph.th.tparamshttokenTimestamp1512086400000Server timestamp when the Anti-CSRF token was generated (note the token is removed from the beacon)
Anti-CSRF Tokenh.cr------f3bfc31c3432d23e1d9972dd72eaf45e45b058c4The Anti-CSRF token added to the beacon
Unload flagrt.quitrt.quitparamsrtquitrtUnloadFlag(existence implies true)If this parameter exists, then this was an unload beacon
Abort flagrt.abldrt.abldparamsrtabldrtAbortFlag(existence implies true)If this parameter exists, then the user left the page before it finished loading
Invisible flagrt.ntvurt.ntvuparamsrtntvurtInvisibleFlag(existence implies true)If this parameter exists, then the user left the page without looking at it
IFRAME flagififparamsififrameFlag(existence implies true)If this parameter exists, then Boomerang was loaded via the IFRAME loader technique
Errorserrorserrors----There was an errorJavaScript errors found in Boomerang
Config Override Enabledc.oc.o----1Whether or not there was a BOOMR_config variable on the page
sendBeacon() Enabledsbsb----1Whether or not the sendBeacon() API was used to send the beacon
Page Load Time Inversiont_page.invt_page.inv----1If there was a problem detected with the start/end times of t_page. This can happen due to bugs in NavigationTiming clients, where responseEnd happens after all other NavigationTiming events.
No Cookienocookienocookie----1 or missingIf set, a cookie (like RT session cookie) could not be set
page_ready() was calledprpr----1 or missingIf set, a BOOMR.page_ready() was used to mark Page Load time
PCI mode Enabledpcipci----1 or missingIf set, Boomerang is operating in PCI mode (and filtering the FORM fields it will read)
PCI redacted fieldspci.redactedpci.redacted----cdim.FooBoomerang was in PCI mode and did not read the specified Metric, Timer or Dimension because it was PCI-sensitive
Landing Page--landing_pagelandingPageName--trueWhether this page load was a Landing Page (session length = 1)

URLs

URLs related to the beacon.

The following fields live under the params: {} object in S3.

URLsQuery String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
Page/SPA/XHR URL or AMP Source URLuuparamsuuhttp://website.com/api/foo/barURL of Page, XHR or SPA route that caused the beacon. For AMP pages, this data is read from the AMP SOURCE_URL variable.
Page URLpgupguparamspgupageUrlhttp://website.com/Page URL if different from u
Cookie ReferrerrrparamsrcookieReferrerhttps://referrer.com/URL of previous page that Boomerang wrote into a cookie
Referrerr2r2paramsr2referrerhttps://referrer.com/search/Referrer of current page if different from r
Next URLnunuparamsnunextUrlhttps://website.com/nextpage/URL clicked, if this beacon was a result of a click
AMP Document URLamp.uamp.uadditionalfieldsjson--https://www-website-com.cdn.ampproject.org/c/s/www.website.com/amp/foo/barFor AMP pages, this data is read from the AMP AMPDOC_URL variable

Page Structure

Details about the page structure like DOM nodes, SCRIPTs, etc.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
dom.resdom.resparamsdomresdomResources100Number of resources in Resource Timing
dom.domsdom.domsparamsdomdomsdomDomains10Number of domains referenced from page
dom.lndom.lnparamsdomlndomLength1000Number of DOM nodes on the page
dom.szdom.szparamsdomszdomSize100000Rendered bytes of base page. This may not be what was sent on the network.
dom.imgdom.imgparamsdomimgdomImages100Number of image nodes on the page
dom.img.extdom.img.extparamsdomimgextdomImageExt100Number of image nodes on the page that referenced external URLs
dom.img.uniqdom.img.uniq----100Number of unique image src nodes on the page that referenced external URLs
dom.scriptdom.scriptparamsdomscriptdomScripts10Number of script nodes on the page
dom.script.extdom.script.extparamsdomscriptextdomScriptExt10Number of script nodes on the page that referenced external URLs
dom.script.uniqdom.script.uniq----10Number of unique script src nodes
dom.iframedom.iframe----10Number of iframe nodes on the page
dom.iframe.extdom.iframe.ext----10Number of iframe nodes on the page that referenced external URLs
dom.iframe.uniqdom.iframe.uniq----10Number of unique iframe src nodes
dom.linkdom.link----10Number of link nodes on the page
dom.link.cssdom.link.css----10Number of link rel="stylesheet" nodes on the page
dom.link.css.uniqdom.link.css.uniq----10Number of unique link rel="stylesheet" nodes on the page
dom.res.slowestdom.res.slowestparamsdomresslowestdomSlowestResourcehttp://slowest.com/api/Slowest resource on page (if configured)
dom.ckdom.ck----100Number of bytes stored as cookies available to JavaScript on the current domain

Screen and Device Details

Details about screen resolution, CPU, memory, battery, etc.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
scr.xyscr.xyparamsscrxyscreenDimensions1440x900Screen width and height separated with x
scr.sxyscr.sxyparamsscrsxy--0x467X & Y positions of the scroll bar separated with x
scr.bppscr.bppparamsscrbppscreenBitsPerPixel24/24Screen color depth and pixel depth separated by /
scr.ornscr.ornparamsscrornscreenOrientation0/landscape-primaryScreen orientation angle and type separated by /
scr.dpxscr.dpxparamsscrdpxscreenDensityPixel2Screen device pixel ratio (informs you of details like Retina)
scr.mtpscr.mtpparamsscrmtpscreenMaximumTouchPoints1Maximum touch points for touchscreens
mem.totalmem.totalparamsmemtotalavailableMemory72200000Total Memory available to the browser
mem.limitmem.limitparamsmemlimit--2190000000Limit of the JS Heap size in the browser
mem.usedmem.usedparamsmemusedusedMemory64000000Total Memory used by the browser
mem.lsszmem.lssz----64000000Number of localStorage bytes used
mem.lslnmem.lsln----100Number of localStorage keys used
mem.ssszmem.sssz----64000000Number of sessionStorage bytes used
mem.sslnmem.ssln----100Number of sessionStorage keys used
cpu.cnccpu.cncparamscpucnccpuCores4Hardware concurrency (number of CPU cores) available to the browser
bat.lvlbat.lvlparamsbatlvlbatteryLevel1Battery charge level (between 0 & 1)
net.sdnet.sd----1navigator.connection.saveData
dev.memdev.mem----4The approximate amount of device memory in gigabytes

Visibility State

Tells you when the user last had the page hidden or visible on screen.

All timestamps are in (Unix epoch) unless otherwise specified.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
vis.stvis.stparamsvisstvisibilityStatevisible hiddenDocument's visibility state when beacon was sent
vis.lvvis.lvparamsvislvvisibilityLastVisible1000Milliseconds since the page's last visible event
vis.lhvis.lhparamsvislhvisibilityLastHidden2000Milliseconds since the page's last hidden event
vis.previs.pre----1if the page transitioned from prerender to visible
visibility_state (root)visibilityStateNamevisible partial hiddenDocument's overall visibility state

User Agent Details

User Agent details.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
ua.pltua.pltparamsuapltuserAgentPlatformMacIntelUser Agent Platform
ua.vndua.vndparamsuavnduserAgentVendorGoogle Inc.User Agent Vendor

XHR Details

Details related to XHRs and Single Page Apps.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
http.errnohttp.errnonetworkerrorcodehttpErrorNumber-999Status code of the XHR request if there was an error.

Note: This is a global field in the S3 JSON.

Some special codes are:
-1001: timeout
-999: request aborted by client
-998: unknown client error
-997: javascript exception when calling open
http.methodhttp.methodparamshttpmethodparamsHttpMethodPOSTHTTP method used for XHR request (if not set, GET)
http.hdrhttp.hdr--httpHeadersContent-Size: 100HTTP response headers for XHR request (optional)
http.initiatorhttp.initiatorparamshttpinitiatorhttpInitiatorxhr spa spa_hardType of beacon: XHR, SPA hard or soft navigation, etc
xhr.syncxhr.syncparamsxhrsyncxyrSync1Set to 1 if the XHR call was synchronous
rt.subresrt.subresparamsrtsubresxhrIsSubresource1Set to 1 if this XHR call is a subresource of the parent page and should not be counted towards Session Length
http.typehttp.typeadditionalfieldsjson--fSet to f for request using the Fetch API
fetch.bnufetch.bnuadditionalfieldsjson--1Set to 1 for request using the Fetch API that do not read the response body. See ([bodyUsed]https://developer.mozilla.org/en-US/docs/Web/API/Body/bodyUsed)).
xhr.ruxhr.ru----https://example.com/data.jsonFinal response URL after any redirects

Bandwidth and Latency Details

More details from the bandwidth test.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
bw_timebw_timeparamsbwtimebandwidthTimestamp1512086400000Timestamp (Unix epoch) on the user's browser when the bandwidth and latency was measured
latlatparamslathttpLatency100User's measured HTTP latency (in milliseconds)
lat_errlat_errparamslaterrhttpLatencyError5Error in measuring HTTP latency based on standard deviation

Mobile Connection Details

Details about mobile connections via the Network Information API.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
mob.ctmob.ctparamsmobctparamsMobileConnectionTypeEthernet WiFi 2G 3G 4G LTEMobile connection type
mob.bwmob.bwparamsmobbwmobileBandwidth10Advertised bandwidth of mobile connection (MB/s)
mob.mtmob.mtparamsmobmtmobileMeteredtrueWhether this mobile connection metered or not
mob.lmmob.lm----10Downlink max (MB/s)
mob.etypemob.etype----slow-2g 2g 3g or 4gEffective type of the connection
mob.dlmob.dl----100Effective bandwidth estimate in megabits per second, rounded to the nearest multiple of 25 kilobits per seconds
mob.rttmob.rtt----100Estimated effective round-trip time of the current connection, rounded to the nearest multiple of 25 milliseconds

Cross Domain Session Tracking

Details about cross-domain session tracking.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
rt.sstr_durrt.sstr_dur----100Session transfer duration (milliseconds)
rt.sstr_tort.sstr_to----1If set, the session transfer timed out

Errors

Application (JavaScript and network) errors.

Data is compressed on the beacon, see the Boomerang Errors plugin for details.

The following fields live under the errors: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
errerrors----(see above)Errors

Akamai

The following fields live under the params: {} object in S3 unless otherwise specified.

FieldQuery String ParamS3AsgardDSWB BEACON_TABLE varAkamai VariableExamplesDescription
Connection
Beacon Client Real IP--ak.ripparamsakrip--AK_CLIENT_REAL_IP1.2.3.0Beacon Client Real IP (truncated)
Beacon Client Real IP Version--ak.ripv----RUM_AK_CLIENT_REAL_IP_VERSION4 6Beacon Client Real IP Version
Beacon Client IP--ak.cipparamsakcip--AK_CLIENT_IP1.2.3.0Beacon Client IP (truncated)
EdgeScape
Bandwidth--ak.bwparamsakbw--2000 5000Client's bandwidth
Autonomous System Number--ak.asnumparamsakasnum--100The ASN of the client network
Continent--ak.continentparamsakcontinent--NAThe Continent the user is browsing from
Country--ak.countryparamsakcountry--USThe Country the user is browsing from
City--ak.cityparamsakcity--SOMEWHEREThe City the user is browsing from
Latitude--ak.latparamsaklat--10.0The user's approximate geo latitude (as granular as the zip code of the ISP the user is connecting from)
Longitude--ak.longparamsaklong--10.0The user's approximate geo longitude (as granular as the zip code of the ISP the user is connecting from)
Network--ak.networkparamsaknetwork--verizon frontier comcastNetwork
Network Type--ak.network_typeparamsaknetworktype--cableNetwork type
Region Info--ak.regional_infoparamsakregionalinfo--PA WA TXRegion ID
EDC
Browser Name--ak.ebparamsakeb--Internet Explorer SafariBrowser Name
Browser Version--ak.evparamsakev--11 11.0Browser Version
OS Name--ak.edoparamsakedo--Windows NT iPhone OSOS Name
OS Version--ak.edvparamsakedv--10.0 11.2OS Version
Device ID--ak.edparamsaked--w:msie_11_windows_nt_10_0 w:apple_iphone_ver11_2Device ID
Device is Mobile?--ak.edmparamsakedm--true falseWhether or not the device is mobile
Device is Tablet?--ak.edtparamsakedt--true falseWhether or not the device is a tablet
Device Brand Name--ak.ebnparamsakebn--Internet Explorer Apple AmazonDevice Brand Name
Device Marketing Name--ak.emnparamsakemn--Internet Explorer 11 Fire HD 10 (2017)Device Marketing Name
Device Model Name--ak.emoparamsakemo--11 iPhone KSFUWIDevice Model Name

The following metrics are only available if Akamai Edge-Injected mPulse is enabled. These fields live under the params: {} object in S3 unless otherwise specified.

FieldQuery String ParamS3AsgardDSWB BEACON_TABLE varAkamai VariableExamplesDescription
Akamai Info
ARL IDak.aiak.aiparamsakai--123456Akamai ARL ID
Customer CP Codeak.cpak.cpparamsakcp--AK_CPCODE123456Akamai Customer's CP Code
Content Sourceak.csrcak.csrcparamsakcsrc---Akamai Content Source
Regionak.rak.rparamsakr--12345Akamai Region ID
Request IDak.ridak.ridparamsakrid--AK_REQUEST_IDabc123Akamai Request ID
Connection
Base Page Client IPak.bpcipak.bpcipparamsakbpcip--AK_CLIENT_IP1.2.3.0 2001:db8:85a3:9103::Base Page Client IP (truncated)
Base Page Client Portak.cportak.cportparamsakcport--12345Base Page Client Port
QUIC Versionak.quicvak.quicvparamsakquicv--1Whether the browser is using QUIC or not and its version
QUIC Zero RTTak.0rttak.0rttparamsak0rtt--0 1Whether the QUIC connection used Zero RTT
Ghost IPak.ghak.ghparamsakgh--AK_GHOST_SERVICE_IP1.2.3.0Akamai Ghost IP (truncated)
Ghost Map Nameak.mak.mparamsakm--bAkamai Ghost Map Name
Ghost Networkak.nak.nparamsakn--Akamai Ghost Network
Active Congestion Controlak.accak.accadditionalfieldsjson--Akamai Active Congestion Control Algorithm
mPulse Dimensions
Akamai Adaptive Accelerationak.a2ak.a2, akamai_aa (root)paramsaka2--0 1Whether or not Adaptive Acceleration is enabled
HTTP Protocolak.protoak.proto, http_protocol (root)paramsakproto--AK_PROTOCOL_NEGOTIATIONhttp/1.1 h2HTTP Protocol the browser is using to connect to the website
IP Versionak.ipvak.ipv, ip_version (root)paramsakipv--4 6IP Version the browser is using to connect to the website
TLS Versionak.tlsvak.tlsv, tls_version (root)paramsaktlsv--AK_TLS_VERSIONtls1.3 tls1.2 tls1.1TLS Version the browser is using to connect to the website
Latency
Client Round-Trip Timeak.crak.crparamsakcr--AK_CLIENT_RTT10Client Round Trip Time
Origin Latencyak.olak.olparamsakol--100Base Page Origin Latency
Akamai Bot Manager
Akamai Bot Manager Enabled--ak.bm----0 1Whether Akamai Bot Manager is enabled for the property
Akamai Bot Manager Source--ak.bms----c (mPulse rules) p (Property rules)Where Akamai Bot Manager detection was run
Akamai Bot Manager Type--ak.bmt----Bot Synthetic Monitoring Akamai Known Bot Akamai Known Synthetic Monitoring Unknown Bot Customer-Categorized BotAkamai Bot Manager detected type
Akamai Bot Manager Category--ak.bmc----Example BotAkamai Bot Manager detected category
Misc
mPulse Edge Snippet Versionak.vak.vparamsakv--1mPulse Edge Snippet Version
Beacon Property Version--ak.mv----1Beacon Property Metadata version
Akamai Property Version Numberak.pvak.pv, akamai_property_version (root)akamaiPropertyVersionName--AKA_PM_PROPERTY_VERSION47mPulse Property Version
Akamai DPO A/B testak.dpoabencak.dpoabenc------abcmPulse Property Version
mPulse Pearl Transform Versionak.tfak.tf------1 or 2mPulse Property Version
Current Timeak.tak.t----1590685211Current time
User-Defined Stringak.ruds------``User-Defined String
Encrypted dataak.ak------hOBiQw...8PVLBvZ5Pg=Exists on a beacon and contains encrypted data

The following metrics are only available if Akamai Adaptive Acceleration and Edge Injection are both enabled. These fields live under the params: {} object in S3 unless otherwise specified.

FieldQuery String ParamS3Akamai VariableExamples
Common Push Enabledrua.cpushrua.cpushRUA_OUT_WILL_COMMON_PUSH1
Unique Push Enabledrua.upushrua.upushRUA_OUT_WILL_UNIQUE_PUSH1
Common Preconnect Enabledrua.cprerua.cpreRUA_OUT_WILL_COMMON_PRECONNECT1
Unique Preconnect Enabledrua.uprerua.upreRUA_OUT_WILL_UNIQUE_PRECONNECT1
Common Preload Enabledrua.cprlrua.cprlRUA_OUT_WILL_COMMON_PRELOAD1
Unique Preload Enabledrua.uprlrua.uprlRUA_OUT_WILL_UNIQUE_PRELOAD1
Common Prefetch Enabledrua.cprfrua.cprfRUA_OUT_WILL_COMMON_PREFETCH1
Common Font Preload Enabledrua.cfprlrua.cfprlRUA_OUT_WILL_COMMON_FONT_PRELOAD1
Unique Font Preload Enabledrua.ufprlrua.ufprlRUA_OUT_WILL_UNIQUE_FONT_PRELOAD1
Transaction IDrua.transrua.transRUA_OUT_TRANSACTION_ID1
Found Cookierua.cookrua.cookRUA_OUT_FOUND_COOKIE1
Found IMSrua.imsrua.imsRUA_OUT_FOUND_IMS1
Experiment Bucketrua.texprua.texpRUA_OUT_EXP_BUCKET1

Resource Timing Data

Resource Timing Data is compressed and sent via a single beacon parameter restiming. The compression is described at http://nicj.net/compressing-resourcetiming/.

The full Resource Timing documentation can be found at https://www.w3.org/TR/resource-timing-2/, and browser support can be reviewed at caniuse.com.

All timestamps are in (Unix epoch) unless otherwise specified.

This field is expanded into a separate table in Asgard, which includes the following fields:

Resource Timing DataAsgardDSWB RT_TABLE varExamplesDescription
--paramsuuhttp://www.example.com/The URL of the page that this resource was loaded from
--sessionidsessionIdxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-nnnnnnThe boomerang Session ID (matches session_id above) for this user session
--sessionstartsessionStart1512086400000The start time for the boomerang session (matches session_start above)
--timestamptimestamp1512086400000The server timestamp when this beacon got to our collectors
nameurlurlhttp://www.example.com/api/callThe URL of the resource
initiatorTypeinitiator_typeinitiatorTypeimg image css script link other xmlhttprequestInitiator Type
startTimestart_timestartTime100All these times are milliseconds from the page's navigation start time available in nt_nav_st
redirectStartredirect_startredirectStart100Redirect Start
redirectEndredirect_endredirectEnd100Redirect End
fetchStartfetch_startfetchStart100Fetch Start
domainLookupStartdns_startdnsStart100DNS Start
domainLookupEnddns_enddnsEnd100DNS End
connectStarttcp_connection_starttcpConnectionStart100TCP Start
secureConnectionStartsecure_connection_startsecureConnectionStart100SSL Start
connectEndtcp_connection_endtcpConnectionEnd100TCP End
requestStartrequest_startrequestStart100Request Start
responseStartresponse_first_byteresponseFirstByte100Response Start
responseEndresponse_last_byteresponseLastByte100Response End
workerStartworker_startworkerStart100The time before the browser invokes a registered service worker on the page
encodedBodySizeencoded_sizeencodedSize1000Size of the encoded resource body (i.e., with network compression enabled)
decodedBodySizedecoded_sizedecodedSize1000Size of the resource body after decompressing/removing content encoding
transferSizetransferred_sizetransferredSize1000Bytes transferred over the network including HTTP headers for all same-origin redirects.

If resource is retrieved from cache, this is the size of headers required to validate the cache (eg: If-Modified-Since request)
deferscript_deferscriptDefertrueIndicates if the script was requested with defer=true (only applicable if initatorType is script or link)
asyncscript_asyncscriptAsynctrueIndicates if the script was requested with async=true (only applicable if initatorType is script or link)
rel----prefetch preload prerender stylesheetIdentifies the first interesting rel value on the LINK node (only applicable if initatorType is link)

Resource Timing Summary Data

Resource Timing Summary Data is a summary of the Resource Timing Data by Asset Type.

Asset Types include:

  • total: Total (all resources)
  • page: The page load itself
  • css: CSS files
  • js: JavaScript files
  • img: Images
  • html: HTMLs (IFRAMEs, .htms, plus the page itself)
  • font: Fonts
  • bcn: navigator.sendBeacon()
  • xhr: XMLHttpRequests
  • other: Other

The format is as follows:

restiming.[type] = "[requestCount],[transferSize],[decodedSize],[browserCacheHitRate],[compressionRate]_[byteCompressionRate],[cdnCacheHitRate],[cdnEdgeTime],[originTime]"

For each Asset Type:

  • requestCount: Number of requests for this Asset Type.
  • transferSize: The sum of the size of the fetched resources including the response header fields plus the response payload body (transferSize) for this Asset Type.
  • decodedSize: The sum of the size received from the fetch (HTTP or cache) of the message body, after removing any applied content-codings (decodedBodySize) for this Asset Type.
  • browserCacheHitRate: The ratio (0-10000, where 5000 = 50% and 10000 = 100%) of the number of browser cache hits to browser cache misses for this Asset Type.
  • compressionRate: The ratio (0-10000, where 5000 = 50% and 10000 = 100%) of the number of requests where compression was applied to the total number of requests for this Asset Type.
  • byteCompressionRate: The percent reduction (0-10000, where 5000 = 50% and 10000 = 100%) in total number of bytes as a result of compression for this Asset Type.
  • cdnCacheHitRate: The ratio (0-10000, where 5000 = 50% and 10000 = 100%) of the number of requests that were CDN cache hits (that is the request did not go to the origin) to the total number of requests made to the Akamai network for this Asset Type.
  • cdnEdgeTime: The sum of the times between when the first bytes of the requests are received by the Akamai edge server from the client browser, and just before the first bytes of the responses are written back, for this Asset Type. This does not include the times that may or may not have been spent forwarding the requests to the origin.
  • originTime: The sum of the round-trip times between the Akamai edge server (nearest to the origin), and the origin, for this Asset Type. This includes the time the origin spends handling the requests.
Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
n/arestiming.[type][type][metric]--26,833151,3061949,1153,10000_7269,0,5,1000Summarized Resource Timing data

User Timing Data

User Timing data comes from the Boomerang UserTiming Plugin.

User Timing data is compressed and sent via a single beacon parameter usertiming. The compression is described at http://nicj.net/compressing-usertiming/.

The full User Timing documentation can be found at https://www.w3.org/TR/user-timing/, and browser support can be reviewed at caniuse.com.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
usertimingusertiming----mark1~2s~mark2~5k~mark3~8cCompressed User Timing data

Server Timing Data

Server Timing Data is compressed and sent via a single beacon parameter servertiming. The compression is described at https://github.com/nicjansma/resourcetiming-compression.js#server-timing.

The full Server Timing documentation can be found at https://www.w3.org/TR/server-timing/, and browser support can be reviewed at caniuse.com.

In the DSWB RT table, the column is a JSON array of decompressed ServerTiming headers:

[{
    "name": "<entry name>",
    "duration": <numeric value>,
    "description": "<entry description>"
}, {...}, ...]

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB RT TableExamplesDescription
servertimingservertiming--servertiming1,2:1Compressed Server Timing data

Event Timing Data

Event Timing data comes from the Boomerang EventTiming Plugin.

The full Event Timing documentation can be found at https://github.com/WICG/event-timing/, and browser support can be reviewed at caniuse.com.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
et.eet.e----~(~(c~1~d~'9s~n~'mouseout~p~'0~s~'1ap))Compressed Event Timing data
et.fidet.fid----100First Input Delay (ms)
et.inpet.inp----250Interaction to Next Paint (full page, on Unload beacon)
et.inp.eet.inp.e----body#content input#searchINP target element
et.inp.tet.inp.t----30000INP timestamp for when the interaction occurred
et.inp.incet.inp.incinteractionToNextPaint--150Incremental Interaction to Next Paint (for the Page Load and each SPA Soft nav)
et.inp.inc.eet.inp.inc.e----body#content input#searchIncremental INP target element
et.inp.inc.tet.inp.inc.t----9000Incremental INP timestamp that the interaction occurred

Continuity Metrics

Continuity metrics come from the Boomerang Continuity Plugin.

All of the compressed data formats are described in the Boomerang API documentation.

The following fields live under the params: {} object in S3 unless otherwise noted (e.g. via timers.*).

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
c.bc.b----90Page Busy percentage (Base-10)
c.c.rc.c.rrageClicks--2Rage click count (Base-10)
c.cc.c----4Click count (Base-10)
c.clsc.clscumulativeLayoutShift--0.1Cumulative Layout Shift
c.ec.e----j5twmlbvContinuity Epoch timestamp (when everything started measuring) (Base-36)
c.f.dc.f.d----11474Frame Rate duration (how long it has been measuring) (Base-10)
c.f.lc.f.l----45Number of Long Frames (>= 50ms) (Base-10)
c.f.mc.f.m----5Minimum Frame Rate (Base-10)
c.f.sc.f.s----jhjiee53Frame Rate measurement start time (Base-36)
c.fc.f----11Average Frame Rate over the Frame Rate Duration (Base-10)
c.fidtimers.fidfirstInputDelay--23First Input Delay (Base-10)
c.i.ac.i.a----22Average interaction delay (Base-10)
c.i.dcc.i.dc----2Delayed interaction count (Base-10)
c.i.dtc.i.dt----145Delayed interaction time (Base-10)
c.k.ec.k.e----5Keyboard ESC count (Base-10)
c.kc.k----1Keyboard event count (Base-10)
c.lc.l----214y,xk9,y8pLog (compressed)
c.lbc.lb----j5twmlbvLast Beacon timestamp (Base-36)
c.lt.nc.lt.n----10Number of Long Tasks (Base-10)
c.lt.tttimers.longtaskslongTasksTime--2000Total duration of Long Tasks (Base-10)
--timers.tbttotalBlockingTime--2000Total Blocking Time (TBT): Total duration of Long Tasks minus threshold of 50ms for each Long Task (Base-10)
c.ltc.lt---- ~(~(a~(~(a~1~i~'frame1~t~1))~d~'b7~n~6~s~'5kj)Long Task data (compressed)
c.m.nc.m.n----179Mouse movement pixels (Base-10)
c.m.pc.m.p----8Mouse movement percentage (Base-10)
c.s.dc.s.d----1Distinct scrolls (scrolls that happen 2 seconds after the last) (Base-10)
c.s.pc.s.p----54Scroll percentage (Base-10)
c.s.yc.s.y----10754Scroll y (pixels) (Base-10)
c.sc.s----27Scroll count (Base-10)
c.t.clickc.t.click----0*1t*0101*q*011Click timeline (compressed)
c.t.domlnc.t.domln----1*1k*0,*1n*14wDOM Length timeline (compressed)
c.t.domszc.t.domsz----1*1k*0,*1n*2fmzDOM Size timeline (compressed)
c.t.fpsc.t.fps----03*a*657576576566766507575*8*65Frame Rate timeline (compressed)
c.t.interc.t.inter----0*15*0122*a*01002101100210100013110001000122002Interactions timeline (compressed)
c.t.interdlyc.t.interdly----0*1v*01*q*01Delayed Interactions timeline (compressed)
c.t.keyc.t.key----0*2u*01Keyboard press timeline (compressed)
c.t.longtaskc.t.longtask----0*1i*02*9*02*6*0101*6*01*5*01*m*01LongTask timeline (compressed)
c.t.memc.t.mem----1*1j*0,*1o*14hh4wMemory usage timeline (compressed)
c.t.mousec.t.mouse----0*2l*0.4z.Mouse movements timeline (compressed)
c.t.mousepctc.t.mousepct----2*2m*0008Mouse movement percentage (of full screen) timeline (compressed)
c.t.scrollc.t.scroll----0*15*0.94..lb..hv.*a*0.hh.00.1mb.F0m.2c.00.3Scroll timeline (compressed)
c.t.scrollpctc.t.scrollpct----2*17*000603*9*0003*5*0011*b*0Scroll percentage (of full page) timeline (compressed)
c.t.mutc.t.mut----0*36*01DOM Mutations timeline (compressed)
c.ttfitimers.ttfittfi--6091Time to First Interaction (Base-10)
c.tti.frc.tti.fr----1000Framework Ready (Base-10)
c.tti.hic.tti.hi----2000Hero Images ready (Base-10)
c.tti.mc.tti.m----ltTime to Interactive Method (lt, raf, b)
c.tti.vrtimers.ttvrttvr--3690Visually Ready (Base-10)
c.ttitimers.ttitti--10623Time to Interactive (Base-10)

Visitor Consent

The following parameters are sent only on the first beacon when a visitor opts-in for first time. The
parameters come from the Consent Inlined Plugin.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
cip.incip.in----1Equals 1 and indicates that visitor opted-in.
cip.vcip.in----1Indicates the version of ConsentInlinedPlugin. It's useful to track who is using which version of the plugin because this plugin is not part of Boomerang build.

IFRAME Delay Data

Data from the Boomerang IFrameDelay plugin which delays page load until all <iframe>s have loaded.

All timestamps are in (Unix epoch) unless otherwise specified.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB RT_TABLE varExampleDescription
ifdl.doneifdl.done----1512086400000Timestamp of when all <iframe>s were loaded
ifdl.ctifdl.ct----2Number of <iframes> that loaded
ifdl.rifdl.r----1Number of still running <iframe>s )
ifdl.monifdl.mon----3Number of <iframe>s we were waiting to send a beacon

Third Party Analytics

Data from the Boomerang TPAnalytics plugin.

See Data Collection from Third Party Analytics for more details.

The following fields live under the params: {} object in S3.

Google Analytics

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
tp.ga.clientidtp.ga.clientidparamstpgaclientidtpGaClientIdXXXXXXXXXX.YYYYYYYYYYclientID (unique id per visitor)
tp.ga.utm_sourcetp.ga.utm_sourceparamstpgautmsourcetpGaUtmSourcegoogle newsletter4 billboardCampaign source
tp.ga.utm_mediumtp.ga.utm_mediumparamstpgautmmediumtpGaUtmMediumcpc banner email newsletterCampaign medium
tp.ga.utm_termtp.ga.utm_termparamstpgautmtermtpGaUtmTermterm1Campaign term
tp.ga.utm_contenttp.ga.utm_contentparamstpgautmcontenttpGaUtmContentcontent1Campaign content
tp.ga.utm_campaigntp.ga.utm_campaignparamstpgautmcampaigntpGaUtmCampaigncampaign1Campaign ID

Adobe Analytics

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
tp.aa.aidtp.aa.aidparamstpaaaidtpAaAidAAAAAAAAAAAAAAAA-AAAAAAAAAAAAAAAAAnalytics ID (AID)
tp.aa.midtp.aa.midparamstpaamidtpAaMidMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMarketing ID (MID)
tp.aa.campaigntp.aa.campaignparamstpaacampaigntpAaCampaigncampaignidCampaign ID
tp.aa.purchaseidtp.aa.purchaseid----purchaseidPurchase ID

IBM Digital Analytics

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
tp.ia.coreidtp.ia.coreidparamstpiacoreidtpIaCoreid80031460041999083951624Core ID (unique id per visitor)
tp.ia.mmc_vendortp.ia.mmc_vendorparamstpiammcvendortpIaMmcVendorGoogleCampaign vendor
tp.ia.mmc_categorytp.ia.mmc_categoryparamstpiammccategorytpIaMmcCategoryHome & GardenCampaign category
tp.ia.mmc_placementtp.ia.mmc_placementparamstpiammcplacementtpIaMmcPlacementkeywordsCampaign placement
tp.ia.mmc_itemtp.ia.mmc_itemparamstpiammcitemtpIaMmcItemsprinklerCampaign item
tp.ia.sp_typetp.ia.sp_typeparamstpiasptypetpIaSpTypefallSite promotion type
tp.ia.sp_promotiontp.ia.sp_promotionparamstpiasppromotiontpIaSpPromotionsaleSite promotion
tp.ia.sp_linktp.ia.sp_linkparamstpiasplinktpIaSpLinkfree shipping?cm_mmc=...Site promotion link
tp.ia.re_versiontp.ia.re_versionparamstpiareversiontpIaReVersionpage AReal estate version
tp.ia.re_pageareatp.ia.re_pageareaparamstpiarepageareatpIaRePageArealeft navbarReal estate page area
tp.ia.re_linktp.ia.re_linkparamstpiarelinktpIaReLinkmens shirtsReal estate link

Early Beacon

Data from the Boomerang Early plugin.

The following fields live under the params: {} object in S3.

Query String ParamS3DSWB BEACON_TABLE varAsgardExamplesDescription
earlyearly_beacon--earlybeaconname1True if this data came from an Early Beacon

Soft Navigation Heuristics

Data from the Soft Navigation Heuristics API.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
spa.snh.sspa.snh.s----10000When Soft Navigation Heuristics is active, the latest start time (Unix Epoch)
spa.snh.nspa.snh.n----1When Soft Navigation Heuristics is active, the number of Soft Navs detected for this beacon

Back-Forward Cache

Data from the Boomerang BFCache plugin for Back-Forward Cache Navigations.

The following fields live under the params: {} object in S3.

Query String ParamS3AsgardDSWB BEACON_TABLE varExamplesDescription
bfc.nrrbfc.nrr----NotMainFrame,BackForwardCacheDisabledBFCache "Not Restored Reasons" (list of strings) if BFCache wasn't possible (for regular Back-Forward navigations)