NAV

What’s in a mPulse Beacon?

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, Snowflake, DSWB and RedShift.

Top Level Fields

Field Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Log Type type beacon batch mPulse log type
Beacon ID id beaconId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Beacon GUID
Batch ID batch xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Batch ID (mobile apps only)
Domain h.d domain domain domain website.com Registered domain or registered dev domain in mPulse of the page sending the beacon
Domain ID domainid appid 123 Registered domain ID
Timestamp timestamp timestamp timestamp timestamp 1512086400000 Server timestamp when beacon arrived (Unix epoch)
Page ID pid page_id pageId abcd1234 Page ID
IP remote_ip remoteip remoteIP remote_ip 1.2.3.4 IP Address of the end user (or the proxy they are connected through)
API Key h.key key key key XXXXX-XXXXX-XXXXX-XXXXX-XXXXX mPulse API Key assigned to this domain
Beacon HTTP Method http_method httpMethod http_method GET POST HTTP Request method used to send the beacon (for internal use only)
Beacon HTTP Version http_version httpVersion http_version HTTP/1.1 HTTP Version used to send the beacon (for internal use only)
Beacon Referrer http_referrer beaconReferrer http_referrer http://referrer.com URL of the page that sent the beacon. This may be blank depending on browser privacy settings.
Beacon IPv6 ipv6 ipv6 ipv6 ipv6 true Set to true if the beacon was sent using IPv6 (for internal use only)
Proxy Address proxy_address proxyAddress proxy_address 1.2.3.4 IP address of the CDN provider that handled the edge connection for this beacon (for internal use only)
Beacon Type http.initiator beacon_type beacontypename beaconType beacon_type page view xhr unload spa spa_hard interaction
client_batch api_custom_metric api_custom_timer api_network_request
Typeof beacon: page view, XHR, SPA hard or soft navigation, etc
Page Group h.pg page_group pagegroupname pageGroup page_group Home Orders PDP (No Page Group) Page Group for the page (Page Groups are defined in the mPulse App Config dialog)
A/B Test name h.ab ab_test abtestname abTestName ab_test A B If the site uses A/B Testing, this variable specifies the test bucket the user was in when they sent the beacon
Site/App Version h.v site_version siteversionname siteVersion site_version 1.0 2.5b For mobile apps, this is the version of the app installed on the user’s device.
For web apps, site owners may use this to specify a release number for their site.
Filtered URL url url url url http://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 warnings warnings warnings warnings ["clock:askew"] Array of warnings added by the collector when parsing this beacon
SPDY nt_spdy spdy spdy spdy spdy true Set to true if the page was served using SPDY
SSL ssl ssl ssl ssl true Set to true if the page was served using SSL
API Status api api true Set to true if this beacon was sent from an API call
Compression Types compression_types gzip Compression types supported by the remote device (mobile apps only via the Content-Encoding header)
Mobile Connection Type mob.ct mobile_connection_type mobileConnectionType Ethernet WiFi 2G 3G 4G LTE Mobile connection type

Session

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

