Transmitting and processing data

Yandex.Metrica assigns each site user a ClientID. At the same time, site owners may use their own systems for identifying users.

You can use the setUserID method to transmit a site user ID to Yandex.Metrica, which allows you to link the UserID to the ClientID.

The site user ID is associated with the ClientID for a site visitor only if this method was called during the session. To get more complete statistics, we recommend waiting some time until a larger volume of data is transmitted to Yandex.Metrica.

There are two ways to transmit user parameters:

During a site session

This method is useful when you are generating a report based on data received while the user is viewing the site.

User parameters are transmitted to Yandex.Metrica through the JavaScript API. To transmit the parameters at any other time, use the userParams method. When initializing the tag, you can specify user parameters in UserParams.

Note. The information transmitted in the userParams method will be available in Yandex.Metrica reports in a few hours.

Data is sent as JavaScript objects and processed as follows.

The field name and nesting level are interpreted as the parameter name and level, respectively. The field value is processed as follows, depending on its type:

  • object — Creates a tree branch for each object key and calls the algorithm recursively for each value.
  • string — Counts the number of times each different value of the string occurs.
  • number — Calculates the total and average value of all numbers.
  • true, false or null — Calculates the number of times each value occurs.
Note. Data that is sent via the JavaScript API is not deleted from the service.

Let's look at an online store that has two types of customers: “normal” and “VIP”. The client status data is stored in the site's own database. After users sign in on the site, they see their usernames in place of the Sign in link on every page. If a user has a special status, it is shown next to the name: Jane / VIP. To send Yandex.Metrica the client status, you need to add code to all the site's pages that will call the userParams method.

For sending data about users with a special status, the code will look like this:

ym(XXXXXX, 'userParams', {
    vip_status: true,
    child: 1,
    child_age: 13,
    UserID: 12345

If information is being transmitted about a “normal” user, the code will look like this:

ym(XXXXXX, 'userParams', {
    vip_status: false,
    child: 1,
    child_age: 13,
    UserID: 12345

where XXXXXX is your tag ID.

If a “normal” customer gets VIP status, the userParams method sends the new data to Yandex.Metrica the next time this user signs in on the site. This new status will apply to the entire history of this user's sessions, as if the customer was always VIP.

Transmitting data in a CSV file at any time

This method allows you to send Yandex.Metrica not only the data collected during the site session, but also any data collected after the user left the site.

Specification for the CSV format

Overview of the CSV format

Required fields for transmitting data
Field name Description Example
clientID | userID Site user ID P12345
key User ID. Maximum of 1,000 per user age | client.age
value User ID value 40

For a hierarchical structure of parameters, use the dot (“.”). For example, to transmit multiple values of the key field, specify client.demography.age.

The maximum number of characters in fields shown in Yandex.Metrica reports:
  • key — 255
  • value — 50
When to transmit the ClientID

We recommend using the ClientID in transmitted data if you don't need to get your own IDs in a report. In this case, to transmit the data:

  1. Use the getClientID method to get the ClientID.
  2. Prepare a CSV file specifying the ClientID and send it through the Yandex.Metrica interface.

When to transmit the UserID

We recommend using the UserID if, for instance, your site already has a user ID system and you need to get a report that shows these IDs. In this case, you need to create a CSV file specifying the UserIDs and send it through the Yandex.Metrica interface.

Working with a file

The Yandex.Metrica interface lets you upload data and delete it. You can work with a file in the Settings section (on the Upload data tab, go to the section Upload user parameters).

Note. If session parameters were transmitted in the file, you won't be able to remove them from the service later. You can only delete user parameters.
Uploading data

To send a prepared CSV file to Yandex.Metrica:

  1. Click Upload data.
  2. In the window that opens, choose the file type according to the type of ID you want to upload (UserID or ClientID).
  3. Select the file on your computer and add comments to the upload, if necessary.
  4. Click Upload data.

Sample CSV file for uploading data

Deleting data

To remove previously uploaded data or parts of it from the service, prepare a CSV file. The file should only contain the key field for the data you want to remove. Then follow these steps:

  1. Click Delete data.
  2. In the window that opens, choose the type of file to apply the changes to, according to the type of ID (UserID or ClientID).
  3. Select the file on your computer and add comments to the upload, if necessary.
  4. Click Upload data.

Sample CSV file for deleting data

It takes some time for the service to process the file. When processing is complete, the information you sent will be available in the User parameters report. You can also use this data to create segments for retargeting lists in Yandex.Direct or Yandex.Audience (see the example).