Как подключить Электронную коммерцию
Яндекс.Метрика предоставляет возможность сбора и анализа данных, относящихся к области электронной коммерции — Ecommerce. Переданная информация отображается в группе отчетов Электронная коммерция. При первой передаче данных отчеты станут доступны в течение нескольких часов.
Подключение Ecommerce
В разделе Электронная коммерция. При этом в код счетчика будет добавлен контейнер для сбора данных
включите опциюdataLayer
(по умолчанию).- Установите или обновите код счетчика на страницах вашего сайта, которые содержат информацию о товарах и заказах (характеристики товара, кнопка «Добавить в корзину» и пр.).
- Разместите контейнер данных dataLayer на страницах сайта и настройте передачу событий, происходящих с товарами, в Яндекс.Метрику.
Также вы можете подключить Электронную коммерцию с помощью CMS. Выберите подходящий для вашего сайта плагин из списка интеграций.
Представление и передача данных
В Ecommerce любой товар представляет собой объект, с которым производятся определенные действия. Например, просмотр полного описания товара или добавление в корзину. Эти данные передаются в виде JavaScript-объектов, содержащих идентификатор действия и список описаний товаров, с которыми это действие произведено. В контексте JavaScript API будем называть такие объекты Ecommerce-объектами.
Чтобы передать данные в виде Ecommerce-объектов Яндекс.Метрике, необходимо поместить их в специальный JavaScript-массив методом push. Такой массив будем называть контейнером данных.
Контейнер данных должен находиться в глобальном пространстве имен, а его имя соответствовать имени, заданному при настройке счетчика или при инициализации счетчика. Если контейнер данных имеет название dataLayer
или счетчик Метрики был инициирован со значением параметра ecommerce равным true
, то предполагается, что контейнером данных является массив window.dataLayer
.
<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
</script>
...
<script type="text/javascript">
window.dataLayer.push ({...});
</script>
Имя контейнера данных и структура вкладываемых в него Ecommerce-объектов соответствует аналогичным сущностям в Google Analytics Enhanced Ecommerce. Это означает, что если вы уже настроили отправку данных в Google Analytics Enhanced Ecommerce, в том числе через Global Site Tag, и включили Ecommerce в Яндекс.Метрике, последняя также начнет собирать данные.
Ecommerce-объект имеет следующий вид:
window.dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"<actionType>" : {
"actionField" : <actionField>,
"products" : [<productFieldObject>, <productFieldObject>, ...]
}
}
});
Поле | Тип | Описание |
---|---|---|
ecommerce * | Object | Обязательное поле-контейнер |
currencyCode | String | Трехбуквенный код валюты по ISO 4217. Если передается иная валюта, будут отправлены нулевые значения вместо валюты и суммы. |
<actionType> * | — | Название поля (подставляемое вместо <actionType>) представляет собой идентификатор действия, произведенного с набором товаров. Возможные значения:
Если в Метрику передана информация об удалении товара, в отчете может появиться отрицательное количество товаров (при вычислениях количество удаленных из корзины товаров вычитается из общего числа добавленных товаров). Если при этом передана стоимость товара, в отчете она так же отобразится отрицательной. |
actionField ** | Object | Объект вида <actionField>. Дополнительные данные, описывающие произведенное действие. Обрабатывается, только если действие — покупка ( |
products * | Array | Список описаний товаров, с которыми было произведено указанное действие. Описания продуктов представляют собой объекты вида <productFieldObject> |
Поле | Тип | Описание |
---|---|---|
ecommerce * | Object | Обязательное поле-контейнер |
currencyCode | String | Трехбуквенный код валюты по ISO 4217. Если передается иная валюта, будут отправлены нулевые значения вместо валюты и суммы. |
<actionType> * | — | Название поля (подставляемое вместо <actionType>) представляет собой идентификатор действия, произведенного с набором товаров. Возможные значения:
Если в Метрику передана информация об удалении товара, в отчете может появиться отрицательное количество товаров (при вычислениях количество удаленных из корзины товаров вычитается из общего числа добавленных товаров). Если при этом передана стоимость товара, в отчете она так же отобразится отрицательной. |
actionField ** | Object | Объект вида <actionField>. Дополнительные данные, описывающие произведенное действие. Обрабатывается, только если действие — покупка ( |
products * | Array | Список описаний товаров, с которыми было произведено указанное действие. Описания продуктов представляют собой объекты вида <productFieldObject> |
* Обязательный параметр.
** Обязательный параметр для передачи информации о покупке.
Данные о товаре
Объект, описывающий отдельный товар.
Структура объекта, описывающего товар, обозначается как <productFieldObject>.
Поле | Тип | Описание |
---|---|---|
id * | String | Идентификатор товара. Например, SKU. Необходимо обязательно указать или id или name |
name * | String | Название товара. Например, "Футболка" Необходимо обязательно указать или name или id |
brand | String | Бренд, торговая марка, ассоциированная с товаром. Например, "Яндекс / Яndex" |
category | String | Категория, к которой относится товар. Поддерживается иерархия категорий до 5 уровней вложенности. Разделителем уровней является символ /. Например, "Одежда/Мужская одежда/Футболки" |
coupon | String | Промокод ассоциированный с товаром. Например, "PARTNER_SITE_15" |
position | Integer | Позиция товара в списке. Например, 2 |
price | Number | Цена единицы товара |
quantity | Integer | Количество единиц товара |
variant | String | Разновидность товара. Например, "Красный цвет" |
Поле | Тип | Описание |
---|---|---|
id * | String | Идентификатор товара. Например, SKU. Необходимо обязательно указать или id или name |
name * | String | Название товара. Например, "Футболка" Необходимо обязательно указать или name или id |
brand | String | Бренд, торговая марка, ассоциированная с товаром. Например, "Яндекс / Яndex" |
category | String | Категория, к которой относится товар. Поддерживается иерархия категорий до 5 уровней вложенности. Разделителем уровней является символ /. Например, "Одежда/Мужская одежда/Футболки" |
coupon | String | Промокод ассоциированный с товаром. Например, "PARTNER_SITE_15" |
position | Integer | Позиция товара в списке. Например, 2 |
price | Number | Цена единицы товара |
quantity | Integer | Количество единиц товара |
variant | String | Разновидность товара. Например, "Красный цвет" |
Данные о действии
Объект, содержащий данные о действии, произведенном с товаром или набором товаров.
Обрабатывается только если действие — покупка ( <actionType>
— purchase
).
Структура объекта, описывающего действие, обозначается как <actionField>.
При передаче данных о действии Метрика создает цель. Она позволяет получать данные о доходе с рекламной кампании Директа. В Директе, в списке доступных целей, такая цель отображается как «eCommerce: Покупка (счетчик № <ID счетчика>)». При этом вы можете отслеживать достижение цели самостоятельно, передавая поле goal_id.
Поле | Тип | Описание |
---|---|---|
id * | String | Идентификатор покупки. Обязательно для заполнения. Пример: TRX#54321 |
coupon | String | Промокод, ассоциированный со всей покупкой целиком |
goal_id | Integer | Номер цели. Указывается в том случае, если данное действие и было целью. Цель должна задаваться условием типа JavaScript-событие. Номер цели доступен в веб-интерфейсе Яндекс.Метрики, в разделе Настройка (вкладка Цели). ![]() |
revenue | Number | Полученный доход. Если не указан, вычисляется автоматически как сумма цен всех товаров, ассоциированных с покупкой |
Поле | Тип | Описание |
---|---|---|
id * | String | Идентификатор покупки. Обязательно для заполнения. Пример: TRX#54321 |
coupon | String | Промокод, ассоциированный со всей покупкой целиком |
goal_id | Integer | Номер цели. Указывается в том случае, если данное действие и было целью. Цель должна задаваться условием типа JavaScript-событие. Номер цели доступен в веб-интерфейсе Яндекс.Метрики, в разделе Настройка (вкладка Цели). ![]() |
revenue | Number | Полученный доход. Если не указан, вычисляется автоматически как сумма цен всех товаров, ассоциированных с покупкой |
Примеры
Во всех примерах предполагается, что счетчик инициализирован с подключением Ecommerce, а передача данных производится через контейнер window.dataLayer.
Просмотр полного описания товара
dataLayer.push({
"ecommerce": {
"detail": {
"products": [
{
"id": "P15432",
"name" : "Футболка",
"price": 477.60,
"brand": "Яндекс / Яndex",
"category": "Одежда/Мужская одежда/Футболки",
"variant" : "Красный цвет"
},
{
"name": "Значок Я",
"price": 50,
}
]
}
}
});
Добавление товара в корзину
dataLayer.push({
"ecommerce": {
"add": {
"products": [
{
"id": "43521",
"name": "Сумка Яндекс",
"price": 654.32,
"brand": "Яндекс / Яndex",
"category": "Аксессуары/Сумки",
"quantity": 2
}
]
}
}
});
Удаление товара из корзины
dataLayer.push({
"ecommerce": {
"remove": {
"products": [
{
"id": "15243",
"name": "Набор протирашек для экрана телефона - Яндекс",
"category": "Аксессуары для мобильного телефона",
"quantity": 1
}
]
}
}
});
Покупка
dataLayer.push({
"ecommerce": {
"purchase": {
"actionField": {
"id" : "TRX987"
},
"products": [
{
"id": "25341",
"name": "Толстовка Яндекс мужская",
"price": 1345.26,
"brand": "Яндекс / Яndex",
"category": "Одежда/Мужская одежда/Толстовки и свитшоты",
"variant": "Оранжевый цвет"
},
{
"id": "25314",
"name": "Толстовка Яндекс женская",
"price": 1543.62,
"brand": "Яндекс / Яndex",
"category": "Одежда/Женская одежда/Толстовки и свитшоты",
"variant": "Белый цвет",
"quantity": 3
}
]
}
}
});
Решение проблем
Если информация, передаваемая с помощью Ecommerce, не отображается в отчетах Яндекс.Метрики, обратите внимание на следующие причины:
Ошибки в передаваемых полях. Проверить корректность данных можно с помощью команды JSON.stringify(dataLayer) в консоли браузера. Для проверки рекомендуем обратиться к вебмастеру или другому специалисту, ответственному за поддержку сайта.
- Поле actionField не передает данные. Для передачи информации о покупке необходимо заполнить поле actionField.
- Счетчик может быть заблокирован расширением Adblock Plus.
- Посетитель ушел со страницы сайта до того, как загрузился счетчик.
- На странице установлен циклический редирект.
| Обучающее видео. Проверка отправки данных электронной коммерции. Посмотреть видео |
| Обучающее видео. Проверка отправки данных электронной коммерции. Посмотреть видео |