---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://yandex.com.tr/support/metrica/en/ecommerce/data.md
  - https://yandex.com.tr/support/metrica/es/ecommerce/data.md
  - https://yandex.com.tr/support/metrica/pt/ecommerce/data.md
  - https://yandex.com.tr/support/metrica/ru/ecommerce/data.md
  - https://yandex.com.tr/support/metrica/tr/ecommerce/data.md
title: Передача данных об электронной коммерции
description: В Ecommerce любой товар представляет собой объект, с которым производятся определенные действия. Эти данные передаются в виде JavaScript-объектов, содержащих идентификатор действия и список описаний товаров, с которыми это действие произведено.
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/support/metrica/ru/llms.txt


# Передача данных об электронной коммерции

<!-- source: ru/_includes/code/counter-initialize/id-counter-initialize/rest-js.md -->
{% note warning %}

Для работы с JavaScript API необходимы навыки работы с HTML и JavaScript. Если вы не обладаете такими навыками, обратитесь к разработчику или вебмастеру вашего сайта.

{% endnote %}
<!-- endsource: ru/_includes/code/counter-initialize/id-counter-initialize/rest-js.md -->


## О контейнере данных и их передаче в Метрику {#about}

В Ecommerce любой товар представляет собой объект, с которым производятся определенные действия. Например, просмотр полного описания товара или добавление в корзину. Эти данные передаются в виде JavaScript-объектов, содержащих идентификатор действия и список описаний товаров, с которыми это действие произведено. В контексте JavaScript API будем называть такие объекты _Ecommerce-объектами_.

