• Home  / 
  • Business
  •  /  Measurement Protocol 101: Improve Your Google Analytics Data

Measurement Protocol 101: Improve Your Google Analytics Data

By Jason Freely / 6 months ago

Google Analytics and Google Tag Supervisor have limits. Typically, these limits are outside the house your control (e.g., technological areas of a website that just can’t be altered).

Fortuitously, several issues—such as updating a person standing from your CRM or sending refund data—are solved by employing Google Analytics’ Measurement Protocol: 

The Google Analytics Measurement Protocol enables builders to make HTTP requests to ship uncooked person interaction data directly to Google Analytics servers. This enables builders to measure how users interact with their business from practically any ecosystem.

Don’t enable the “allows developers” phrase scare you. Making use of the Measurement Protocol is nothing at all extra than incorporating a bunch of parameters to a URL. Thus, it really should be equally basic for people today who aren’t builders to add it to their toolstack.

This posting demonstrates how entrepreneurs can use the Measurement Protocol without the need of coding—structuring data in Google Sheets or Excel as a substitute. Continue to, there are benefits from becoming in a position to code (even a very little little bit), or owning a developer mate to assist with some of the options beneath.

Parameters and why they make a difference

With the Measurement Protocol, you can mirror the data and assortment method of Google Analytics. On any web page managing Google Analytics, only go to the console below Network and sort “collect.”

Reload the web page, and this will clearly show up:

https://www.google-analytics.com/obtain?v=1&_v=j79&a=27896466&t=pageview&_s=1&dl=https%3A%2F%2Fconversionxl.com%2F&ul=en-gb&de=UTF-eight&dt=Optimization%20and%20Growth%20by%20CXL&sd=24-little bit&sr=1440x900&vp=885x789&je=&_u=SCCAgAALQ~&jid=&gjid=&cid=583336462.1570739164&tid=UA-486673-28&_gid=521630025.1570739164>m=2wg9p0NX56DK&cd4=%22%22&cd5=583336462.1570739164.1570739177647.pageview&z=1459566673

url that contains information that's sent to google analytics.

At a look, this may appear to be incomprehensible however, if you deconstruct the URL from the query parameters, you will see it as a record of details which is handed to Google Analytics:

  • v: 1
  • _v: j79
  • a: 27896466
  • t: pageview
  • _s: 1
  • dl: https://conversionxl.com/
  • ul: en-gb
  • de: UTF-eight
  • dt: Optimization and Expansion by CXL
  • sd: 24-little bit
  • sr: 1440x900
  • vp: 885x789
  • je:
  • _u: SCCAgAALQ~
  • jid:
  • gjid:
  • cid: 583336462.1570739164
  • tid: UA-486673-28
  • _gid: 521630025.1570739164
  • gtm: 2wg9p0NX56DK
  • cd4: ""
  • cd5: 583336462.1570739164.1570739177647.pageview

Below it can be witnessed that:

  • Doc place (DL) is https://conversionxl.com.
  • User Language (UL) is English.
  • Doc Encoding (DE) is UTF-eight.
  • Client ID (CID) is 583336462.1570739164.
  • Monitoring ID (TID) is UA-486673-28.
  • We are tracking (T) a pageview.
  • And so on.

The URL consists of the exact details despatched to Google Analytics. You use the similar technique to ship data by means of the Measurement Protocol—emulating what takes place every time you do something on a webpage which is tracking person habits.

To see all readily available parameters, visit the Measurement Protocol Parameter Reference guidebook.

Sending data through the Measurement Protocol

Most programming languages are able of sending data through the Measurement Protocol by means of Post messages.

I advocate employing the software which is most pure for you to use. If you like employing R, Mark Edmonson established a deal that allows you do it. To execute requests, the only point you require is the data.

But you can also do it through Python, PHP, and applications these as Zapier or Google Sheets.

Be aware: Just before executing any instructions for the use circumstances beneath, be sure to browse the caveats and advice part that follows.