Session Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Session ID rt.si ID sessionid sessionId session_id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-nnnnnn Session 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 Time rt.ss start sessionstart sessionStart session_start 1512086400000 Session 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 Time rt.end latest sessionlatest sessionLatest session_latest 1512086400000 The 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.sl pages sessionpages sessionLength session_pages 10 The 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 pages rt.obo oboPages sessionobopages sessionUncountedPages session_obopages 0 The 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 Time rt.tt totalLoadTime sessiontotalloadtime sessionTotalLoadTime session_totalloadtime 2000 The 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 flag rt.quit isUnload sessionisunload sessionIsUnload session_isunload true or missing This 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 Fields S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Browser Family family useragentname userAgentFamily user_agent_family Chrome Firefox IE Safari Mobile Safari The browser family extracted from the user agent header
Major version major useragentversion userAgentMajor user_agent_major 42 13 11 The browser major version
Minor version minor useragentminor userAgentMinor user_agent_minor 0 5 The browser minor version
OS Name os operatingsystemname userAgentOs user_agent_os Windows Android OS Mac OS X iOS The Operating System name for the user
OS Version osversion operatingsystemversion userAgentOsVersion user_agent_osversion 8.1 The Operating System version for the user
Model model devicename userAgentModel user_agent_model iPhone iPad Device model for mobile devices
Manufacturer manufacturer devicemanufacturername userAgentManufacturer user_agent_manufacturer Apple Samsung LG Device manufacturer for mobile devices
Device Type type devicetypename userAgentDeviceType user_agent_device_type Desktop Mobile Tablet Device type
Mobile ISP isp isp userAgentIsp user_agent_isp AT&T Verizon For mobile apps, this is the mobile service provider if the page was requested over a mobile data connection. In all other cases, this field is empty.
Mobile Flag mobile useragentmobile userAgentMobile user_agent_mobile 1 or 0 For mobile apps, this will be 1. For everything else, this field will be 0.
Synthetic synthetic WebPagetest Detected synthetic user agent name
Bot bot cURL Googlebot Detected bot name
Raw User Agent String raw useragentraw userAgentRaw user_agent_raw Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 The 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 Information S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Country cc countrycode countryCode geo_cc US The user’s country (L1 geo info)
Region/State/Territory rg regioncode regionCode geo_rg DC The user’s region, state, province, or territory (L2 geo info)
City city geocity cityName geo_city Washington The user’s city (L4 geo info)
Postal Code postalcode geopostalcode postalCode geo_postalcode 20009 The user’s postal/zip code
Latitude lat geolat latitude geo_lat 38.89791778 The user’s approximate latitude
Longitude lon geolon longitude geo_lon -77.03636593 The user’s approximate longitude
Organization org geoorg organization geo_org Comcast Cable Verizon Wireless The user’s organization, if connected over a corporate/university network
ISP isp geoisp isp geo_isp Comcast Cable Virgin Media The user’s ISP
Network speed netspeed conntypename networkSpeed geo_netspeed Cellular Ethernet Cable/DSL The advertised network grade of the user’s internet connection
Overwritten Location ovr true false Whether 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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
bw kbps bandwidthkbps kbps bandwidth_kbps 1000 Bandwidth (in kbps) as measured by the bandwidth test
bw_err error_pc bandwidtherrorpc kpbsError bandwidth_error_pc 10 Error in measuring the bandwidth based on standard deviation
block bandwidthblockcode bandwidthBlock bandwidth_block 1 5 Bandwidth block (calculated by the server)
bw_debug bw_debug 5_20 Bandwidth 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

Timers Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Base Timers The following fields are sent on the beacon as-is
Back-End Time t_resp t_resp firstbytetimer timersResponse timers_t_resp 100 Time from navigation start to first byte
Front-End Time t_page t_page firstlastbytetimer timersPage timers_t_page 100 Time from first byte to onload (or whenever the page is considered ready)
Page Load time t_done t_done pageloadtime timersDone timers_t_done 100 Time from navigation start to onload (or whenever the page is considered ready)
DOM Loaded t_domloaded t_domloaded timerstdomloaded timersDomLoaded timers_t_domloaded 100 Time from navigation start to when the DOMContentLoaded event fired
config.js first byte t_configfb t_configfb timerstconfigfb timersConfigFirstByte timers_t_configfb 100 Time from config.js request to config.js first byte
config.js load time t_configjs t_configjs timerstconfigjs timersConfigJs timers_t_configjs 100 Time from config.js request to config.js load complete
Other Timers The following are sent on the beacon as part of t_other
Boomerang loader boomr_ld boomr_ld timersboomrld timersBoomerangLoader timers_boomr_ld 100 Time from navigation start to when the Boomerang loader initiates Boomerang download
Boomerang first byte boomr_fb boomr_fb timersboomrfb timersBoomerangFirstByte timers_boomr_fb 100 Time from navigation start to first byte of Boomerang
Boomerang latency boomr_lat boomr_lat timersboomrlat timersBoomerangLatency timers_boomr_lat 100 Time from Boomerang request to Boomerang first byte
Boomerang download time boomerang boomerang timersboomerang timersBoomerang timers_boomerang 100 Time from first byte of Boomerang until Boomerang completes initialization
Detailed Boomerang Times The following are sent on the beacon compressed using Resource Timing compression
Detailed Boomerang times rt.bmr params["rt.bmr"] paramsRtBmr* params_rt_bmr 145,124,2 Resource Timing values for Boomerang, compressed using the Resource Timing compression algorithm
Detailed config.js times rt.cnf params["rt.cnf"] paramsRtCnf* params_rt_cnf 301,100,3 Resource Timing values for config.js, 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 states Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Prerender complete t_load t_load timerstload timersLoad timers_t_load 100 Time from navigation start to onload, if the page was in a pre-rendered state when onload fired
Total prerender t_prerender t_prerender timerstprerender timersPreRender timers_t_prerender 100 Time from navigation start to page becoming visible, if it went through a pre-rendered state first
Post render t_postrender t_postrender timerstpostrender timersPostRender timers_t_postrender 100 Time 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.

