Transmitting user parameters
Most of the session data is collected automatically by the Yandex Metrica tag. You can supplement it with your own data by transmitting session parameters. However, you may find that information about the users themselves is more useful than session statistics.
Yandex Metrica lets you set custom data, called user parameters. For user parameters, we recommend transmitting user traits that don't change from session to session and that don't contain personal data such as the user's name. For more information about the difference between session parameters and user parameters, see Processing and storing data.
If you want the parameters you passed to be reflected in reports, Yandex Metrica should link them to site users. To do this, the following special IDs are used: ClientID and UserID. Parameters are linked to sessions for users who visited the website within 90 days before the data was sent to Yandex Metrica.
The reports will be updated with the new information within a few hours. To view statistics, use 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).
We recommend using the ClientID in transmitted data if you don't need to get your own IDs in a report.
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.
There are several ways you can send user parameters to Yandex Metrica:
- Using a CSV file at any time.
Passing data 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. Information sent using this method cannot be deleted from Yandex Metrica.
To transmit parameters at any other time, use the userParams method. To transmit parameters during tag initialization, specify data in the userParams parameter. The information is transmitted as a JavaScript object 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 — A tree branch is created for each object key, and the algorithm is called 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.
Data will be bound to ClientID only if the userParams method was called during the user's session. To get more complete statistics, wait until a larger volume of data has been transmitted to Yandex Metrica.
Example
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 a user has logged in to the site, instead of the Log in link, they will see their own name or username and their special status next to it, if they have one: Ivan / VIP. Along with the status, you can also transmit the user ID that is stored in your database.
To send data to Yandex Metrica, 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
});
ym(XXXXXX, 'init', {
clickmap: true,
webvisor: true,
userParams: {
vip_status: true,
child: 1,
child_age: 13,
UserID: 12345
}
});
ym(XXXXXX, 'userParams', {
vip_status: false,
child: 1,
child_age: 13,
UserID: 12345
});
ym(XXXXXX, 'init', {
clickmap: true,
webvisor: true,
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
Field name | Description | Example |
---|---|---|
clientID | userID | Site user ID | P12345 |
key | User ID. The maximum number for a single user is 1000. | age | client.age |
value | User ID value | 40 |
Field name | Description | Example |
---|---|---|
clientID | userID | Site user ID | P12345 |
key | User ID. The maximum number for a single user is 1000. | age | client.age |
value | User ID value | 40 |
For a hierarchical structure of parameters, use a dot (“.”). For example, to transmit multiple values of the key field, specify client.demography.age.
- key — 255
- value — 50
- Get the ClientID using the getClientID method.
- Generate a CSV file specifying the ClientID and send it in the Yandex Metrica interface.
- Send your UserID using the setUserID method.
- Generate a CSV file with the UserID and send it in the Yandex Metrica interface .
Working with a file
The Yandex Metrica interface lets you upload data and delete it. You can manage the file in Settings (find the Upload data tab and choose User parameters).
To send a generated CSV file to Yandex Metrica:
- Click Upload data.
- Select the file on your computer and add comments to the upload, if necessary.
- Click Upload 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:
- Click Delete data.
- Select the file on your computer and add comments to the upload, if necessary.
- Click Upload 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).