How Google Analytics Collects Data

When Google Analytics code gathers information about your website visitors, how does it send that information to the data collection servers so it can be processed?

The information is sent in a request to https://www.google-analytics.com/collect. This file is requested for every single pageview, transaction, social interaction, tracking, timing, and event. When these processed, Google Analytics strings together the individual actions and associates them with a session.

Here’s an example of this request:

https://www.google-analytics.com/collect?v=1&_v=j68&a=753537405&t=pageview&_s=1&dl=https%3A%2F%2Fwww.analyticsmarket.com%2F&ul=en-us&de=UTF-8&dt=Resources%20for%20Google%20Analytics&sd=24-bit&sr=1600x900&vp=1583x418&je=0&_u=AACAAEAB~&jid=1528408694&gjid=192180985&cid=1602946763.1549335544&tid=UA-23423231144-1&_gid=1845815927.1549335544&_r=1&z=549945300

Although the URL looks overwhelming, it’s pretty simple when broken down:

  • It’s a request for www.google-analytics.com/collect
  • It contains twenty-ish URL-encoded parameters
  • Each parameter stores a specific piece of information that is either used to populate reports or to keep things organized.
  • Some parameters are only used in specific cases, others are required each time.
  • One of these requests is made each time someone views a page on your website.

When Google Analytics receives these requests, your reports are populated. But did you know that these requests can be blocked?

Requests are blocked more frequently than you may realize, especially if your website visitors are tech-savvy.

Common browser plug-ins like NoScript or AdBlock can prevent analytics.js from loading or block the /collect request from being sent. And when this happens, you won’t “see” these visitors in Google Analytics.

So what’s the solution to this problem? We recommend using Google Analytics AND web analytics software – the latter is able to detect visitors who block GA requests. Learn more here:

Web Analytics Software Review

Parameter Analysis

Getting back to the /collect request, let’s take a look at each of the query parameters:

NameDescriptionExample Value
vProtocol versionv=1
_vSDK Version number_v=j68
aAdSense linking numbera=753537405
tHit Type.  e.g. pageview, event, item, timing, etc.t=pageview
_sHit sequence number? (unsure)_s=1
dlDocument Location (full URL)dl=https%3A%2F%2Fwww.analyticsmarket.com%2F
ulUser Languageul=en-us
deDocument Encodingde=UTF-8
dtDocument Title (Page Title)dt=Resources%20for%20Google%20Analytics
sdScreen Depth (color)sd=24-bit
srScreen Resolutionsr=1600×900
vpView Portvp=1583×418
jeJava Enabled (0 = no, 1 = yes)je=0
_uUsage info: tells Google which features are used_u=AACAAEAB~
jidJoin ID for DoubleClick beaconjid=1528408694
gjidTracking code versiongjid=192180985
cidClient ID: random-number.timestampcid=1602946763.1549335544
tidTracking ID / Web Property IDtid=UA-23423231144-1
_gidUser ID, used to distinguish users_gid=1845815927.1549335544
_rNo idea, currently undocumented_r=1
zRandom Number Cache Busterz=549945300

The parameters shown above are for a pageview (t=pageview).  Different parameters are used with different Hit Types, like t=event or t=transaction.

If you’d like to see the parameters used by the other hit types, we recommend looking at the Measurement Protocol Reference.

Next Steps

Check out our Recommended Tools to learn about products that complement Google Analytics.