Розширена електронна торгівля (Enhanced Ecommerce) Google Analytics – це можливість відстежувати дії користувача на сайті, починаючи від перегляду товару, закінчуючи його замовленням на сайті, відстежити ланцюжок взаємодій на рівні великих даних, зробити системні висновки та ухвалити рішення про структурні зміни. Найпросунутіша аналітика для інтернет-магазинів.
Наразі поняття розширена електронна торгівля вже немає. Цей термін прийшов до нас із Google Analytics Universal, але ми його вирішили залишити, оскільки стара версія аналітики була для багатьох класичною у розумінні та алгоритмах.
Налаштування розширеної електронної торгівлі Google Analytics 4
Розширена електронна торгівля в Google Analytics 4 за своєю суттю нічим не відрізняється від версії Universal Analytics, тільки тут не потрібно окремо включати опцію розширеної електронної торгівлі. Усі події у версії GA4 можна одразу налаштувати за замовчуванням, без доопрацювань у поточному поданні.
Налаштування здійснюється 2-ма способами:
- через gtag (дані надсилаються безпосередньо до Google Analytics 4);
- через Data Layer (дані надсилаються до бібліотеки Data Layer, з якої через обробник події в Tag Manager потрапляють до Google Analytics 4).
Ми з Вами розглядатимемо 2-й спосіб, оскільки практично всі сайти працюють з Tag Manager.
У Google Analytics 4 кожна подія має унікальну назву, яка рекомендується системою. Зробити все через один event, як у версії Universal, не вдасться.
Отже, пройдемося подіями.
Перегляди та покази товарів чи позицій зі списку
Подія: view_item_list.
Розміщення: будь-який список товарів.
Опис: показ товарів у каталозі або в результаті пошуку конкретного товару, або при відкритті категорії.
Спрацювання події: у момент показу товару у видимій області.
// Measure product views / impressions
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "view_item_list",
ecommerce: {
items: [
{
item_name: "Triblend Android T-Shirt", // Name or ID is required.
item_id: "12345",
price: 15.25,
item_brand: "Google",
item_category: "Apparel", //// Головна категорія
item_category2: "Mens", //// Підкатегорія
item_category3: "Shirts", //// Підпідкатегорія
item_category4: "Tshirts", //// Підпідпідкатегорія
item_variant: "Gray", /// /Варіант
item_list_name: "Search Results", /////// Тут задається місце (список), де показується товар (головна сторінка, категорія, результат пошуку, фільтр товарів)
index: 1, //// Позиція товару у списку
quantity: 1
},
{
item_name: "Donut Friday Scented T-Shirt",
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
item_list_name: "Search Results",
index: 2,
}]
}
});
Кліки по товару зі списку позицій
Подія: select_item.
Розміщення: місце, звідки було здійснено клік по товару.
Опис: передача даних про кліки та переходи в товар.
Спрацювання події: у момент кліка на картку товару.
/**
* Call this function when a user clicks on a product link.
* @param {Object} productObj An object that represents the product that is clicked.
*/
function onProductClick(productObj) {
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "select_item",
ecommerce: {
items: [{
item_name: productObj.name, // Name or ID is required.
item_id: productObj.id,
item_brand: productObj.brand,
item_category: productObj.category,
item_category2: productObj.category_2,
item_category3: productObj.category_3,
item_category4: productObj.category_4,
item_variant: productObj.variant,
item_list_name: productObj.list_name, /////// Тут задається місце (список), звідки був клік по товару (категорія, результат пошуку, фільтр)
index: productObj.index, ///// Позиція товару у списку
price: productObj.price
}]
}
});
}
Перегляди інформації про товар або позицію
Подія: view_item.
Розміщення: картка товару.
Опис: перегляд товару.
Спрацювання події: у момент перегляду фото чи характеристик товару.
// Measure a view of product details. This example assumes the detail view occurs on pageload,
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "view_item",
ecommerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
quantity: 1
}]
}
});
Додавання товару до кошика
Подія: add_to_cart.
Розміщення: картка товару чи список товарів, де є кнопка купити.
Опис: додавання товару до кошика.
Спрацювання події: в момент натискання на кнопку купити.
// Measure when a product is added to a shopping cart
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "add_to_cart",
ecommerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: "33.75",
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
item_list_name: "Search Results", //// Включаємо цей параметр, якщо натискають “купити” зі списку товарів
index: 1, //// Позиція у списку, включаємо цей параметр, якщо натискають “купити” зі списку товарів
}]
}
});
Видалення товару з кошика
Подія: remove_from_cart.
Розміщення: кошик.
Опис: видалення товарів з кошика.
Спрацювання події: у момент натискання на хрестик у кошику або кнопку "видалити" навпроти товару.
// Measure the removal of a product from a shopping cart.
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "remove_from_cart",
ecommerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_variant: "Black",
}]
}
});
Оформлення покупки
Подія: begin_checkout.
Розміщення: кошик.
Опис: відправка інформації про початок оформлення замовлення.
Спрацювання події: у момент, коли користувач відвідує кошик для оформлення замовлення.
/**
* A function to handle a click on a checkout button.
*/
function onCheckout() {
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "begin_checkout",
ecommerce: {
items: [{
item_name: "Donut Friday Scented T-Shirt", // Name or ID is required.
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Mens",
item_category3: "Shirts",
item_category4: "Tshirts",
item_variant: "Black",
quantity: 1
}]
}
});
}
Якщо оформлення в кошику проходить у кілька етапів, то в Google Analytics 4 це ділиться на такі додаткові events:
- add_payment_info (додавання інформації про оплату);
- add_shipping_info (додавання інформації про доставку).
Покупка
Подія: purchase.
Розміщення: сторінка подяки.
Опис: відправка інформації про замовлення.
Спрацювання події: у момент, коли замовлення прийнято.
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "purchase",
ecommerce: {
transaction_id: "T12345",
affiliation: "Online Store",
value: "59.89",
tax: "4.90",
shipping: "5.99",
currency: "EUR",
coupon: "SUMMER_SALE",
items: [{
item_name: "Triblend Android T-Shirt",
item_id: "12345",
price: "15.25",
item_brand: "Google",
item_category: "Apparel",
item_variant: "Gray",
quantity: 1
}, {
item_name: "Donut Friday Scented T-Shirt",
item_id: "67890",
price: 33.75,
item_brand: "Google",
item_category: "Apparel",
item_variant: "Black",
quantity: 1
}]
}
});
Вище - це надсилання даних по протоколу Data Layer. Це половина справи. Ідемо далі.
Що потрібно зробити в Tag Manager для розширеної електронної торгівлі Google Analytics 4?
- Створити теги для кожної з подій;
- Для всіх подій, крім purchase, задати параметр "items" зі значенням ecommerce.items
- Для purchase додатково прошиваються всі параметри на замовлення.
Теги в TGM будуть виглядати приблизно так:

Як виглядають звіти розширеної електронної торгівлі у GA4?
Як таких, готових звітів у системі поки що 1-2. Кастомізовані поки що працюють із серйозними помилками, тому не наводимо їх у приклад, щоб не витрачати ваш час.
Один із готових звітів “шлях до покупки” виглядає так:

За більш детальною інформацією звертайтесь за контактами агентства. Крім того, рекомендуємо до перегляду відео про користь розширеної електронної торгівлі в просуванні інтернет-магазинів.