S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
navSt_to_boomr timersnavsttoboomr timersNavigationStartToBoomerang timers_navSt_to_boomr 100 Time from navigation start to when the Boomerang loader initiates Boomerang download
fb_to_boomr timersfbtoboomr timersFirstByteToBoomerang timers_fb_to_boomr 100 Time 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_end timersboomrtoend timersBoomerangToEnd timers_boomr_to_end 100 Time from Boomerang’s request initiation to page load.
This is used by FirstByteEstimator for beacons without a valid load time.
before_dns timersbeforedns timersBeforeDns timers_before_dns 100 domainLookupStart - navigationStart from NavigationTiming
dns dnstimer timersDns timers_dns 100 domainLookupEnd - domainLookupStart from NavigationTiming
tcp tcptimer timersTcp timers_tcp 100 connectEnd - connectStart from NavigationTiming
ssl ssltimer timersSsl timers_ssl 100 connectEnd - secureConnectionStart from NavigationTiming
domLoad domloadtimer timersDomLoad timers_domLoad 100 domLoading - navigationStart from NavigationTiming
domReady domreadytimer timersDomReady timers_domReady 100 domComplete - navigationStart from NavigationTiming
renderStart timersrenderstart timersRenderStart timers_renderStart 100 firstPaint - navigationStart from NavigationTiming
loaded timersloaded timersLoaded timers_loaded 100 loadEventEnd - navigationStart from NavigationTiming

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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
custom[0-9] custom[0-9] customtimer[0-9] timersCustom[0-9] timers_custom[0-9] 100 Custom 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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
cmet.[Metric0-9_Name] 0 custommetric[0-9] customMetric[0-9] custom_metrics_[0-9] 1 Custom 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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
cdim.[Dimension0-9_Name] (index 0) customdimension[0-9]value json_extract_array_element_text(cdim, [0-9]) { "Region": "us", "alias": "United States" } Custom Dimension #[n]

Third Party Analytics

See Data Collection from Third Party Analytics for more details.

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

Google Analytics

Query String Param S3 Snowflake DSWB BEACON_TABLE var Redshift Examples Description
tp.ga.clientid tp.ga.clientid paramstpgaclientid tpGaClientId ga_clientid (v91), tp_ga_clientid (v92 and above) XXXXXXXXXX.YYYYYYYYYY clientID (unique id per visitor)
tp.ga.utm_source tp.ga.utm_source paramstpgautmsource tpGaUtmSource ga_utm_source (v91), tp_ga_utm_source (v92 and above) google newsletter4 billboard Campaign source
tp.ga.utm_medium tp.ga.utm_medium paramstpgautmmedium tpGaUtmMedium ga_utm_medium (v91), tp_ga_utm_medium (v92 and above) cpc banner email newsletter Campaign medium
tp.ga.utm_term tp.ga.utm_term paramstpgautmterm tpGaUtmTerm ga_utm_term (v91), tp_ga_utm_term (v92 and above) term1 Campaign term
tp.ga.utm_content tp.ga.utm_content paramstpgautmcontent tpGaUtmContent ga_utm_content (v91), tp_ga_utm_content (v92 and above) content1 Campaign content
tp.ga.utm_campaign tp.ga.utm_campaign paramstpgautmcampaign tpGaUtmCampaign ga_utm_campaign (v91), tp_ga_utm_campaign (v92 and above) campaign1 Campaign ID

Adobe Analytics

Query String Param S3 Snowflake DSWB BEACON_TABLE var Redshift Examples Description
tp.aa.aid tp.aa.aid paramstpaaaid tpAaAid aa_aid (v91), tp_aa_aid (v92 and above) AAAAAAAAAAAAAAAA-AAAAAAAAAAAAAAAA Analytics ID (AID)
tp.aa.mid tp.aa.mid paramstpaamid tpAaMid aa_mid (v91), tp_aa_mid (v92 and above) MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM Marketing ID (MID)
tp.aa.campaign tp.aa.campaign paramstpaacampaign tpAaCampaign aa_campaign (v91), tp_aa_campaign (v92 and above) campaignid Campaign ID
tp.aa.purchaseid tp.aa.purchaseid purchaseid Purchase ID

IBM Digital Analytics

