Measurement Protocol

The Google Analytics Measurement Protocol enhances measurement for web and app streams by sending events directly to Google Analytics servers in HTTP requests. You can record server-to-server and offline interactions, and send them as Measurement Protocol events to Google Analytics, where they can be viewed in reports.

You must use tagging (gTag, Tag Manager, or Google Analytics for Firebase) to use this protocol. See key features for important information on how this Measurement Protocol works with Google Analytics.

Use cases

Here are some ways to use the Measurement Protocol:

  • Tie online to offline behavior.
  • Measure client-side and server-side interactions.
  • Send events that happen outside standard user-interaction, like offline conversions.
  • Send events from devices and apps where automatic collection isn't available, like kiosks and watches.

Read more about how to implement common use cases in the use cases guide.

Get started

See send events to learn how to send events to Google Analytics using the Measurement Protocol.

If you're implementing the Measurement Protocol for an app stream, you can start with the Send app events to Google Analytics using Measurement Protocol codelab.

Architecture

Here is an overview of the Measurement Protocol.

sequence diagram of measurement protocol

Key features

This section explains important information for using the Measurement Protocol. You must use gTag, Tag Manager, or Google Analytics for Firebase for tagging to use most of the Measurement Protocol features with Google Analytics.

Remarketing

Same device remarketing is supported when Google signals is turned on. For cross-device remarketing, a User ID is required.

Advertising identifiers

Advertising identifiers such as GBRAID/WBRAID collected during online interactions are automatically joined with Measurement Protocol events using client_id or app_instance_id.

Privacy settings

Measurement Protocol events are joined with online interactions using client_id or app_instance_id to functionally adopt user privacy settings such as "non personalized ads" and "limit ad tracking".

Geographic and device information

Google Analytics automatically joins the most recent geographic and device information from tagging with Measurement Protocol events using client_id or app_instance_id. This ensures that your Measurement Protocol events are reflected in reports that include geographic and device dimensions.

If you want a Measurement Protocol event to reflect geographic and device information from a specific session instead of the latest information for the client_id or app_instance_id, then include session_id in the event and send it to Measurement Protocol within 24 hours of the start of the session.

You can't send geographic or device information using the Measurement Protocol.

Full server-to-server

While it's possible to send events to Google Analytics solely with the Measurement Protocol, only partial reporting may be available. The purpose of the Measurement Protocol is to augment existing events collected using gtag, GTM, or Firebase. Some event and parameter names are reserved for use through automatic collection and cannot be sent through the Measurement Protocol.

Generate or rename events

Rules for generating or renaming events aren't triggered by events sent with the Measurement Protocol. Your application should implement the logic to send custom events through the Measurement Protocol, similar to the rules configured in the Google Analytics UI.

Next steps