Метрика

Електронна комерція

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

Яндекс.Метрика дає можливість збору та аналізу даних, що належать до сфери електронної комерції — Ecommerce.

Увага! Раніше для передавання параметрів про замовлення використовувався попередньо визначений набір параметрів візитів. Цей спосіб застарів. Він підтримується у режимі зворотної сумісності, але його не рекомендовано до застосування. Ecommerce-складова Метрики дозволяє відстежувати більшу кількість даних і надає значно досконаліші інструменти для їх аналізу.

Підключення Ecommerce

Для підключення Ecommerce необхідно:

  1. У розділі Налаштування (Код лічильника) увімкнути опцію Надсилання у Метрику даних електронної комерції. При цьому в код лічильника буде додано контейнер для збирання даних dataLayer (за замовчуванням).

  2. Встановити (або оновити) код лічильника на сторінках вашого сайту, які містять інформацію про товари і замовлення (характеристики товару, кнопка «Додати у кошик» тощо).
  3. Розмістити контейнер даних dataLayer на сторінках сайту і налаштувати передавання подій, що відбуваються з товарами, у Яндекс.Метрику.

Надання та передача даних

В 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 та увімкнули Ecommerce у Яндекс.Метриці, остання також почне збирати дані.

Ecommerce-об'єкт має такий вигляд:

window.dataLayer.push({
    "ecommerce
[no-highlight[

Object

Обов‘язкове поле-контейнер

]no-highlight]
": { "currencyCode
[no-highlight[

String

Трилітерний код валюти за ISO 4217.

Список підтримуваних валют
  • UAH — українська гривня;
  • RUB — російський рубль;
  • BYN — білоруський рубль;
  • EUR — євро;
  • USD — долар США;
  • GBP — фунт стерлінгів;
  • TRY — турецька ліра;
  • AUD — австралійський долар;
  • CAD — канадський долар;
  • CNY — китайський юань;
  • KZT — казахстанський теньге;
  • TMT — туркменський манат;
  • LVL — латвійський лат;
  • MDL — молдавський лей;
  • CHF — швейцарський франк;
  • THB — тайський бат;
  • YND — умовні одиниці.

Якщо передається інша валюта, буде надіслано нульові значення замість валюти і суми.

]no-highlight]
": "RUB", "<actionType>
[no-highlight[

Назва поля (підставляється замість <actionType>) є ідентифікатором дії, виконаної із набором товарів.

Можливі значення:

  • detail — перегляд повного опису (картки) товару;
  • add — додавання товару у кошик;
  • remove — видалення товару із кошика;
  • purchase — купівля.
]no-highlight]
" : { "actionField
[no-highlight[

Object

Об‘єкт виду <actionField>. Додаткові дані, що описують виконану дію.

Обробляється, лише якщо дія — купівля (<actionType>purchase).

]no-highlight]
" : <actionField>, "products
[no-highlight[

Array

Список описів товарів, з якими було виконано зазначену дію. Описи продуктів є об‘єктами типу <productFieldObject>.

]no-highlight]
" : [<productFieldObject>, <productFieldObject>, ...] } } });
ПолеТипОпис
ecommerce *

Object

Обов'язкове поле-контейнер

currencyCode

String

Трилітерний код валюти за ISO 4217.

Список підтримуваних валют
  • UAH — українська гривня;
  • RUB — російський рубль;
  • BYN — білоруський рубль;
  • EUR — євро;
  • USD — долар США;
  • GBP — фунт стерлінгів;
  • TRY — турецька ліра;
  • AUD — австралійський долар;
  • CAD — канадський долар;
  • CNY — китайський юань;
  • KZT — казахстанський теньге;
  • TMT — туркменський манат;
  • LVL — латвійський лат;
  • MDL — молдавський лей;
  • CHF — швейцарський франк;
  • THB — тайський бат;
  • YND — умовні одиниці.

Якщо передається інша валюта, буде надіслано нульові значення замість валюти і суми.

<actionType> *

Назва поля (підставляється замість <actionType>) є ідентифікатором дії, виконаної із набором товарів.

Можливі значення:

  • detail — перегляд повного опису (картки) товару;
  • add — додавання товару у кошик;
  • remove — видалення товару із кошика;
  • purchase — купівля.
actionField

Object

Об'єкт виду <actionField>. Додаткові дані, що описують виконану дію.

Обробляється, лише якщо дія — купівля (<actionType>purchase).

products *

Array

Список описів товарів, з якими було виконано зазначену дію. Описи продуктів є об'єктами типу <productFieldObject>.

* Обов'язковий параметр.

Дані про товар

Об'єкт, що описує окремий товар.

Структура об'єкта, що описує товар, позначається як <productFieldObject>.

Таблиця 1. Поля об'єкта

ПолеТипОпис
id *
[no-highlight[

Потрібно обов‘язково зазначити або id, або name.

]no-highlight]

String

Ідентифікатор товару. Наприклад, SKU.

Потрібно обов'язково зазначити або id, або name.

name *
[no-highlight[

Потрібно обов‘язково зазначити або name, або id.

]no-highlight]

String

Назва товару. Наприклад, "Футболка".

Потрібно обов'язково зазначити або name, або id.

brand

String

Бренд, торгова марка, асоційована з товаром. Наприклад, "Яндекс / Яndex".

category

String

Категорія, до якої належить товар.

Підтримується ієрархія категорій до 5 рівнів вкладеності. Роздільником рівнів є символ /. Наприклад, "Одяг/Чоловічий одяг/Футболки".

coupon

String

Промокод, асоційований з товаром. Наприклад, "PARTNER_SITE_15".

position

Number

Розташування товару у списку. Наприклад, 2.

price

Number

Ціна одиниці товару.

quantity

Integer

Кількість одиниць товару.

variant

String

Різновид товару. Наприклад, "Червоний колір".

Дані про дію

Об'єкт, що містить дані про дію, виконану з товаром або набором товарів.

Обробляється, лише якщо дія — купівля (<actionType>purchase).

Структура об'єкта, що описує дію, позначається як <actionField>.

Таблиця 2. Поля об'єкта

ПолеТипОпис
id *
[no-highlight[

Обов‘язкове для заповнення.

]no-highlight]

String

Ідентифікатор купівлі.

Обов'язкове для заповнення.

Приклад: TRX#54321

coupon

String

Промокод, асоційований з усієї покупкою повністю.

goal_id

String

Числовий ідентифікатор цілі (ID цілі). Зазначається у тому випадку, коли ця дія і була ціллю.

Ціль повинна задаватися умовою типу JavaScript-подія .

Як дізнатися ID цілі?
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": "Аксесуари для мобільного телефона"
                }
            ]
        }
    }
});

Купівля

dataLayer.push({
    "ecommerce": {
        "purchase": {
            "actionField": {
                "id" : "TRX987",
                "goal_id" : "1234567"
},
"products": [
{
"id": "25341",
                    "name": "Толстовка Яндекс чоловіча",
                    "price": 1345.26,
                    "brand": "Яндекс / Яndex",
                    "category": "Одяг/Чоловічий одяг/Толстовки і світшоти",
                    "variant": "Оранжевий колір"
                },
                {
                    "id": "25314",
                    "name": "Толстовка Яндекс жіноча",
                    "price": 1543.62,
                    "brand": "Яндекс / Яndex",
                    "category": "Одяг/Жіночий одяг/Толстовки і світшоти",
                    "variant": "Білий колір",
                    "quantity": 3
                }
            ]
        }
    }
});