four simple examples for employing the Measurement Protocol

For entrepreneurs, four use circumstances emphasize the prospective value of the Measurement Protocol:

  1. Appropriate lacking transactions
  2. Regulate replicate buys
  3. Deliver refund data
  4. Update a lead standing.

1. Appropriate lacking transactions

With Google Analytics, proper top quality assurance can be difficult. You may perhaps not recognize that ecommerce tracking isn’t working—until you uncover that data is lacking.

To add lacking transactions to your Google Analytics Property, you require the following data factors:

  • Google Analytics data with get ID’s and day
  • Real sales data for the time interval that needs to be recovered.

This is the circulation that would make it doable to extract, transform, and load data back again into Google Analytics:

flow for data using the measurement protocol.

Below are the steps to do it:

Extract the data

To start with, we require the appropriate data from a sales database. Once we have the appropriate transactions for the lacking interval, extract the sales data from Google Analytics by means of the API, or export the data into Google Sheets:

google sheets export from analytics.

Transform the data

Once you have the data, develop a sheet (Excel or Google Sheets—doesn’t make a difference) and merge the transaction IDs and revenue. The table really should search like this:

You can then use this system to see if there are any replicate values in the dataset: 


removing duplicate transactions from spreadsheet data.

Filter out any transaction that currently exists in Google Analytics (i.e. select rows only with the value “0” in them).

To finish making the upload dataset, add the required parameters. Use the Google Sheet template right here to align your dataset with the picture beneath:

spreadsheet with curl request data for measurement protocol upload.

The very last step to transform the data is to copy the details from the “Request” column into your favorite code editor, these as Visible Studio Code:

curl examples.

Load the data into Google Analytics

You require to ship cUrl requests with the hits established in the former step. To do so, open up your terminal or GIT Bash. Duplicate all the code and push Enter.

The following look at really should now seem:

using the bash terminal for measurement protocol.

Push Enter one very last time to get the very last row, and search at the Real-Time report (“Last thirty min”) to verify that the hits have been despatched:

real time look at in google analytics to confirm that measurement protocol hits have gone by means of.

Regrettably, Google’s data design does not make it possible for you to specify a day for the uploaded data it is decided based on the time the data is despatched. One more aspect result of this technique is that you reduce the users’ Client ID and, hence, the referral data for the transaction.

A way to manage this is to give a weighted distribution on your calls “traffic source” and “medium” based on historical data. You can also give out tailor made values, these as calling the traffic supply “Measurement Protocol.”

The most critical point is that it fits your business. And, of study course, the exceptional option is to QA your Google Analytics set up right after any internet site releases that may influence tracking.

2. Regulate replicate buys

A recurrent difficulty in Google Analytics is replicate transactions. Copy transactions can transpire if people today revisit the receipt web page, or if something is mistaken with the technological implementation.

When auditing Google Analytics, you from time to time obtain that a internet site isn’t tracking Increased Ecommerce with Situations. This triggers ecommerce data to be despatched with a Pageview, and—if an Celebration takes place on the transaction web page at the similar time—it will create two transactions.

Correcting this data can correct revenue figures for weekly or every month reporting. Nonetheless, due to the fact we require to add a destructive transaction to appropriate the invest in amount, it creates an supplemental transaction, inflating the complete number of transactions on the internet site and skewing the ecommerce transaction rate. 

Therefore, I advisable this technique only:

  1. To appropriate big revenue discrepancies
  2. If you use Google Analytics to report revenue.

The technique is equivalent to the one for the former use scenario of incorporating lacking transactions. This time however, only Google Analytics data is desired (not sales data). You will use the following variables:

  • Transaction ID
  • Transactions
  • Profits
  • Client ID (not necessary but will boost precision).

 The circulation to develop destructive transactions appears like this:

flow for negative transactions to integrate for measurement protocol.

Extract the data