Query String Param S3 Snowflake DSWB BEACON_TABLE var Redshift Examples Description
tp.ia.coreid tp.ia.coreid paramstpiacoreid tpIaCoreid ia_coreid (v91), tp_ia_coreid (v92 and above) 80031460041999083951624 Core ID (unique id per visitor)
tp.ia.mmc_vendor tp.ia.mmc_vendor paramstpiammcvendor tpIaMmcVendor ia_mmc_vendor (v91), tp_ia_mmc_vendor (v92 and above) Google Campaign vendor
tp.ia.mmc_category tp.ia.mmc_category paramstpiammccategory tpIaMmcCategory ia_mmc_category (v91), tp_ia_mmc_category (v92 and above) Home & Garden Campaign category
tp.ia.mmc_placement tp.ia.mmc_placement paramstpiammcplacement tpIaMmcPlacement ia_mmc_placement (v91), tp_ia_mmc_placement (v92 and above) keywords Campaign placement
tp.ia.mmc_item tp.ia.mmc_item paramstpiammcitem tpIaMmcItem ia_mmc_item (v91), tp_ia_mmc_item (v92 and above) sprinkler Campaign item
tp.ia.sp_type tp.ia.sp_type paramstpiasptype tpIaSpType tp_ia_sp_type (v92 and above) fall Site promotion type
tp.ia.sp_promotion tp.ia.sp_promotion paramstpiasppromotion tpIaSpPromotion tp_ia_sp_promotion (v92 and above) sale Site promotion
tp.ia.sp_link tp.ia.sp_link paramstpiasplink tpIaSpLink tp_ia_sp_link (v92 and above) free shipping?cm_mmc=... Site promotion link
tp.ia.re_version tp.ia.re_version paramstpiareversion tpIaReVersion tp_ia_re_version (v92 and above) page A Real estate version
tp.ia.re_pagearea tp.ia.re_pagearea paramstpiarepagearea tpIaRePageArea tp_ia_re_pagearea (v92 and above) left navbar Real estate page area
tp.ia.re_link tp.ia.re_link paramstpiarelink tpIaReLink tp_ia_re_link (v92 and above) mens shirts Real estate link

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.

Source S3 Snowflake DSWB BEACON_TABLE var Redshift (not included by default) Examples Description
CDNs x-forwarded-for headers_x_forwarded_for 1.2.3.4 1.2.3.4,2.2.2.2 List of IP addresses specifying user and all proxies between CDN and the user
CDNs x-forwarded-proto headers_x_forwarded_proto https http spdy Protocol used by end user’s browser to connect to CDN endpoint
Akamai aka-true-ip 1.2.3.4 Client IP
Browser connection headers_connection close keep-alive The HTTP Connection header specifies if the browser is willing to handle persistent TCP conections or not
Browser host headershost headersHost headers_host abc123.akstat.io The beacon server where the beacon was sent. This is required by the HTTP specification.
Browser accept-encoding headersacceptencoding headersAcceptEncoding headers_accept_encoding gzip deflate sdch br List of encoding (compression) types supported by the user’s browser
Browser accept-language headers_accept_language en_US fr_CH Language encodings supported by the user’s browser. This could suggest the user’s locale.
Browser accept headersaccept headersAccept headers_accept Content types supported by the browser, along with their priorities
Browser content-length headerscontentlength headersContentLength headers_content_length This is only used for POST beacons and is the number of bytes in the POSTed beacon

Other Parameters

