Skip to main content

Настройка Google Analytics и Yandex Metrica для корзины

Базовая настройка аналитики:

kaktusWidget({
	domain: kak2c_domain,
            
	basketClickCallback: function(){
    	//События аналитики при открытии корзины
      	yaCounter53862778.reachGoal('checkout_started');
      	gtag('event', 'checkout_started', {
        	'event_category' : 'ecommerce'
      	});
    },
 
    newOrderCreatedCallback: function(){
        //События аналитики при формированиии заказа
        var goalParams = {
          order_price: kaktusWidget.totalSum,
          currency: "RUB"
        }
        yaCounter53862778.reachGoal('checkout_finished', goalParams);
        gtag('event', 'checkout_finished', {
          'event_category' : 'ecommerce'
        });
    },
 });

dataLayer для расширенной электронной торговли Google Analytics совместно с Google Tag Manager корзина формирует автоматически. Также использование этого dataLayer можно настроить в Яндекс.Метрике: https://yandex.ru/support/metrica/data/e-commerce.html . Если к Вашей странице не подключена библиотека gtm.js и не настроен данный режим Яндекс.Метрики, это не на что не влияет. Однако если Вы собираетесь формировать эти события вручную, данный автоматический функционал можно отключить. Для этого при инициализации kaktusWidget укажите параметр enableDataLayer: false;

Кроме описанных выше событий открытия корзины и формирования заказа также можно использовать события добавления и удаления товаров в корзину. Для этого перед инициализацией виджета корзины добавьте следующий код:

document.addEventListener("kaktusEvent", function (e){
  if (e.detail.type == 'cart_item_add') {
    //Добавление товара в корзину. Данные добавляемого товара (включая добавленное количество) находятся в e.detail.content.item
  }
  
  if (e.detail.type == 'cart_item_removed') {
    //Удаление товара из корзины. Данные товара (включая удаляемое количество) находятся в e.detail.content.item
  }
});

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

document.addEventListener("kaktusEvent", function (e){
  //создан заказ
  if (e.detail.type == 'order_created') {
    var content = e.detail.content;
    var cart = kaktusWidget.getCart();

    var items = cart.items.map(function (item) {
      return {
        "id": item.productId,
        "name": item.name,
        "price": item.price,
        "quantity": item.count,
        "brand": item.brandName,
      }
    });

    var tansaction = {
      "transaction_id": content.orderId,
      "value": content.totalOrderSum,
      "currency": "RUB",
      "items": items,
    }
    gtag('event', 'purchase', tansaction);
  }
});