As in the former step, down load the data from the API or develop a Custom made Report with the required Metrics and Dimensions, then export it to Google Sheets.

Transform the data

Not all transactions are probably to be duplicates. Create a filter and only incorporate transactions increased than “1”:

filtering in a spreadsheet.

Then, compute the refund amount employing this system:

(Profits - (Profits/Transactions))*-1

This really should result in a look at equivalent to this one:

example of how to add refund data to a spreadsheet.

Finally, make the cells match this Google Sheet and comply with the similar technique as ahead of, copying the data into a code editor.

measurement protocol worksheet for curl request.

Load the data into Google Analytics

As ahead of, go to your terminal and paste in the traces from the spreadsheet. Test that data is coming in correctly to your Perspective.

3. Deliver refund data

Sending refund data to Google Analytics is not the similar as reversing a transaction.

As a substitute, refund data appears individually in your Increased Ecommerce reports to assist evaluate how several transactions and solutions are refunded and, in switch, irrespective of whether something is mistaken (e.g., the way solutions are shown on the internet site).

Receiving refund data into Google Analytics automatically can take resources several ecommerce companies skip the course of action completely. This would make it difficult to compute Return on Marketing Investment (ROMI) when comparing Google Analytics data to precise sales figures.

If doable, the Client ID is excellent to have—it’s the most specific way to connect the refund to the person. If it is not readily available, only create a exclusive one.

The course of action for making refunds is the following:

example of data flow to match crm data with analytics data and ship through measurement protocol.

Extract the data

Refunds extra to Google Analytics will manifest on the day they are despatched. To get the most specific refund day, ship them in often to get as near to the precise refund day as doable.

Transform the data

The Measurement Protocol hit for refunds is practically equivalent to the one for sending in invest in data. The only change is the value for the parameter “pa” (Item Action), which is named “refund.”

To develop the dataset, use this template and change it with the refund data that you will copy and ship by means of cURL requests:

measurement protocol spreadsheet template.

Load the data into Google Analytics

As in the other examples, copy the “Request” column, open up the terminal, and paste the values:

bash console that sends hits to google analytics through the measurement protocol.

Finally, look at the Google Analytics Real-Time report to be certain that data is coming in correctly. The data really should be readily available below Ecommerce > Sales functionality.

four. Update a person standing from your CRM

Ecommerce data can suggest how an online retailer is performing. If a business’ most important KPI isn’t marketing solutions but changing prospects, however, it can be difficult to assess the efficiency of marketing attempts. 

Lead scoring—one way to assess those people efforts—isn’t always possible through conventional Google Analytics data assortment. Below, it is up to builders to update the standing of users and ship that data back again into Google Analytics.

That data presents entrepreneurs some new analytical options:

  • Realize the time lag from when a person very first visits the internet site to when they become a sales-capable lead.
  • In conditions of attribution, see the marketing attempts that most proficiently transformed prospects.
  • For prospects that get declined or exit the lead-scoring funnel, the data can assist section from them, protecting against squandered marketing devote.

Here’s a hypothetical circulation for bank prospects:

sample flow for a lead.

The future steps clearly show how to purchase the Client ID and use it to update the person standing through the Measurement Protocol.

Collect the Client ID

To connect on-internet site person habits to Google Analytics, the Client ID must very first be collected:

capturing the client id via a hidden field in a form.

A concealed discipline really should obtain the Client ID from the ga cookie. This value needs to be stored in the CRM/lead-scoring technique.

Create a Measurement Protocol bring about

Once the data is collected, builders require to established up the technique to fireplace a hit every time a person standing updates. The hit needs to be formatted this way:

https://www.google-analytics.com/obtain?v=1&t=function&tid=UA-12345-6&cid=the client id from the CRM&ec=measurement+protocol&ea=lead+updated&el=the lead standing updated&cd1=the lead standing updated&ni=1

