Get the most from your mPulse beacon

Streamline and use the mPulse beacon to maximize real user monitoring.

For example, you can strip query string parameters and IP addresses from raw beacon logs. This helps to preserve the privacy of users whose clients send beacon data. You can track JavaScript errors, collect third-party analytics, and add your own custom parameters to the mPulse beacon as well.

Monitor synthetic and bot beacons

Compare beacons like WebPagetest to confirm your synthetic results and end false positives. Keep an eye on web crawler beacons like Googlebot and others.

mPulse captures as much real visitor data as possible, including synthetic monitoring services. Synthetic monitoring services are not real end users. They do not run the same transactions or access the same page on a scheduled basis. As a result, this could skew both traffic and performance statistics. To help you track synthetic and bot beacons, mPulse matches the user-agent string to detect most of them. If mPulse spots a request from a suspicious source such as Gomez or Facebook, it returns an HTTP 204 No Content response.

How to

  1. In mPulse, click Central.

  2. In the left pane, click Apps, then double-click the app that you want to use for your SPA.

  3. Click Beacons.

  4. To collect synthetic beacon data, select the Include Synthetic Monitoring Beacons checkbox.

  5. To collect bot beacons, select the Include Bot Beacons checkbox.

  6. Click OK to save the configuration.

Next steps

Use the Browser Families filter on the mPulse dashboards to select synthetic and bot beacons.

User agent matches

mPulse matches these user-agent strings so you can monitor synthetic and bot beacons in your mPulse dashboards.

Synthetic user agents

MatchUser agent
alertsiteAlertSite
browsermobBrowserMob
BTTAgentBlue Triangle
catchpointCatchpoint
DejaClickDejaClick
gomezaGomez
ktxnKeynote
pingdom.com_bot_Pingdom
ptstWebPagetest
ptst/WebPagetest
rigorRigor
yottaamonitorYottaa

Bot user agents

MatchUser agent
^curlcURL
^python-urllibPython
{{ m_bot}}Unknown
{{ yeti}}Naver
000000000;Unknown
2gisbotUnknown
adsbot-naverNaver
adidxbotBing Ads
baiduspiderBaidu Spider
bingbotBingbot
bingpreviewBing Preview
bluecoat proxysgBlue Coat ProxySG
capybara-webkitCapybara
CBSbotStatistics Netherlands Bot
contxbotUnknown
cxensebotUnknown
duckduckbotDuckDuckBot
ElectronElectron
exabotExalead
facebookexternalhitFacebook
facebotFacebook
Ghost InspectorGhost Inspector
google sketchupGoogle Sketchup
googlebotGooglebot
ia_archiverAlexa Crawler
indeedbotIndeed Bot
msie 999Unknown
msnbotMSNBot
nhcentralinfratotUnknown
node-xmlhttprequestNodeJS
pagepeekerPagePeeker
pmg web crawler botUnknown
read%20laterRead Later
safeeyesNet Nanny Safe Eyes
seznamSeznam
slurpSlurp
sogouSogou Spider
splashSplash
spoofUnknown
thumbshotsbotThumbShots
twitterbotTwitter
url2pngURL2PNG
webthumbBluga WebThumb
wgetWget
willow internet crawlerWillow Internet Crawler
yandexbotYandex
zmeuZmEu
zooshotZooShot

Integration with Bot Manager

Bot Manager integration improves mPulse bot detection and classification capabilities.

Bots can skew performance data reported within mPulse. The integration with Bot Manager improves bot detection and classification capabilities and allows you to easily compare bot data against real user performance data. You can control whether or not mPulse collects beacons from bots in order to more precisely focus on performance, user engagement, and business metrics from real end users. mPulse uses Botman to determine whether a visitor is a bot or not so you can diagnose performance issues and identify if bots are the root cause.

Select the Include Bot Beacons checkbox in the app configuration UI to enable this feature.

Configure Web App Dialog Beacons page

There are three system dimensions associated with this integration. You can add these dimensions to custom dashboards as filters that segment your RUM data based on visitor type and bot category in order to better understand how bots may be impacting your performance data in aggregate.

  • Bot Manager indicates whether Bot Manager was enabled for the page visit or not

  • Bot Manager Bot Type indicates the bot type as classified by Bot Manager

  • Bot Manager Bot Category indicates the bot category as defined by Bot Manager

📘

Note

If no bot beacons are present in the data, the values of these system dimensions will be null.

Known Limitations

mPulse can only report on bots that execute the mPulse Javascript.