Чтобы передать данные в виде Ecommerce-объектов Яндекс Метрике, необходимо добавить их в JavaScript-массив `window.dataLayer` в глобальном пространстве имен (window) методом [push](http://www.w3schools.com/jsref/jsref_push.asp). Такой массив будем называть _контейнером данных_.


{% note alert %}

Не передавайте данные в момент перехода посетителя на другую страницу сайта. Например, при использовании события `onclick` на кнопке «Оформить заказ». В этом случае следующая страница может загрузиться раньше, чем код счетчика передаст данные в Метрику. В результате информация о событии будет потеряна.

{% endnote %}


Контейнер данных должен находиться в глобальном пространстве имен, а его имя соответствовать имени, заданному при настройке счетчика или при инициализации счетчика. Если контейнер данных имеет название `dataLayer` или счетчик Метрики был инициирован со значением параметра [ecommerce](https://yandex.com.tr/support/metrica/ru/code/counter-initialize.md#param-ecommerce) равным `true`, то предполагается, что контейнером данных является массив `window.dataLayer`.

```html

...


```

Имя контейнера данных и структура вкладываемых в него Ecommerce-объектов соответствует аналогичным сущностям в Google Analytics Enhanced Ecommerce. Это означает, что если вы уже настроили отправку данных в Google Analytics Enhanced Ecommerce, в том числе через [Global Site Tag](https://developers.google.com/gtagjs/?hl=en), и включили Ecommerce в Яндекс Метрике, последняя начнет собирать данные. Также Метрика поддерживает Электронную торговлю (GA4) и собирает данные без дополнительных настроек.


{% note alert %}

Контейнер данных не должен содержать больше 8192 символов. 
Если вы передаете в контейнере больше данных, рекомендуем разбить заказ на части с подномерами (например, `order1-1`, `order1-2`, `order1-3`). Так в Метрике будут отображены и заказы, и подзаказы.

Чтобы оценить фактическое количество заказов, задайте JS-цель и отправляйте ее в Метрику с одним из подзаказов. При передаче нескольких контейнеров одного заказа, поделенного на подзаказы, будет достигнута одна цель, с помощью которой можно посчитать общее количество заказов.

{% endnote %}


Ecommerce-объект имеет следующий вид:

```javascript
window.dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "<actionType>": {
            "actionField": <actionField>,
            "products": [<productFieldObject>, <productFieldObject>, ...]
        }
    }
});
```


#|
||
**Поле**
|
**Тип**
|
**Описание**
||
||
`ecommerce`[*](*Параметр)
|
Object
|
Обязательное поле-контейнер
||
||
`currencyCode`
|
String
|
Трехбуквенный [код валюты по ISO 4217](https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=currency-codes).

Если передается другая валюта, будут отправлены нулевые значения вместо валюты и суммы
||
||
`<actionType>`[*](*Параметр) {#action_type}
|
—
|
Название поля (подставляемое вместо `<actionType>`) представляет собой идентификатор действия, произведенного с набором товаров.

Возможные значения:

- `impressions` — просмотр списка товаров;
- `click` — клик по товару в списке;
- `detail` — просмотр товара;
- `add` — добавление товара в корзину;
- `remove` — удаление товара из корзины;
- `purchase` — покупка;
- `promoView` — просмотр внутренней рекламы;
- `promoClick` — клик по внутренней рекламе.

Если в Метрику передана информация об удалении товара, в отчете может появиться отрицательное количество товаров (при вычислениях количество удаленных из корзины товаров вычитается из общего числа добавленных товаров). Если при этом передана стоимость товара, в отчете она так же отобразится отрицательной
||
||
`actionField`[**](*Обязательный_параметр)
|
Object
|
Объект вида [actionField](#action_data). Дополнительные данные, описывающие произведенное действие.

Обрабатывается, только если действие — [покупка](#purchase) (`<actionType>` — `purchase`)
||
||
`products`[*](*Параметр)
|
Array
|
Список описаний товаров, с которыми было произведено указанное действие. Описания продуктов представляют собой объекты вида [productFieldObject](#product_data).

Не используется для действий `promoClick`, `promoView` и `impressions`
||
||
`promotions`[*](*Параметр)
|
Array
|
Список описаний рекламной кампании, с которой было произведено указанное действие. Описание рекламных кампаний представляет собой объекты вида [promoFieldObject](#promo_data)
||
|#

<sup >*</sup> Обязательный параметр.

<sup >**</sup> Обязательный параметр для передачи информации о покупке.

### Данные о товаре {#product_data}

Объект, описывающий отдельный товар.

Структура объекта, описывающего товар, обозначается как **productFieldObject**.


#|

### Поля объекта {#product_data}

||
**Поле**
|
**Тип**
|
**Описание**
||
||
`id`[*](*Указать)
|
String
|
Идентификатор товара. Например, SKU.

**Необходимо обязательно указать или id, или name**
||
||
`name`[*](*Указать)
|
String
|
Название товара. Например, "Футболка"

**Необходимо обязательно указать или name, или id**
||
||
`brand`
|
String
|
Бренд, торговая марка, ассоциированная с товаром. Например, "Яндекс / Яndex"
||
||
`category`
|
String
|
Категория, к которой относится товар.

Поддерживается иерархия категорий до 5 уровней вложенности. Разделителем уровней является символ /. Например, "Одежда / Мужская одежда / Футболки"
||
||
`coupon`
|
String
|
Промокод ассоциированный с товаром. Например, "PARTNER_SITE_15"
||
||
`discount`
|
Number
|
Размер скидки на товар (указывается как число)
||
||
`list`
|
String
|
Список, к которому относится товар.

Чтобы оценивать эффективность списка на разных этапах взаимодействия пользователя с товаром, рекомендуем указывать список товара во всех событиях, которые были после просмотра списка
||
||
`position`
|
Integer
|
Позиция товара в списке. Например, 2
||
||
`price`
|
Number
|
Цена единицы товара
||
||
`quantity`
|
Integer
|
Количество единиц товара
||
||
`variant`
|
String
|
Разновидность товара. Например, "Красный цвет"
||
|#

### Данные о действии {#action_data}

Объект, содержащий данные о действии, произведенном с товаром или набором товаров.

Обрабатывается только если действие — покупка (`<actionType>` — `purchase`).

Структура объекта, описывающего действие, обозначается как **actionField**.

При передаче данных о действии Метрика создает цель. Она позволяет получать данные о доходе с кампании Директа. В Директе, в списке доступных целей, такая цель отображается как «eCommerce: Покупка (счетчик № <ID счетчика>)». При этом вы можете отслеживать достижение цели самостоятельно, передавая поле [goal_id](#goal_id).


#|

### Поля объекта {#action_data}

||
**Поле**
|
**Тип**
|
**Описание**
||
||
`id`[*](*Поле)
|
String
|
Идентификатор покупки.

Обязательно для заполнения.

Пример: TRX#54321
||
||
`coupon`
|
String
|
Промокод, ассоциированный со всей покупкой целиком
||
||
`goal_id` {#goal_id}
|
Integer
|
Номер [цели](https://yandex.com.tr/support/metrica/ru/general/goals.md). Указывается в том случае, если данное [действие](#action_type) и было целью. 
Цель должна задаваться условием типа [JavaScript-событие](https://yandex.com.tr/support/metrica/ru/general/goals.md).

Номер цели доступен в веб-интерфейсе Яндекс Метрики, в разделе **Настройка** (вкладка **Цели**).
![](../_assets/order-ecommerce.png){.border-yes}
||
||
`revenue`
|
Number
|
Полученный доход.

Если не указан, вычисляется автоматически как сумма цен всех товаров, ассоциированных с покупкой
||
|#

### Данные о промокампаниях {#promo_data}

Объект, описывающий промокампании.

Контейнер такой же, но вместо **productFieldObject** записывается **promoFieldObject**.


#|

### Поля объекта {#promo_data}

||
**Поле**
|
**Тип**
|
**Описание**
||
||
`id`[*](*Поле)
|
String
|
Идентификатор промокампании.

**Обязательно для заполнения**
||
||
`name`
|
String
|
Название промокампании
||
||
`creative`
|
String
|
Название рекламного баннера
||
||
`creative_slot`
|
String
|
Слот рекламного баннера
||
||
`position`
|
String
|
Позиция рекламного баннера
||
|#


## Примеры {#examples}

Для передачи информации нужно на сайте создать скрипт, который будет отвечать за определенное событие (например, формирование заказа) в описанном выше формате. Ниже представлены примеры скриптов для поддерживаемых Метрикой действий.

В примерах предполагается, что [счетчик инициализирован с подключением электронной коммерции](https://yandex.com.tr/support/metrica/ru/data/e-commerce.md), а передача данных производится через [контейнер window.dataLayer](#about).

### Просмотр списка товаров {#product-list}

Данные должны отправляться в момент открытия списка товаров.

```javascript
dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "impressions": [
            {
                "id": "P15432",
                "name": "Футболка",
                "price": 477.60,
                "brand": "Яндекс / Яndex",
                "category": "Одежда / Мужская одежда / Футболки",
                "variant": "Красный цвет",
                "list": "Search",
                "position": 1
            },
            {
                "id": "P15435",
                "name": "Футболка",
                "price": 500.60,
                "brand": "Яндекс / Яndex",
                "category": "Одежда / Мужская одежда / Футболки",
                "variant": "Синий цвет",
                "list": "Search",
                "position": 2
            }
        ]
    }
});
```

### Клик по товару из списка {#click-on-product}

Данные должны передаваться в момент, когда пользователь совершил клик по ссылке товара.

```javascript
dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "click": {
            "products": [
                {
                    "id": "39084",
                    "name": "Термостакан Яндекс",
                    "price": 1089.69,
                    "brand": "Яндекс / Яndex",
                    "category": "Товары для дома / Посуда / Термосы и термокружки",
                    "variant": "Красный цвет",
                    "list": "Search",
                    "position": 1
                }
            ]
        }
    }
});
```

### Просмотр товара {#product-detail}

Данные должны отправляться в момент открытия страницы с карточкой товара.

```javascript
dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "detail": {
            "products": [
                {
                    "id": "P15432",
                    "name": "Футболка",
                    "price": 477.60,
                    "brand": "Яндекс / Яndex",
                    "category": "Одежда / Мужская одежда / Футболки",
                    "variant": "Красный цвет",
                    "list": "Результаты поиска",
                    "position": 1
                }
            ]
        }
    }
});
```

### Добавление товара в корзину {#add}

Данные должны отправляться в момент добавления заказа в корзину. Например, при нажатии кнопки «Добавить в корзину».

```javascript
dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "add": {
            "products": [
                {
                    "id": "43521",
                    "name": "Сумка Яндекс",
                    "price": 654.32,
                    "brand": "Яндекс / Яndex",
                    "category": "Аксессуары / Сумки",
                    "quantity": 1,
                    "list": "Выдача категории",
                    "position": 2
                }
            ]
        }
    }
});
```

### Удаление товара из корзины {#remove}

Данные должны отправляться в момент удаления заказа из корзины.

```javascript
dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "remove": {
            "products": [
                {
                    "id": "15243",
                    "name": "Набор протирашек для экрана телефона - Яндекс",
                    "category": "Аксессуары для мобильного телефона",
                    "quantity": 1,
                    "list": "Аксессуары",
                    "position": 3
                }
            ]
        }
    }
});
```

### Покупка {#purchase}

Данные должны отправляться в момент подтверждения заказа.

```javascript
dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "purchase": {
            "actionField": {
                "id": "TRX987"
            },
            "products": [
                {
                    "id": "25341",
                    "name": "Толстовка Яндекс мужская",
                    "price": 1345.26,
                    "brand": "Яндекс / Яndex",
                    "category": "Одежда / Мужская одежда / Толстовки и свитшоты",
                    "variant": "Оранжевый цвет",
                    "quantity": 1,
                    "list": "Одежда",
                    "position": 1
                },
                {
                    "id": "25314",
                    "name": "Толстовка Яндекс женская",
                    "price": 1543.62,
                    "brand": "Яндекс / Яndex",
                    "category": "Одежда / Женская одежда / Толстовки и свитшоты",
                    "variant": "Белый цвет",
                    "quantity": 3,
                    "list": "Толстовки",
                    "position": 2
                }
            ]
        }
    }
});
```

### Просмотр внутренней рекламы {#adv-view}

Данные должны отправляться, когда пользователь просмотрел рекламные материалы.

```javascript
dataLayer.push({
    "ecommerce": {
        "promoView": {
            "promotions": [
                {
                    "id": "BF001",
                    "name": "Черная пятница",
                    "creative": "Баннер_1",
                    "position": "Слот1"
                },
                {
                    "id": "SUMMER002",
                    "name": "Летние распродажи",
                    "creative": "Баннер_3",
                    "position": "Слот2"
                }
            ]
        }
    }
});
```

### Клики внутренней рекламы {#adv-click}

Данные должны отправляться, когда пользователь кликнул или совершил другое целевое действие с рекламным материалом.

```javascript
dataLayer.push({
    "ecommerce": {
        "promoClick": {
            "promotions": [
                {
                    "id": "BF001",
                    "name": "Черная пятница",
                    "creative": "Баннер_1",
                    "position": "Слот1"
                }
            ]
        }
    }
});
```

### Узнайте больше

- [Проверка настройки электронной коммерции](https://yandex.com.tr/support/metrica/ru/ecommerce/check.md)
- [Решение проблем](https://yandex.com.tr/support/metrica/ru/ecommerce/troubleshooting.md)


<!-- source: ru/_includes/buttons/chat-button.md -->
[Написать в чат](https://yandex.com.tr/chat/#/user/036e6a02-3620-9cdc-4c5e-a34667a7379e?utm_source=spravka){.button}

<!-- source: ru/_includes/styles/href-to-button.md -->

<!-- endsource: ru/_includes/styles/href-to-button.md -->
<!-- endsource: ru/_includes/buttons/chat-button.md -->

<!-- source: ru/_includes/reports/support-button.md -->
<div class="cut-button">

{% cut "Написать письмо" %}

<!-- source: ru/_includes/popup/id-popup/wrong-sup.md -->
Обратите внимание: служба поддержки не обзванивает пользователей. Не следуйте указаниям людей, которые вам звонят и представляются службой поддержки Яндекс Метрики.
<!-- endsource: ru/_includes/popup/id-popup/wrong-sup.md -->

<div style="padding: 15px;
     margin: 10px 0;
     background: #FFFFFF;
     border-radius: 10px;
     border: 1px solid var(--g-color-line-generic);">
  <iframe style="background: #FFFFFF;"
        height="700"
        width="100%"
        frameborder="0"
        src="https://forms.yandex.com.tr/surveys/1705/?&iframe=1&lang=tr">
  </iframe>
</div>

{% endcut %}

</div>



<!-- source: ru/_includes/styles/cut-button.md -->

<!-- endsource: ru/_includes/styles/cut-button.md -->

<!-- source: ru/_includes/styles/href-to-button.md -->

<!-- endsource: ru/_includes/styles/href-to-button.md -->
<!-- endsource: ru/_includes/reports/support-button.md -->

<!-- source: ru/_includes/footer-links.md -->
- - -

<div class="borderless-table">

#|
||
Полезные ссылки

- [Демосчетчик](https://metrica.yandex.com.tr/r/dashboard?)
- [Добавить счетчик](https://metrica.yandex.com.tr/add/)
- [Бесплатная настройка счетчика](https://yandex.com.tr/promo/freeservice/metrica?utm_source=help_metrica_tr&utm_medium=cpc&utm_campaign=1)
- [API Яндекс Метрики](https://tech.yandex.com.tr/metrika/)
- [Предложить идею](https://yandex.com.tr/support/metrica/troubleshooting/idea.html)
- [Обсудить в Telegram](https://t.me/yandexmetrika)
|
Онлайн-обучение

- [Получить сертификат по Яндекс Метрике](https://yandex.ru/adv/expert/exam/metrika/?utm_source=metrika_help&utm_medium=web&utm_campaign=static&utm_content=useful_links)


- [Пройти обучающий курс](https://yandex.com/adv/edu/online/metrika?utm_source=metrika_help&utm_medium=web&utm_campaign=static&utm_content=useful_links)

||
|#

</div>

<!-- source: ru/_includes/styles/table-style.md -->

<!-- endsource: ru/_includes/styles/table-style.md -->
<!-- endsource: ru/_includes/footer-links.md -->

[*Параметр]: Обязательный параметр.

[*Обязательный_параметр]: Обязательный параметр для передачи информации о покупке.

[*Указать]: **Необходимо обязательно указать или id, или name**.

[*Поле]: Обязательно для заполнения.