The “cd1” parameter is the Custom made Dimension. If you require to established it to a different Custom made Dimension (due to the fact you have currently established other people), you can use any number involving 1 and 20 (two hundred if you have Google Analytics 360) right after the “cd” variable, these as cd17 for Custom made Dimension seventeen.

3. Established up the Custom made Dimension

To obtain the data from the Measurement Protocol hit, you require to activate the Custom made Dimension. As we’re updating the users’ lead standing, the scope really should be established to “User” level:

add custom dimension in ga.

Click on “Create.” The following details really should seem with the Custom made Dimension number:

custom dimension setup in google analytics.

From right here, the data really should be readily available as a Custom made Dimension in reports when deciding upon Secondary Dimensions:

example of custom dimension in google analytics.

Caveats and advice

This part illustrates parts for which I want there ended up extra direction in online communities, or even in the Google Developer documentation. These are points I have acquired by means of demo and error.

Study this part totally ahead of utilizing any options, as these caveats could probably crack your tracking set up if you are not thorough.

Established up filters for Perspective-certain data

When performing with multiple nations around the world or business units, your tracking set up may search like this:

potential division of google analytics account.

Nonetheless, sending a Measurement Protocol hit to your internet site will add the data to all Views in a Property. This signifies that if you try to ship in transactions for State A, this data will also be despatched to Nations B and C.

In several circumstances, you require to break up up the details to populate certain Views. To do this, add an Celebration to your hit to filter the data.

For case in point, ship an Celebration to your Google Analytics Property with the following details:

  • Class: Measurement Protocol
  • Action: [the motion the hit generates]
  • Label: [which Views it really should ship to].

If we use the country case in point described previously mentioned, a filter that can take data only to State C and the roll-up Perspective could search like this:

custom filter to segment data import from measurement protocol.

It is a basic way to exclude unwelcome data and to use segments to look at data sent through Measurement Protocol hits.

Uncheck Bot Filtering

An effortless miscalculation is forgetting to uncheck Bot Filtering when sending hits. Bot Filtering will, in most circumstances, block Measurement Protocol hits from becoming despatched to the Property.

Go to Perspective Settings and make absolutely sure the checkmark box is vacant. If it is checked (as in the case in point beneath), uncheck it.

bot filtering toggle in google analytics options.

Formatting currencies

Constantly specify the currency for the value becoming despatched. When acquiring data from your CRM or other platforms, convert the currency to a single unit, or make absolutely sure that every row of your data specifies the appropriate currency.

To see how currencies really should be formatted, visit Google’s assist heart.

Be thorough with the Client ID

When sending data to Google Analytics, it is finest to have a exclusive Client ID. If you use the similar one every single time, all the data will be attributed to one person, which will skew your data. As a substitute, I advocate one of two options:

  • Deliver the primary Client ID for the data that you are hoping to upload. This is the most precise way.
  • Crank out a Distinctive Client ID for every hit to distribute data evenly across exclusive users.

Hold GDPR in brain and secure users

The very last point well worth mentioning about Measurement Protocol is to regard users. Once you have a Client ID and an e mail, the marketing options are endless.

You can realize exactly who does what on your website, operate segmented retargeting campaigns—even for people today who never want it—etc.

Constantly have documented permission and be compliant with Measurement Protocol guidelines.


This article has targeted on how to use the Measurement Protocol with as very little coding expertise as doable. But there are several (extra) methods to function with it.

Create a workflow that aligns with the technological strengths of the person sending the requests. (To see an case in point of how Measurement Protocol can be automated with the statistical programming language R, look at out this blog article.)

Measurement Protocol can be an asset to boost data assortment. Nonetheless, it can also result in extra hurt than excellent to your Google Analytics Property if employed incorrectly. Deliver the details to a exam account ahead of putting it into production.

Finally—and unfortunately—others can also use the Measurement Protocol for your internet site, building it effortless for 3rd events to obscure your data with misleading details. When you are not sending Measurement Protocol data, filter out bot traffic in Perspective options and your filters.

Highlighted picture supply