See the NavigationTiming spec for more details.

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

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
nt_nav_type nt_nav_type paramsntnavtype ntNavigationType params_nt_nav_type 0 1 2 Navigation Type: performance.navigation.type
nt_nav_st nt_nav_st paramsntnavst ntNavigationStart params_nt_nav_st 1512086400000 Navigation Start: performance.timing.navigationStart
nt_red_st nt_red_st paramsntredst ntRedirectionStart params_nt_red_st 1512086400000 Redirect Start: performance.timing.redirectStart
nt_red_end nt_red_end paramsntredend ntRedirectionEnd params_nt_red_end 1512086400000 Redirect End: performance.timing.redirectEnd
nt_red_cnt nt_red_cnt paramsntredcnt ntRedirectionCnt params_nt_red_cnt 1512086400000 Redirect Count: performance.navigation.redirectCount
nt_fet_st nt_fet_st paramsntfetst ntFetchStart params_nt_fet_st 1512086400000 Fetch Start: performance.timing.fetchStart
nt_dns_st nt_dns_st paramsntdnsst ntDnsStart params_nt_dns_st 1512086400000 DNS Start: performance.timing.domainLookupStart
nt_dns_end nt_dns_end paramsntdnsend ntDnsEnd params_nt_dns_end 1512086400000 DNS End: performance.timing.domainLookupEnd
nt_con_st nt_con_st paramsntconst ntTcpStart params_nt_con_st 1512086400000 TCP Start: performance.timing.connectStart
nt_ssl_st nt_ssl_st paramsntsslst ntSslStart params_nt_ssl_st 1512086400000 SSL Start: performance.timing.secureConnectionStart
nt_con_end nt_con_end paramsntconend ntTcpEnd params_nt_con_end 1512086400000 TCP End: performance.timing.connectEnd
nt_req_st nt_req_st paramsntreqst ntRequestStart params_nt_req_st 1512086400000 Request Start: performance.timing.requestStart
nt_res_st nt_res_st paramsntresend ntResponseEnd params_nt_res_st 1512086400000 Response Start: performance.timing.responseStart
nt_unload_st nt_unload_st paramsntunloadst ntUnloadStart params_nt_unload_st 1512086400000 Unload Event Start: performance.timing.unloadEventStart
nt_unload_end nt_unload_end paramsntunloadend ntUnloadEnd params_nt_unload_end 1512086400000 Unload Event End: performance.timing.unloadEventEnd
nt_domloading nt_domloading paramsntdomloading ntDomLoading params_nt_domloading 1512086400000 DOM Loading: performance.timing.domLoading
nt_res_end nt_res_end paramsntresend ntResponseEnd params_nt_res_end 1512086400000 Response End: performance.timing.responseEnd
nt_domint nt_domint paramsntdomint ntDomInt params_nt_domint 1512086400000 DOM Interactive: performance.timing.domInteractive
nt_domcontloaded_st nt_domcontloaded_st paramsntdomcontloadedst ntDomContLoadedStart params_nt_domcontloaded_st 1512086400000 DOMContentLoaded Start: performance.timing.domContentLoadedEventStart
nt_domcontloaded_end nt_domcontloaded_end paramsntdomcontloadede ntDomContLoadedEnd params_nt_domcontloaded_en 1512086400000 DOMContentLoaded End: performance.timing.domContentLoadedEventEnd
nt_domcomp nt_domcomp paramsntdomcomp ntDomComp params_nt_domcomp 1512086400000 DOM Complete: performance.timing.domComplete
nt_load_st nt_load_st paramsntloadst ntLoadStart params_nt_load_st 1512086400000 Load Event Start: performance.timing.loadEventStart
nt_load_end nt_load_end paramsntloadend ntLoadEnd params_nt_load_end 1512086400000 Load Event End: performance.timing.loadEventEnd
nt_worker_start nt_worker_start 1512086400000 Worker Start: performance.timing.workerStart
nt_firstpaint nt_firstpaint paramsntfirstpaint ntFirstPaing params_nt_first_paint 1512086400000 note that this is milliseconds on IE, but seconds.microseconds on Chrome. Not supported on other browsers.
nt_spdy nt_spdy paramsntspdy ntSpdy params_nt_spdy 1 or 0 Whether the page was served using SPDY
nt_cinf nt_cinf paramsntcinf connectionInfo params_nt_cinf http/1.1 http/2+quic/37 Connection info
nt_protocol nt_protocol nextHopProtocol params_nt_protocol http/1.1 http/2+quic/37 Next Hop Protocol information (NavigationTiming2)
nt_enc_size nt_enc_size 100000 Compressed size in bytes of the page (NavigationTiming2)
nt_dec_size nt_dec_size 100000 Uncompressed size in bytes of the page (NavigationTiming2)
nt_trn_size nt_trn_size 100000 Transfer size in bytes of the page (NavigationTiming2)
nt_bad nt_bad 1 If set, then the NavigationTiming data cannot be trusted due to a browser bug

Single Page App

