One of the most advanced ways for businesses to communicate with Google Analytics is through the Measurement Protocol.
What is the Measurement Protocol?
Measurement Protocol is a system for sending data to Google Analytics directly from the website’s server or through a remote request, without the user needing to visit the site online.
You might ask, why such complexity? There are several reasons:
- conversions can happen offline, after the user has left the website;
- there’s a significant percentage of abandoned online orders that never get completed;
- businesses want to compare real revenue with the actual expenses tracked in Google Analytics;
- companies wish to track the entire user journey, from the first interaction to the final purchase (creating end-to-end analytics).
In the first and second cases, missing or distorted data puts into question the effectiveness of each traffic generation channel and the overall promotion strategy.
Measurement Protocol is the solution for transmitting the most accurate conversion data, often verified by the sales team.
Let’s dive into the regulations, workings, and possibilities of this tool.
➊ Methods of data transmission
There is only one protocol for data transmission: the HTTP request. However, it can take two forms — POST or GET. The endpoint for these requests is:
POST requests send data from the website’s server.
GET requests send data via URL.
You can choose the method that best suits your needs.
POST requests are virtually unlimited.
GET requests have a size limit of 8,000 bytes.
Both types of requests share common components, such as:
👉 user_agent_string - an identifier that provides information about the user’s browser, platform, and mobile capabilities. If this value is not set, these parameters won’t be calculated.
👉 payload_data - the body of the request.
👉 IP address - transmitted in the HTTP request (if not set manually, the request will take the IP of the device sending it).
Example POST request:
POST /mp/collect?api_secret=Af16wpXjRZGfEfvgJcEi8g&measurement_id=G-1Z2SNNLJ6S
HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
Example GET request:
GET /collect?payload_data HTTP/1.1
Host: https://www.google-analytics.com
User-Agent: user_agent_string
➋ Parameters transmitted
To get the most detailed reports in Google Analytics, it’s best to transmit not only the required parameters but as many relevant data points as possible, including cookie data.
Mandatory parameters to transmit:
- protocol version;
- Google Analytics ID;
- type of data being transmitted;
- user identifier;
- API GA4 key.
Additional parameters to transmit:
- Measurement Protocol allows you to transmit a very large array of data, from any event such as a page view to enhanced e-commerce transactions. It all depends on the data you have and the event you want to transfer.
I would like to note once again that in the future, for the most accurate information in Google Analytics reports, when composing a request, you will not be able to get by with only the required parameters. The more data we transfer, the more accurate the reports and, accordingly, the conclusions.
With the help of Measurement Protocol, you can transfer several types of data, not just transactions. More on that later.
➌ Types of information that can be transmitted
- pageview - page views;
- screenview - screen tracking;
- event - event tracking;
- transaction - transaction data;
- item - product data;
- social - social interactions;
- exception - error tracking;
- timing - interaction timing.
Each type of data requires its own set of parameters.
Example: sending a transaction to Google Analytics.
You’ll need the following mandatory parameters:
- transaction_id - transaction ID;
- measurement id - Google Analytics ID;
- client id - client identifier (Client ID);
- value - transaction amount;
- timestamp_micros - time of the event, no more than the last 72 hours;
- api secret - API GA4 key.
Example code:
Request info
POST /mp/collect?api_secret=Af16wpXjRZGfEfvgJcEi8g&measurement_id=G-1Z2SNNLJ6S
HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
Payload
{
"client_id":"2092330425.1579870776"
"timestamp_micros":1771279200000000
"non_personalized_ads":false
"events":[
{
"name":"purchase"
"params":{
"items":[
{
"item_id":"sku_1111"
"item_name":"test"
"quantity":1
"price":11111
"currency":"UAH"
}
]
"currency":"UAH"
"transaction_id":"11111"
"value":11111
}
}
]
}
Once the request is built, you can test it.
➍ Testing with Hit Builder
Google provides a tool called Hit Builder to help test your data transmission. This tool allows you to fully construct and send the request to Google Analytics, and then check if the data has been received.
It looks something like this:

Next comes the preparation and implementation of technical specifications for the transfer of data from the CRM system to the site.
➎ Organizing data transmission
Once you understand how to gather and send the data, you can organize the transmission of processed data to Google Analytics via GET or POST requests. From there, you can make more informed marketing decisions.
➏ End-to-end analytics and Measurement Protocol
A fashionable and not always tangible concept. Let's consider it in more detail.
End-to-end analytics - analysis of communication with the user, starting from the first touch and ending with the completion of the transaction.
By using Client ID, you can consolidate and send individual data for each user, allowing you to accurately track all user steps and outcomes. This could look something like this:

➐ Measurement Protocol in Google Analytics 4
The process in GA4 differs slightly from Universal Analytics:
- an API key is required, generated individually for each account;
- events are categorized;
- events can include additional parameters called “details”;
- variable names have changed, but the core functionality remains the same.
How it works?
👉 Track the first event with the user’s Client ID;
👉 All subsequent data is consolidated under the user’s Client ID;
👉 Sales or other actions are processed in the CRM system;
👉 Financial data is uploaded to Google Analytics via Measurement Protocol;
👉 Custom reports can be built in Google Analytics, showing all events from the first interaction to the revenue generated by the company.
This allows you to consolidate traffic source statistics, track user actions, and make highly accurate conclusions. While the implementation is complex, it’s certainly achievable.
There’s no one-click solution for this - you need specific knowledge and technical support. For more details, feel free to contact our agency. Additionally, check out our video on Measurement Protocol.
Conclusion
Measurement Protocol is a complex but invaluable tool that solves problems no other tool can. It’s absolutely worth the effort.
We also recommend reading our article on a similar tool from Facebook, the Facebook API Conversions.