🛍️ Интернет-магазин
Полное руководство по настройке аналитики для интернет-магазина: отслеживание товаров, корзины, заказов, воронка продаж и анализ покупательского поведения
- Полную картину пути покупателя от просмотра до покупки
- Анализ воронки продаж и конверсии на каждом шаге
- Данные о популярных товарах и категориях
- Информацию о повторных покупках и LTV клиентов
- Географию продаж и распределение по устройствам
Типовая воронка интернет-магазина
Какие события отправлять
| Событие | Описание | Обязательность | Ключевые свойства |
|---|---|---|---|
page_view |
Просмотр любой страницы сайта | Рекомендуется | page, title, referrer |
product_view |
Просмотр карточки товара | Обязательно для воронки | product_id, name, price, category |
add_to_cart |
Добавление товара в корзину | Обязательно для воронки | product_id, price, quantity |
remove_from_cart |
Удаление товара из корзины | Опционально | product_id |
checkout_start |
Начало оформления заказа | Обязательно для воронки | cart_id, total |
purchase |
Успешная оплата заказа | Обязательно | order_id, revenue, items |
Метаданные для интернет-магазина
// Просмотр товара (шаг 1 воронки)
{
"event": "product_view",
"user_id": "user_123",
"properties": {
"product_id": "prod_456",
"product_name": "Футболка Oversize",
"price": 1999,
"category": "Одежда",
"brand": "Brand Name"
},
"_metadata": {
"funnel_sales_step": 1,
"funnel_sales_name": "Просмотр товара",
"event_display_name": "Просмотр товара",
"event_color": "#2A6DF4"
}
}
// Добавление в корзину (шаг 2 воронки)
{
"event": "add_to_cart",
"user_id": "user_123",
"properties": {
"product_id": "prod_456",
"product_name": "Футболка Oversize",
"price": 1999,
"quantity": 2,
"cart_id": "cart_789"
},
"_metadata": {
"funnel_sales_step": 2,
"funnel_sales_name": "Корзина",
"event_display_name": "Добавление в корзину",
"event_color": "#fd7e14"
}
}
// Покупка (шаг 4 воронки)
{
"event": "purchase",
"user_id": "user_123",
"timestamp": "2026-03-19T15:30:00Z",
"properties": {
"order_id": "ORD-2025-001",
"revenue": 5499,
"items": [
{
"id": "prod_456",
"name": "Футболка Oversize",
"price": 1999,
"quantity": 2,
"category": "Одежда"
},
{
"id": "prod_789",
"name": "Джинсы",
"price": 3500,
"quantity": 1,
"category": "Одежда"
}
]
},
"_metadata": {
"funnel_sales_step": 4,
"funnel_sales_name": "Покупка",
"event_display_name": "Покупка",
"event_color": "#28a745",
"is_order": true,
"order_revenue_field": "revenue",
"order_id_field": "order_id",
"order_items_field": "items"
}
}
Ключевые метрики для интернет-магазина
💰 Выручка и заказы
- Общая выручка — сумма всех заказов за период
- Количество заказов — число успешных покупок
- Средний чек (AOV) — средняя сумма одного заказа
- Динамика по дням/неделям/месяцам — графики выручки
📊 Воронка продаж
- Конверсия из просмотра в корзину — % добавлений
- Конверсия из корзины в оформление — % начавших оформление
- Конверсия в покупку — % завершенных заказов
- Брошенные корзины — где теряем покупателей
👥 Клиенты
- Новые vs вернувшиеся — соотношение покупателей
- Повторные покупки — % клиентов с >1 заказом
- LTV (Lifetime Value) — сколько приносит клиент за все время
- География — распределение по странам и городам
📦 Товары
- Популярные товары — топ по количеству продаж
- Популярные категории — какие категории лидируют
- Товары с высоким отказом — часто добавляют, но не покупают
- Cross-sell — что покупают вместе
Атрибуты клиентов для e-commerce
Сохраняйте информацию о покупателях для сегментации и персонализации:
{
"event": "user_data",
"user_id": "user_123",
"attributes": {
"email": "customer@example.com",
"phone": "+79001234567",
"name": "Иван Петров",
"birth_date": "1990-01-01",
"city": "Москва",
"address": "ул. Ленина, д. 1, кв. 1",
"total_orders": 23,
"total_spent": 156000,
"avg_order_value": 6782,
"last_order_date": "2026-03-15",
"preferred_category": "Электроника",
"loyalty_level": "gold",
"_metadata": {
"email": {
"attribute_display_name": "Email",
"attribute_category": "Контакты"
},
"phone": {
"attribute_display_name": "Телефон",
"attribute_category": "Контакты"
},
"total_spent": {
"attribute_display_name": "Всего потрачено",
"attribute_category": "Финансы",
"attribute_format": "currency"
},
"avg_order_value": {
"attribute_display_name": "Средний чек",
"attribute_category": "Финансы",
"attribute_format": "currency"
},
"loyalty_level": {
"attribute_display_name": "Уровень лояльности",
"attribute_category": "Лояльность",
"attribute_color": "#fd7e14"
}
}
}
}
Анализ товаров
Для детального анализа товаров передавайте массив items в событии покупки. Это позволит получить:
- Популярные товары — по количеству продаж
- Популярные категории — по выручке
- Средняя цена товара — по категориям
- Товары, которые часто покупают вместе (ассоциативный анализ)
Пример данных о товарах
Футболка Oversize
Джинсы
Наушники
Пример полной интеграции на JavaScript
class EcommerceTracker {
constructor(apiKey, sessionId) {
this.apiKey = apiKey;
this.apiUrl = 'https://api.instantbase.online/v1/track';
this.sessionId = sessionId || this.generateSessionId();
this.userId = null;
}
generateSessionId() {
return 'sess_' + Math.random().toString(36).substr(2, 9);
}
setUserId(userId) {
this.userId = userId;
}
async track(event, properties = {}, metadata = {}) {
const data = {
event,
timestamp: new Date().toISOString(),
session_id: this.sessionId,
properties
};
if (this.userId) {
data.user_id = this.userId;
} else {
data.anonymous_id = this.sessionId;
}
if (Object.keys(metadata).length > 0) {
data._metadata = metadata;
}
try {
const response = await fetch(this.apiUrl, {
method: 'POST',
headers: {
'X-API-Key': this.apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
return await response.json();
} catch (error) {
console.error('Failed to track event:', error);
}
}
// Просмотр страницы
trackPageView(page, title, referrer) {
return this.track('page_view', {
page,
title,
referrer: referrer || document.referrer
});
}
// Просмотр товара
trackProductView(product) {
return this.track('product_view', {
product_id: product.id,
product_name: product.name,
price: product.price,
category: product.category,
brand: product.brand
}, {
funnel_sales_step: 1,
funnel_sales_name: 'Просмотр товара'
});
}
// Добавление в корзину
trackAddToCart(product, quantity = 1) {
return this.track('add_to_cart', {
product_id: product.id,
product_name: product.name,
price: product.price,
quantity,
cart_id: this.cartId
}, {
funnel_sales_step: 2,
funnel_sales_name: 'Корзина'
});
}
// Начало оформления заказа
trackCheckoutStart(cartId, total) {
this.cartId = cartId;
return this.track('checkout_start', {
cart_id: cartId,
total
}, {
funnel_sales_step: 3,
funnel_sales_name: 'Оформление'
});
}
// Покупка
trackPurchase(order) {
return this.track('purchase', {
order_id: order.id,
revenue: order.total,
items: order.items
}, {
funnel_sales_step: 4,
funnel_sales_name: 'Покупка',
is_order: true
});
}
// Регистрация пользователя (склейка профилей)
trackSignup(userId, userData) {
this.setUserId(userId);
return this.track('signup', {}, {
is_activation: true
}, {
email: userData.email,
name: userData.name,
phone: userData.phone
});
}
}
// Использование
const tracker = new EcommerceTracker('your_api_key');
// На странице товара
tracker.trackProductView({
id: 'prod_456',
name: 'Футболка Oversize',
price: 1999,
category: 'Одежда'
});
// При добавлении в корзину
tracker.trackAddToCart({
id: 'prod_456',
name: 'Футболка Oversize',
price: 1999
}, 2);
// При оформлении заказа
tracker.trackCheckoutStart('cart_789', 5499);
// После покупки
tracker.trackPurchase({
id: 'ORD-001',
total: 5499,
items: [
{ id: 'prod_456', name: 'Футболка Oversize', price: 1999, quantity: 2 },
{ id: 'prod_789', name: 'Джинсы', price: 3500, quantity: 1 }
]
});
Интеграция с популярными CMS
WooCommerce (WordPress)
<?php
// Добавьте в functions.php вашей темы
function track_purchase_woocommerce($order_id) {
$order = wc_get_order($order_id);
$api_key = get_option('instantbase_api_key');
$items = [];
foreach ($order->get_items() as $item) {
$product = $item->get_product();
$items[] = [
'id' => $product->get_id(),
'name' => $product->get_name(),
'price' => $product->get_price(),
'quantity' => $item->get_quantity(),
'category' => wp_get_post_terms($product->get_id(), 'product_cat')[0]->name ?? ''
];
}
$data = [
'event' => 'purchase',
'user_id' => $order->get_user_id() ?: 'guest_' . $order->get_billing_email(),
'properties' => [
'order_id' => $order_id,
'revenue' => $order->get_total(),
'items' => $items
],
'_metadata' => [
'is_order' => true
]
];
wp_remote_post('https://api.instantbase.online/v1/track', [
'headers' => [
'X-API-Key' => $api_key,
'Content-Type' => 'application/json'
],
'body' => json_encode($data)
]);
}
add_action('woocommerce_thankyou', 'track_purchase_woocommerce');
?>
Magento 2
// В вашем модуле Magento 2
public function afterPlaceOrder($order)
{
$apiKey = $this->config->getValue('instantbase/api_key');
$items = [];
foreach ($order->getItems() as $item) {
$items[] = [
'id' => $item->getProductId(),
'name' => $item->getName(),
'price' => $item->getPrice(),
'quantity' => $item->getQtyOrdered(),
'category' => $this->getCategoryName($item->getProductId())
];
}
$data = [
'event' => 'purchase',
'user_id' => $order->getCustomerId() ?: 'guest_' . $order->getCustomerEmail(),
'properties' => [
'order_id' => $order->getIncrementId(),
'revenue' => $order->getGrandTotal(),
'items' => $items
],
'_metadata' => ['is_order' => true]
];
$this->httpClient->post('https://api.instantbase.online/v1/track', [
'headers' => ['X-API-Key' => $apiKey],
'json' => $data
]);
}
Анализ брошенных корзин
Для анализа брошенных корзин отслеживайте:
- Создание корзины — когда пользователь добавляет первый товар
- Обновления корзины — добавление/удаление товаров
- Начало оформления — переход к оформлению
- Завершение заказа — покупка
Клиенты, которые добавили товары в корзину, но не купили — ваша целевая аудитория для ретаргетинга.
Пользователи с событием add_to_cart за последние 7 дней
БЕЗ события purchase за тот же период
Дашборды для интернет-магазина
После настройки интеграции вы получите готовые дашборды:
- Главная — выручка, заказы, новые клиенты, конверсия
- Выручка — графики динамики, средний чек, дни с продажами
- Заказы — воронка продаж, популярные товары, последние заказы
- Клиенты — география, LTV, повторные покупки
- Удержание — когорты покупателей, возвращаемость
Часто задаваемые вопросы
Как отслеживать промокоды и скидки?
Добавьте поля promo_code, discount в свойства события purchase:
"properties": {
"order_id": "ORD-001",
"revenue": 4499,
"original_total": 5499,
"discount": 1000,
"promo_code": "WELCOME10"
}
Как отслеживать возвраты и отмены?
Отправляйте отдельное событие order_refunded с теми же метаданными, но с отрицательной выручкой, или используйте поле status:
{
"event": "order_updated",
"properties": {
"order_id": "ORD-001",
"status": "refunded",
"refund_amount": 5499
},
"_metadata": {
"is_order": true
}
}
Рекомендации
- Начинайте с ключевых событий — purchase, add_to_cart, product_view
- Всегда передавайте revenue — для корректного расчета выручки
- Используйте items для детализации товаров — это включит аналитику по товарам
- Сохраняйте атрибуты клиентов — email, телефон, имя для ретаргетинга
- Тестируйте на тестовых ключах — перед запуском в продакшн
- Анализируйте воронку регулярно — ищите точки оттока и улучшайте их
Что дальше?
Нужна помощь с настройкой e-commerce аналитики?
Напишите нам, и мы поможем настроить интеграцию под ваш магазин