Information about Single Page App navigations.

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
spa.missed spa.missed 1 or missing The SPA hard navigation missed the SPA’s route change event
spa.forced spa.forced 1 or missing The SPA hard navigation was forced to completion by BOOMR.plugins.spa.markNavigationComplete()
spa.waiting spa.waiting 10 The number of resources that were outstanding when the SPA hard navigation was forced

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 Timestamps Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Boomerang Version v v boomerangversionname boomerangVersion params_v 1.500.0 mPulse boomerang.js version
Navigation Start Method rt.start rt.start paramsrtstart rtStart params_rt_start none navigation cookie manual csi Specifies the method used to determine the start time
Navigation Start Time rt.tstart rt.tstart paramsrttstart rtNavigationStart params_rt_tstart 1512086400000 Timestamp of navigation start using the method specified in rt.start
Cookie Navigation Start rt.cstart rt.cstart paramsrtcstart rtCookieStart params_rt_cstart 1512086400000 The value of t_start from the cookie, if different from rt.tstart
Boomerang Start rt.bstart rt.bstart paramsrtbstart rtBoomerangStart params_rt_bstart 1512086400000 The timestamp when Boomerang started
Boomerang Loader Start rt.blstart rt.blstart paramsrtblstart rtBoomerangLoadStart params_rt_blstart 1512086400000 The timestamp when Boomerang was added to the host page
Page Start rt.nstart rt.nstart 1512086400000 Page Start time, if different than rt.tstart (used for XHR and SPA Soft navigations)
End Time rt.end rt.end paramsrtend rtEnd params_rt_end 1512086400000 The timestamp when the t_done timer ended
Session History rt.sh rt.sh paramsrtsh rtSessionHistory params_rt_sh 1486605029950=2:0:5356,1486604946946=1:0:2187 Session History is used for debugging
Session Reset rt.srst rt.srst paramsrtsrst rtSessionRest params_rt_srst 1512086400000 Past details of session when it gets reset
Token Timestamp h.t h.t paramsht tokenTimestamp params_h_t 1512086400000 Server timestamp when the Anti-CSRF token was generated (note the token is removed from the beacon)
Anti-CSRF Token h.cr params_h_cr f3bfc31c3432d23e1d9972dd72eaf45e45b058c4 The Anti-CSRF token added to the beacon
Unload flag rt.quit rt.quit paramsrtquit rtUnloadFlag params_rt_quit (existence implies true) If this parameter exists, then this was an unload beacon
Abort flag rt.abld rt.abld paramsrtabld rtAbortFlag params_rt_abld (existence implies true) If this parameter exists, then the user left the page before it finished loading
Invisible flag rt.ntvu rt.ntvu paramsrtntvu rtInvisibleFlag params_rt_ntvu (existence implies true) If this parameter exists, then the user left the page without looking at it
IFRAME flag if if paramsif iframeFlag params_if (existence implies true) If this parameter exists, then Boomerang was loaded via the IFRAME loader technique
Errors errors errors params_errors There was an error JavaScript errors found in Boomerang
Config Override Enabled c.o c.o 1 Whether or not there was a BOOMR_config variable on the page
sendBeacon() Enabled sb sb 1 Whether or not the sendBeacon() API was used to send the beacon
Page Load Time Inversion t_page.inv t_page.inv 1 If 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 Cookie nocookie nocookie 1 or missing If set, a cookie (like RT session cookie) could not be set
page_ready() was called pr pr 1 or missing If set, a BOOMR.page_ready() was used to mark Page Load time

URLs

URLs related to the beacon.

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

URLs Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Page/SPA URL u u paramsu u params_u http://website.com/api/foo/bar URL of Page, XHR or SPA route that caused the beacon
Page URL pgu pgu paramspgu pageUrl params_pgu http://website.com/ Page URL if different from u
Cookie Referrer r r paramsr cookieReferrer params_r https://referrer.com/ URL of previous page that Boomerang wrote into a cookie
Referrer r2 r2 paramsr2 referrer params_r2 https://referrer.com/search/ Referrer of current page if different from r
Next URL nu nu paramsnu nextUrl params_nu https://website.com/nextpage/ URL clicked, if this beacon was a result of a click

Page Structure

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

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
dom.res dom.res paramsdomres domResources params_dom_res 100 Number of resources in Resource Timing
dom.doms dom.doms paramsdomdoms domDomains params_dom_doms 10 Number of domains referenced from page
dom.ln dom.ln paramsdomln domLength params_dom_ln 1000 Number of DOM nodes on the page
dom.sz dom.sz paramsdomsz domSize params_dom_sz 100000 Rendered bytes of base page. This may not be what was sent on the network.
dom.img dom.img paramsdomimg domImages params_dom_img 100 Number of image nodes on the page
dom.img.ext dom.img.ext paramsdomimgext domImageExt params_dom_img_ext 100 Number of image nodes on the page that referenced external URLs
dom.img.uniq dom.img.uniq 100 Number of unique image src nodes on the page that referenced external URLs
dom.script dom.script paramsdomscript domScripts params_dom_script 10 Number of script nodes on the page
dom.script.ext dom.script.ext paramsdomscriptext domScriptExt params_dom_script_ext 10 Number of script nodes on the page that referenced external URLs
dom.script.uniq dom.script.uniq 10 Number of unique script src nodes
dom.iframe dom.iframe 10 Number of iframe nodes on the page
dom.iframe.ext dom.iframe.ext 10 Number of iframe nodes on the page that referenced external URLs
dom.iframe.uniq dom.iframe.uniq 10 Number of unique iframe src nodes
dom.link dom.link 10 Number of link nodes on the page
dom.link.css dom.link.css 10 Number of link rel="stylesheet" nodes on the page
dom.link.css.uniq dom.link.css.uniq 10 Number of unique link rel="stylesheet" nodes on the page
dom.res.slowest dom.res.slowest paramsdomresslowest domSlowestResource params_dom_res_slowest http://slowest.com/api/ Slowest resource on page (if configured)

