Third-party content analysis

Overview

The JavaScript Agent detects third-party content. AppMon analyzes the page content and checks for scripts and images from different hosts. It detects when these resources are loaded and sends this information to the agent through the monitor signal.

Because pages potentially contain a large number of third-party resources, only third-party resource summary information transfers. Use configuration settings to specify the third-party resource detail. At the lowest detail level, only summary information such as min, max, average, busy times, and count for each host transfer. With detailed capturing enabled, AppMon transfers the slowest resources over a configured threshold with the complete URL to find the slowest third-party resources on a page.

You can capture all images and scripts on a page from your own host if the entire website is hosted on a CDN. AppMon can monitor the performance of CDN hosted resources. See CDN Content Analysis for more information.

Third-party content analysis measures

Measure third-party content count

Use this Measure to measure the number of third-party resources per user action.

Configuration options include:

  • Host: String match that filters specific hosts or content providers, for example a set of several domains.
  • Timing type:
    • Impact: Measured by the JavaScript Agent.
    • W3C Resource Timings: Measured by the browser and provided to the JavaScript Agent through the W3C Resource Timing API.
  • Resource type: To measure only specific resource types, including:
    • All
    • Images
    • Scripts
    • Style sheets (only for W3C Resource Timings)
    • Other resources (only for W3C Resource Timings)
    • Custom resources (resources added by the ADK)
  • Resource state: Includes the following:
    • All
    • Successful
    • Interrupted
    • Failed
    • Cached

Measure third party content load time

Use this Measure to measure content load times.

There are several specific configuration options:

  • Host: Filter specific hosts. This is the same as the Third Party Content Count measure.

  • Duration type: Several different types of load times are available

    • Busy time: Overall Time when at least one resource was loading from a certain domain and/or a certain resource type. In case resources get downloaded in parallel overlapping times are considered and not counted multiple times.
    • Average duration: average duration of all resources.
    • Shortest duration: duration of fastest resource.
    • Longest duration: duration of slowest resource.
  • Resource type:

    • All
    • Images
    • Scripts
    • Stylesheets (only for W3C Resource Timings)
    • Other resources (only for W3C Resource Timings)
    • Custom resources (resources added by the ADK)

BT measure User Actions - third party hot spot

This measure counts the slowest host of a user action over the configured threshold.

Third Party Content dashboard

The Third Party Content dashboard shows information about third-party content and its impact on page load times. Click Start Center > User Experience > Third Party Content Performance to open the dashboard.

Third Party Content dashboard ## Impact vs W3C Resource Timing {#anchor_impact-vs-w3c-resource-timing} The JavaScript Agent collects two different types of third-party content metrics depending on the capabilities of the browser: Impact and W3C Resource Timings.

Impact

Impact is measured by the Third Party module that uses the browser's JavaScript engine capabilities. The Third Party module tracks identifiable resources loaded from domains other than the page's own domain on the load time of the web page, and records their start and stop time. Impact is defined as the time the moment the page is loaded until the specific resource onload event fires. During this time, the browser tracks the following for each resource:

  • Browser Wait time: The time spent in a browser queue waiting for an available network connection.
  • DNS Lookup: Time to resolve any DNS name to an IP address.
  • Connecting: Time required to create a TCP connection.
  • Redirect time: Any time spent due to browser redirects such as 301, or 307.
  • Request time: Time spent on sending the request to the server.
  • Waiting time: Time spent waiting for a response from the server.
  • Response time: Time to read the entire response from either the server or the cache.
  • Execution/Render time: Any time the browser needs to execute or render the resource.

This tracking works with all browser families and versions. However, the Third Party module tracks only a few types of resources, while others are ignored. Accuracy is limited to the accuracy of time stamps in the browser's JavaScript engine.

W3C Resource Timings

The browser measures W3C Resource Timings, so they are more accurate. The measured time is from the moment the resource is queued for downloading in the browser's download queue until the moment the resource download is complete. This is similar to the impact measure, except that it does not include execution/render time.

The browser must support the W3C Resource Timings API to use this metric. See http://caniuse.com for a current list of browsers that support W3C Resource Timings. Almost all resources can be tracked if the browser supports resource timing. Sometimes AppMon can retrieve additional information, such as whether the resource was cached or failing.

The following table compares Impact and W3C resource timings.

Impact W3C Resource Timings
JS Agent Module 3rd Party Module Resource timing module (requires 3rd party module)
Measured by JavaScript Agent Browser
Browser Support All browsers See http://caniuse.com for a current list of supported browsers.
Accuracy & data quality Varying, dependant on browser used. High
Detected Resources
  • Images referenced in <img> and <input type="submit"> tags
  • Scripts referenced in <script> tags
All resources except those referenced in HTML5 audio and video elements1
What is measured? The time the JavaScript agent initializes until the onload event of the resource triggers. The time from when the resource queues in the browser for fetching until resource loading completes.

1) Due to a misinterpretation of the W3C specification, Chrome currently does not include resources fetched from the cache with the Resource Timings.