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

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

Примітка. Контейнер даних не повинен містити більш ніж 2048 символів.

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

window.dataLayer.push({
    "ecommerce": {
        "currencyCode": "RUB",
        "<actionType>" : {
            "actionField" : <actionField>,
            "products" : [<productFieldObject>, <productFieldObject>, ...]
        }
    }
});
Поле Тип Опис
ecommerce *

Object

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

currencyCode

String

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

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

<actionType> *

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

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

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

Якщо в Метрику передано інформацію про видалення товару, у звіті може з'явитися від'ємна кількість товарів (під час обчислення кількість видалених із кошика товарів віднімається від загальної кількості доданих товарів). Якщо при цьому передано вартість товару, у звіті вона також відобразитися від'ємною.

actionField

Object

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

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

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

Number

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

price

Number

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

quantity

Integer

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

variant

String

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

Дані про дію

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

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

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

Під час передавання даних про дію Метрика створює ціль. Вона дає можливість отримувати дані про дохід з рекламної кампанії Директа. У Директі, у списку доступних цілей, таку ціль відображено як «eCommerce: Купівля (лічильник № <ID лічильника>)». При цьому ви можете відстежувати досягнення цілі самостійно, передаючи поле goal_id.

Поля об'єкта
Поле Тип Опис
id *

String

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

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

Приклад: TRX#54321

coupon

String

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

goal_id

String

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

Ціль повинна задаватися умовою типу 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.
  • Відвідувач залишив сторінку сайту до того, як завантажився лічильник.
  • На сторінці встановлено циклічний редирект.