Screen and Device Details

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

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
scr.xy scr.xy paramsscrxy screenDimensions params_scr_xy 1440x900 Screen width and height separated with x
scr.sxy scr.sxy paramsscrsxy 0x467 X & Y positions of the scroll bar separated with x
scr.bpp scr.bpp paramsscrbpp screenBitsPerPixel params_scr_bpp 24/24 Screen color depth and pixel depth separated by /
scr.orn scr.orn paramsscrorn screenOrientation params_scr_orn 0/landscape-primary Screen orientation angle and type separated by /
scr.dpx scr.dpx paramsscrdpx screenDensityPixel params_scr_dpx 2 Screen device pixel ratio (informs you of details like Retina)
scr.mtp scr.mtp paramsscrmtp screenMaximumTouchPoints params_scr_mtp 1 Maximum touch points for touchscreens
mem.total mem.total paramsmemtotal availableMemory params_mem_total 72200000 Total Memory available to the browser
mem.limit mem.limit paramsmemlimit 2190000000 Limit of the JS Heap size in the browser
mem.used mem.used paramsmemused usedMemory params_mem_used 64000000 Total Memory used by the browser
cpu.cnc cpu.cnc paramscpucnc cpuCores params_cpu_cnc 4 Hardware concurrency (number of CPU cores) available to the browser
bat.lvl bat.lvl paramsbatlvl batteryLevel params_bat_lvl 1 Battery charge level (between 0 & 1)

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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
vis.st vis.st paramsvisst visibilityState params_vis_st visible hidden Document’s visibility state when beacon was sent
vis.lv vis.lv paramsvislv visibilityLastVisible params_vis_lv 1512086400000 Timestamp when page was last visible
vis.lh vis.lh paramsvislh visibilityLastHidden params_vis_lh 1512086400000 Timestamp when page was last hidden
vis.pre vis.pre 1 if the page transitioned from prerender to visible

User Agent Details

User Agent details.

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
ua.plt ua.plt paramsuaplt userAgentPlatform params_ua_plt MacIntel User Agent Platform
ua.vnd ua.vnd paramsuavnd userAgentVendor params_ua_vnd Google 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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
http.errno http.errno networkerrorcode httpErrorNumber http_errno -999 Status 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.method http.method paramshttpmethod paramsHttpMethod params_http_method POST HTTP method used for XHR request (if not set, GET)
http.hdr http.hdr httpHeaders params_http_hdr Content-Size: 100 HTTP response headers for XHR request (optional)
http.initiator http.initiator paramshttpinitiator httpInitiator params_http_initiator xhr spa spa_hard Typeof beacon: XHR, SPA hard or soft navigation, etc
xhr.sync xhr.sync paramsxhrsync xyrSync params_xhr_sync 1 Set to 1 if the XHR call was synchronous
rt.subres rt.subres paramsrtsubres xhrIsSubresource params_rt_subres 1 Set to 1 if this XHR call is a subresource of the parent page and should not be counted towards Session Length

Bandwidth and Latency Details