Some visitors may not be identified as bots by Bot Manager until after they've visited multiple pages on a website, so the bot classification information included in beacons from earlier page views may not be accurate.

Edge Injection

In order to capture bot detection data from Bot Manager, you need to set up mPulse edge injection.

To opt out of the Bot Manager mPulse pearl logic, change the PMUSER_MPULSE_BOTMAN setting to false in your property configuration.

PMUSER_MPULSE_BOTMAN=false

📘

Note

Learn more about setting up User-defined variables in the Property Manager documentation.

Bot Manager Standard and Premier

If you have Bot Manager Standard (BMS) or Bot Manager Premier (BMP) in your contract, you will see more detailed values in the Bot Type and Bot Category dimensions.

If you don't have those services, you can still select the Include Bot Beacons checkbox and add bot-related dimensions as filters. However, possible values for the Bot Type dimension will be limited to Bot, Synthetic Monitoring, and (No Value), and Bot Category values will be (No Value).

mPulse Lite

For mPulse Lite users that have BMS or BMP, the bot classification provided by Bot Manager is used to determine whether mPulse drops or collects a beacon. You don't have the option to collect and observe bot activity in mPulse Lite.

Track your third-party analytics

Understand the performance impact of all third parties, then take action to optimize.

Before you begin

Make sure that you're using the following:

  • Boomerang version 1.394 or later

  • ​Akamai​ Data Science Workbench version 91

Collect data from third-party analytics such as Google, Adobe, and IBM. Use the vendor and campaign IDs that mPulse captures for data science applications.

How to

  1. In mPulse, click Central.

  2. In the left pane, click Apps, then double-click the app that you want to use for your SPA.

  3. Click Beacons.

  4. Select the Collect Third-Party Analytics IDs checkbox.

  5. To collect vendor and campaign IDs, select the Collect Client IDs checkbox, then click OK to save the configuration.

Track JavaScript errors

Troubleshooting and fixing performance issues can be quick and easy. Let mPulse help you track your site's JavaScript errors back to the stack trace.

Before you begin

Make sure that you're using Boomerang version 1.376 or later. For information on how to configure prior versions, see the Boomerang configuration options.

How to

  1. In mPulse, click Central.

  2. In the left pane, click Apps, then double-click the app that you want to use.

  3. Click Beacons.

  4. Select the Collect JavaScript Errors checkbox, and specify the maximum number of unique errors to track per page.

  5. Optionally, select the Send Error beacons if JavaScript Errors happen after the Page Load checkbox, and specify the Send Interval.

  6. Optionally, select the Wrap JavaScript time and event handler callbacks to improve error messages on cross-origin scripts checkbox.

  7. Click OK to save the configuration.

Next steps

Use the App Error Summary and App Error List dashboards (see Troubleshoot and fix domain errors) to track your domain's JavaScript errors. Go to the waterfall dashboard (see Fix performance issues) and choose Error Count from the Beacon filter menu, then on the Beacon Details widget, click Errors to see the JavaScript errors.

Suspend beacons for your domain

Stop beacons from returning data to mPulse. For example, you may have a planned outage and want to avoid collecting data during that time.

When beacons are suspended mPulse returns that information to the browser as part of the config.js request as either a 204 or a 200 that tells the browser not to send beacons. If a 204 is returned that means no beacons are sent.

How to

  1. In mPulse, click Central.

  2. In the left pane, click Apps, then double-click the app that you want to stop beacons from returning data to the mPulse collector.

  3. Click Beacons.

  4. Select the Suspend Beacons checkbox, then click OK to save the configuration.

Remove query string parameters from raw beacon logs

This option is generally used to preserve the privacy of users whose clients send beacon data.

Boomerang normally includes the entire request URL and referrer URL in the given beacon. If you do not want private query data in the URL, use this setting to disable beaconing sensitive information.

How to

  1. In mPulse, click Central.

  2. In the left pane, click Apps, then double-click the app that you want to apply this option to.

  3. Click Beacons.

  4. Select the Strip Query String Parameters from Raw Beacon Logs checkbox, then click OK to save the configuration.

Remove IP addresses from raw beacon logs

This option is generally used to preserve the privacy of users whose clients send beacon data.

mPulse gets your end users' IP addresses from the TCP/IP headers between the browser and the CDN, for example, the ​Akamai​ edge server. From this point, mPulse uses the IP address to identify your end user's Internet service provider and to determine their network connection type such as cable or dial-up. Once mPulse has this information, the IP address is written to the raw beacon log in Amazon S3.

