---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com.tr/dev/metrika/en/data-import/measurement-about.md
  - https://yandex.com.tr/dev/metrika/ru/data-import/measurement-about.md
  - href: en/data-import/measurement-about.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/metrika/en/llms.txt

# Using the Measurement Protocol

The Measurement Protocol is an API for sending data about user interactions directly to Yandex Metrica servers via HTTP requests. It expands the capabilities offered by standard web tags, making it possible to transmit additional data about user sessions and actions.

{% note info %}

We recommend using the Measurement Protocol in combination with automatic data collection by the Yandex Metrica web tag, not as its replacement.

{% endnote %}

## Usage {#use}

#### Merging data

Add information about interactions that can't be tracked by a web tag (such as server-side data) to your Yandex Metrica tag data.

#### Sending server data

Pass data from the server side when client-side collection is restricted (for example, by an ad blocker).

#### Transmitting E-commerce data

Pass data about E-commerce events (purchases, cart actions) directly if client-side collection isn't available.

What data is passed via the API:
- Pageviews
- JavaScript events
- E-commerce events
- Session parameters

## Limitations {#restrictions}

#### Creating new sessions using the opening event `pageview`

To create new sessions using the Measurement Protocol, send a request with the `pageview` interaction type. If you pass events (such as E-commerce events or JavaScript goal conversions) that can't be attributed to an existing session because they exceed the 12-hour timeout after the session ended, or because there is no session matching the transmitted `ClientID`, that data won't be recorded. To avoid this issue, first pass a `pageview` to create a new session, then add the desired events to that session.

#### Time limit for updating sessions

You can update sessions only within a 12-hour window after their completion. To do this, pass an event that falls within the session timeout specified in the tag settings. If you need to pass data for an older session, use offline data transmission. The only way to record data for sessions that ended more than 12 hours ago using the Measurement Protocol is by creating a new session with the desired `ClientID` and adding the events that you want to associate with the user to that new session.

![alt](../../_images/graph1-en.png =750x)

#### Gradual `ClientID` availability for expanding user history

After you enable the Measurement Protocol feature, Yandex Metrica starts tracking the history of site users by their `ClientIDs`, continuously expanding it with new sessions via the Measurement Protocol. This is a gradual process: initially, the service stores `ClientIDs` for one day after the feature's activation, then for two days, three, and so on, until it reaches 21 days. After that, the oldest data is deleted, and the service updates `ClientIDs` with the most recent information for the last 21 days. If a user's session occurred more than 21 days ago, their history can't be updated further, so a new user with a new session is created instead.

![alt](../../_images/graph2-en.png =750x)

## Setting up data transfer {#config}

1. Activate the Measurement Protocol in the settings.

   Enable the corresponding option in the Yandex Metrica interface or API and get an access token. [Learn more](https://yandex.com.tr/dev/metrika/en/data-import/manage-protocol.md) about managing the option and tokens via the API.
2. Save the `ClientID`.

   Save the `ClientID` to your server for future data sending.
3. Send the request.

   Send a POST or GET request with the necessary parameters and token to `https://mc.yandex.ru/collect`. [Learn more](https://yandex.com.tr/dev/metrika/en/data-import/measurement-upload.md) about uploading data.