More details from the bandwidth test.

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
bw_time bw_time paramsbwtime bandwidthTimestamp params_bw_time 1512086400000 Timestamp (Unix epoch) on the user’s browser when the bandwidth and latency was measured
lat lat paramslat httpLatency params_lat 100 User’s measured HTTP latency (in milliseconds)
lat_err lat_err paramslaterr httpLatencyError params_lat_err 5 Error 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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
mob.ct mob.ct paramsmobct paramsMobileConnectionType params_mob_ct Ethernet WiFi 2G 3G 4G LTE Mobile connection type
mob.bw mob.bw paramsmobbw mobileBandwidth params_mob_bw 10 Advertised bandwidth of mobile connection (MB/s)
mob.mt mob.mt paramsmobmt mobileMetered params_mob_mt true Whether this mobile connection metered or not
mob.lm mob.lm 10 Downlink max (MB/s)
mob.etype mob.etype slow-2g 2g 3g or 4g Effective type of the connection
mob.dl mob.dl 100 Effective bandwidth estimate in megabits per second, rounded to the nearest multiple of 25 kilobits per seconds
mob.rtt mob.rtt 100 Estimated 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 Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
rt.sstr_dur rt.sstr_dur 100 Session transfer duration (milliseconds)
rt.sstr_to rt.sstr_to 1 If set, the session transfer timed out

Errors

Application (JavaScript and network) errors.

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

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
err errors (see above) Errors

IFRAME Delay Data

Data from the iframe-delay.js 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 Param S3 Snowflake DSWB RT_TABLE var RedShift Example Description
ifdl.done ifdl.done 1512086400000 Timestamp of when all <iframe>s were loaded
ifdl.ct ifdl.ct 2 Number of <iframes> that loaded
ifdl.r ifdl.r 1 Number of still running <iframe>s )
ifdl.mon ifdl.mon 3 Number of <iframe>s we were waiting to send a beacon

Akamai

These metrics are only available if Akamai Edge-Injected mPulse is enabled.

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

Field Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
Akamai Adaptive Acceleration ak.a2 akamai_aa 0 1 Whether or not Adaptive Acceleration is enabled
Akamai Front End Optimization ak.feo akamai_feo 0 1 Whether or not Front End Optimization is enabled
HTTP Protocol ak.proto http_protocol http/1.1 http/2 HTTP Protocol the browser is using to connect to the website
IP Version ak.ipv ip_version 4 6 IP Version the browser is using to connect to the website

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/

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

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

Resource Timing Data Snowflake DSWB RT_TABLE var RedShift Examples Description
paramsu u params_u http://www.example.com/ The URL of the page that this resource was loaded from
sessionid sessionId session_id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-nnnnnn The boomerang Session ID (matches session_id above) for this user session
sessionstart sessionStart session_start 1512086400000 The start time for the boomerang session (matches session_start above)
timestamp timestamp timestamp 1512086400000 The server timestamp when this beacon got to our collectors
name url url url http://www.example.com/api/call The URL of the resource
initiatorType initiator_type initiatorType initiator_type img image css script link other xmlhttprequest Initiator Type
startTime start_time startTime start_time 100 All these times are milliseconds from the page’s navigation start time available in nt_nav_st
redirectStart redirect_start redirectStart redirect_start 100 Redirect Start
redirectEnd redirect_end redirectEnd redirect_end 100 Redirect End
fetchStart fetch_start fetchStart fetch_start 100 Fetch Start
domainLookupStart dns_start dnsStart dns_start 100 DNS Start
domainLookupEnd dns_end dnsEnd dns_end 100 DNS End
connectStart tcp_connection_start tcpConnectionStart tcp_connection_start 100 TCP Start
secureConnectionStart secure_connection_start secureConnectionStart secure_connection_start 100 SSL Start
connectEnd tcp_connection_end tcpConnectionEnd tcp_connection_end 100 TCP End
requestStart request_start requestStart request_start 100 Request Start
responseStart response_first_byte responseFirstByte response_first_byte 100 Response Start
responseEnd response_last_byte responseLastByte response_last_byte 100 Response End
workerStart worker_start workerStart worker_start 100 The time before the browser invokes a registered service worker on the page
encodedBodySize encoded_size encodedSize encoded_size 1000 Size of the encoded resource body (i.e., with network compression enabled)
decodedBodySize decoded_size decodedSize decoded_size 1000 Size of the resource body after decompressing/removing content encoding
transferSize transferred_size transferredSize transferred_size 1000 Bytes 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)
defer script_defer scriptDefer script_defer true Indicates if the script was requested with defer=true (only applicable if initatorType is script or link)
async script_async scriptAsync script_async true Indicates if the script was requested with async=true (only applicable if initatorType is script or link)
rel prefetch preload prerender stylesheet Identifies the first interesting rel value on the LINK node (only applicable if initatorType is link)

User Timing Data

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/

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
usertiming usertiming mark1~2s~mark2~5k~mark3~8c Compressed 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/

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

Query String Param S3 Snowflake DSWB BEACON_TABLE var RedShift Examples Description
servertiming servertiming 1,2:1 Compressed Server Timing data