Настройка Ecommerce для интернет-магазина

Для того чтобы сео-специалисты могли оценивать поведение пользователей на сайте, искать места, в какой момент пользователи уходят с сайта, не совершив покупку, на сайте необходимо настраивать аналитику.
Ecommerce передает в GoogleAnalitics действия пользователей на разных страницах.

Для передачи в аналитику информации, на стороне сайта необходимо реализовать отправку данных при наступлении таких событий.

Просмотр списка товаров.

В каждой категории должен формироваться код для отправки списка товаров, которые входят в эту категории.

При открытии страницы должен формироваться JavaScrip код. По сути, данный код записывает данные в dataLayer, эти данные отправляются в ГТМ где обрабатываются и отправляются в Analytics.

Сайт должен формировать такой JS код:

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'impressions': [
            {
                'name': 'Product 1', // название товара
                'id': 'ID1', //айди товара
                'price': '23.5', // цена без валюты
                'brand': 'Brand 1', //Бренд товара
                'category': 'Category 1/Subcategory 11', //название категории и подкатегории
                'list': 'List 1', //Название списка товаров (категория, поиск, рекомендуемые, топ продаж и тд)
                'position': 1 //Позиция товара в списке
            },
            {
                'name': 'Product 2', // название товара
                'id': 'ID2', //айди товара
                'price': '14', // цена без валюты
                'brand': 'Brand 1', //Бренд товара
                'category': 'Category 1/Subcategory 11', //название категории и подкатегории
                'list': 'List 1', //Название списка товаров (категория, поиск, рекомендуемые, топ продаж и тд)
                'position': 2 //Позиция товара в списке
            }]
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Product Impressions',
    'gtm-ee-event-non-interaction': 'True'
});
</script>

В коде, конечно же, значения по товарам должны быть заменены.

Клики по товарам

При каждом клике по товару должен срабатывать код с данными по этому товару и информацией, где был совершен этот клик.

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'click': {
            'actionField': {'list': 'List 1'}, //Название списка товаров (категория, поиск, рекомендуемые, топ продаж и тд)
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'position': 1
            }]
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Product Clicks',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Объект products содержит данные о товаре и заполняется так же как и в инструкции выше

Просмотры карточек товара

Код должен загружаться при открытии страницы карточки товара

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'detail': {
            'actionField': {'list': 'List 1'},
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'variant': 'Variant 1'
            }]
        },
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Product Details',
    'gtm-ee-event-non-interaction': 'True',
});
</script>

Добавление товара в корзину

При добавлении товара в корзину должен исполняться код. Здесь может добавляться параметр variant в нем нужно записывать настраиваемый вариант товара (если есть). Еще добавляется параметр quantity в котором нужно записать количество товаров добавленных в корзину.

<script>window.dataLayer = window.dataLayer || [];
        dataLayer.push({
            'ecommerce': {
                'currencyCode': 'UAH',
                'add': {
                    'products': [{
                        'name': 'Product 1',
                        'id': 'ID1',
                        'price': '23.5',
                        'brand': 'Brand 1',
                        'category': 'Category 1/Subcategory 11',
                        'variant': 'Variant 1', //настраиваемый вариант товара
                        'quantity': 3
                    }]
                }
            },
            'event': 'gtm-ee-event',
            'gtm-ee-event-category': 'Enhanced Ecommerce',
            'gtm-ee-event-action': 'Adding a Product to a Shopping Cart',
            'gtm-ee-event-non-interaction': 'False',
        });
    </script>

Удаление товара из корзины

Отслеживание удалений товаров из корзины. В массиве products стоит перечислить все товары, которые пользователь удалил из корзины. Если корзина полностью очищается — следует указать все товары, находившиеся в ней.

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'remove': {
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'variant': 'Variant 1',
                'quantity': 1
            }]
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Removing a Product from a Shopping Cart',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Оформления заказа

Код запускается после того, как пользователь перешел на страницу Оформление заказа и выбрал способ аутентификации

Шаг 1. Выбор регистрации пользователя.

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'checkout': {
            'actionField': {'step': 1, 'option': 'already have an account'}, //Клиент выбирает один вариант аутентификации
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'variant': 'Variant 1',
                'quantity': 2
            }]
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Checkout Step 1',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Шаг 2. Пользователь заполнил форму и выбрал способ доставки, в параметре option нужно передать выбранный способ доставки

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'checkout': {
            'actionField': {'step': 2, 'option': 'Courier'}, //Клиент выбирает один вариант доставки
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'variant': 'Variant 1',
                'quantity': 2
            }]
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Checkout Step 2',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Шаг 3. Подтверждение информации о заказе

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'checkout': {
            'actionField': {'step': 2},
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'variant': 'Variant 1',
                'quantity': 2
            }]
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Checkout Step 3',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Шаг 4. Выбор способа оплаты

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
        'ecommerce': {
            'currencyCode': 'UAH',
            'checkout': {
                'actionField': {'step': 2}, 'option': 'Bank payment'}, //Выбор или переход на страницу оплаты банка
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'variant': 'Variant 1',
                'quantity': 2
            }]
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Checkout Step 4',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Шаг 5. Совершенные покупки (транзакция)

Данные отправляются при попадании пользователя на страницу «Спасибо за покупку».

И при заказе в Один Клик

В массиве products должны быть перечислены все товары которые купили

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'currencyCode': 'UAH',
        'purchase': {
            'actionField': {
                'id': 'TID1', // айди транзакции
                'affiliation': 'Online Store', //название магазина
                'revenue': '91.4', //общая стоимость покупки
                'shipping': '35', //Цена доставки
                'coupon': 'Coupon 1' //название промокода если есть
            },
            'products': [{
                'name': 'Product 1',
                'id': 'ID1',
                'price': '23.5',
                'brand': 'Brand 1',
                'category': 'Category 1/Subcategory 11',
                'variant': 'Variant 1',
                'quantity': 2,
                'coupon': ''
            }]
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Purchase',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Полная отмена транзакции

При полной отмене покупки достаточно указать идентификатор транзакции.

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'ecommerce': {
        'refund': {
            'actionField': {'id': 'TID1'}  //id — идентификатор отмененной транзакции.
        }
    },
    'event': 'gtm-ee-event',
    'gtm-ee-event-category': 'Enhanced Ecommerce',
    'gtm-ee-event-action': 'Full Refund',
    'gtm-ee-event-non-interaction': 'False',
});
</script>

Отправляемые события будут влиять на показатель отказов.

Отслеживание отправки запросов пользователя

Также, на сайте необходимо настроить отслеживание  заполнения контактных форм.

При успешной отправки формы Заказать звонок добавить событие

dataLayer.push({'event': 'form_zvonok'});

При успешной отправки формы Подписка на новости добавить событие

dataLayer.push({'event': 'form_novosti'});

Когда клиент оставил отзыв, добавить событие

dataLayer.push({'event': 'otziv'});

Остается только найти места в шаблонах, в которых можно подключиться к имеющимся событиям в JS-скриптах, собрать нужные данные по товарам и передать их в аналитику

Также, все эти действия бесполезны без проведения корректных настроек на стороне Google Analitics

Количество показов: 11
20.06.2021

Возврат к списку

Если вам была полезна статья можете

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.