Integration Docs
Tracking

Tracking

#How do I know if I've installed the tag correctly?

You can validate the presence of the tracking code and that the metadata is correctly specified by:

#Will this tag break or slow down my site?

No! Here are some principles behind Parse.ly's JavaScript serving infrastructure, and the code itself.

  • Parse.ly JavaScript code is custom-compiled, compressed, and minified. The low kilobyte footprint is due to the economy of the code itself, as well as a high JavaScript minification level, and gzip over-the-wire compression (by the origin servers).
  • Parse.ly serves its code from global CDN and DNS servers. As detailed in our Servers and Infrastructure page, Parse.ly JavaScript is served using a global DNS provider and a global CDN provider with edge locations scattered all over the United States and even across Europe, Asia, and South America.
  • Parse.ly code supports an async-loading approach. Parse.ly's code is specifically designed to async-load after a page has already downloaded, parsed, and executed other assets. This is described in the Tracker technical document.

There are also a few more technical notes that might be relevant to web developers, and go more into the technical weeds:

  • Parse.ly JavaScript code introduces only a single on-page variable, window.PARSELY. The code is properly encapsulated so as not to conflict with any on-page libraries or the analytics SDKs of other vendors.
  • Parse.ly's page heartbeating approach uses modern browser/device APIs to reduce number of requests per sessions. Most attempts at quantifying active time on page (aka engaged time) require frequent requests to a data collection server. But the tracking SDKs lerverage modern browser/device APIs to ensure that a minimum number of requests per session are sent. This performance optimization was rolled out in 2019-2020.
  • Parse.ly does not use third-party cookies. As of 2020, Parse.ly does not set any third-party cookies, as described in this blog post. This optimizes the HTTP request sizes sent to Parse.ly's data collection endpoints.

Regarding web performance budgets, and especially as relates to "time to first contentful paint", Parse.ly JavaScript code is written so that it can be the very last asset that loads on your page. Combined with modern browser abilities to load scripts asynchronously, this means that Parse.ly will have close to no impact on your page performance.

Parse.ly's DNS servers, such as static.parsely.com and cdn.parsely.com, are backed by a global, distributed DNS system, which has no downtime and extremely fast resolution times across the globe. The JavaScript code itself is hosted in a global content delivery network (CDN) with edge locations in every global region.

The code itself is optimized to not impact user experience in any unintended way. It also automatically leverages asynchronous JavaScript loading technologies in newer browsers. For older browsers, it uses a sophisticated performance-preserving async loading process.

Once tracking code is loaded, it installs a small first-party cookie (just a user ID) and asynchronously beacons back information to analytics edge servers, aka pixel servers, typically named pixel.parsely.com. If this edge server is down, all that happens is that the actions are sent, but not received (aka "fire-and-forget") -- even then, there is no impact on user experience.

The Parse.ly team is staffed by JavaScript experts who know the pain and frustration with crappy third-party JavaScript integrations. This team has taken pride and craft to heart in making the company's analytics tracking SDKs world-class, and with the lowest possible impact on end users. This makes code integration a no-brainer -- it's a safe decision.

If you don't trust our statements about response times and uptime, you can check out this public Pingdom report showing Parse.ly's uptime and global response times. From there, you can navigate to entire months of pings where you'll see the service's speedy response times and high uptime.

#How is HTTPS supported?

Parse.ly's tracker fully supports tracking on HTTPS pages. When tracking under HTTPS, Parse.ly's tracking tag automatically adapts the set of hosts used to ones with valid HTTPS certificates.

#How does tracking work?

Upon a visit to a Parse.ly-tagged page, a code bundle is downloaded from Parse.ly's global content delivery network. This code bundle retrieves information about the visit to that page, such as pageview and time spent. When combined with metadata, information about your site streams into the dashboard and APIs.

#What data is sent by default?

Several pixel fields are critical for Parse.ly to function at a basic level:

  • url: current URL
  • urlref: HTTP referrer (traffic source); can be blank
  • action: action name (defaults to pageview)
  • data: contains information on the UUID from cookie state
  • idsite: the "site identifier", aka Site ID, for the website

Other fields are also helpful, such as:

  • title: page title
  • screen: screen resolution information
  • date: client-side datetime in the browser

These are sent in a standard HTTP request, which also includes client information such as the browser User-Agent, client IP address, and third-party (parsely.com) cookie settings.

#What version of the Parse.ly tracker is currently on my site?

When troubleshooting, it can be useful to discover the version number of the currently integrated tracker code.

Open the Chrome DevTools Console (or a similar tool) on your Parse.ly-tracked webpage. Type PARSELY.version to print the version number of the tracker, which will look something like "1.3.0".

If your site uses a legacy integration, PARSELY.version may be undefined. In that case, type or copy/paste PARSELY.config.bundle.match(/[\d\.]+/)[0] into the console instead.

#How to check if the JavaScript Tracker was implemented properly

After you have signed up for a Parse.ly account, the next step is integrating the Parse.ly Javascript tracker on your site. There are 2 ways to check for proper implementation:

Ready to get started with Parse.ly?

Questions?

Or

rocket emoji