How to

  1. In mPulse, click Central.

  2. In the left pane, click Apps, then double-click the app that you want to apply this option to.

  3. Click Beacons.

  4. Select the Strip IP Address From Raw Beacon Logs checkbox, then click OK to save the configuration.

Store a copy of mPulse beacons in S3

Use Amazon's single storage service (S3) to upload and store your mPulse beacons.

Before you begin

Make sure that you have mPulse Administrator privileges and an Amazon S3 account. For more information on Amazon S3, see Get started with Amazon S3 and Amazon S3 FAQs.

mPulse provides beacon data via Amazon S3 logs. The logged data is derived from the raw data HTTP access logs, which is passed through several filters and transformers to arrive at a somewhat processed state that, if configured, is then stored in S3.

📘

Note

The actual JSON-format beacon elements found in a given bucket will vary. The contents of your S3 store depend on the makeup of the domain for a given beacon, the site content, and the browser in use, as well as whether custom timers and custom metrics are configured for your account.

How to

  1. Create an Amazon S3 bucket. For more information, see Working with Amazon S3 Buckets.

  2. In mPulse, click Central.

  3. In the left pane, click Apps, then double-click the app that you want to apply this option to.

  4. Click Beacons.

Beacons page

  1. Select the Upload raw beacons to S3 checkbox.

  2. In the S3 Bucket Name field, enter the name of the S3 bucket that you created.

  3. In the S3 Region menu, select the Amazon server location. This is where you created the S3 bucket name. For example, US Standard.

  4. In the AWS Access Key field, enter your S3 account key.

  5. In the AWS Secret Key field. enter your S3 secret key, then click OK to save the configuration.

Next steps

Give mPulse a few minutes to synchronize your information, then Access your S3 bucket. Download your file and open the raw beacon log in your preferred editor. You can use the JSON Formatter & Validator to understand the beacon structure as shown in this example.

JSON formatter

Add custom parameters to the mPulse beacon

Capture specific data characteristics on the beacon that's sent to mPulse.

Nothing in the original JavaScript snippet has to change. All you need to do is add extra code at end of the snippet (see Set up mPulse at the origin > Add the mPulse snippet to your pages manually).

This example adds UserId, ClientId, GroupId, and UniqueId to the mPulse beacon.

📘

Note

Custom parameter data does not appear in the mPulse dashboards. This data can only be seen in the raw beacon log and your data science application if applicable.

function addVars() {
  BOOMR.addVar({
    "UserId": SOASTA.UserId,
    "ClientId": SOASTA.ClientId,
    "GroupId": SOASTA.GroupId,
    "UniqueId": SOASTA.UniqueId
  });
}

if (document.addEventListener) {
  document.addEventListener("onBoomerangLoaded", addVars);
}
else if (document.attachEvent) {
  document.attachEvent("onpropertychange", function(e) {
    if (!e) e = window.event;
    if (e && e.propertyName === "onBoomerangLoaded") {
      addVars();
    }
  });
}

Delay real-time measurement reporting

For cases when you want to delay the mPulse beacon from firing on the load event.

The following code delays the firing of the mPulse beacon for 2.5 seconds. This delays the real-time measurement reporting by 2.5 seconds. Prepend this code in the original JavaScript code snippet (see Set up mPulse at the origin > Add the mPulse snippet to your pages manually).

📘

Note

This may result in the loss of beacon data for any page requests where the visitor moves away from the page or closes the browser during the delay period. Making the delay as short as possible is the best practice.

<script>
(function(){
  // Ensure we have the BOOMR namespace to work with
  BOOMR = window.BOOMR ||{};
  BOOMR.plugins = BOOMR.plugins ||{};

  // holds the beacon until this is true
  var complete =false;

  // create a custom plugin to hold the beacon until we're ready
  BOOMR.plugins.MyCustomPlugin ={
    is_complete:function(){
      return complete;
    }
  };

  functiondelayBeacon(){
    setTimeout(function(){
      complete =true;

      //trigger the beacon
      if(typeof BOOMR.sendBeacon ==="function"){
        BOOMR.sendBeacon();
      }
    },2500);
  }

  if(window.addEventListener){
    window.addEventListener("load", delayBeacon,false);
  }elseif(window.attachEvent){
    window.attachEvent("onload", delayBeacon);
  }

  //#########################################################
  // standard Boomerang loader script function code goes here
  //#########################################################

})();
</script>