На сайте Яндекс.Метрики нажимаем кнопку "Добавить счетчик":


Добавление счетчика Яндекс.Метрики

В качестве имени счетчика удобно использовать домен магазина. Его же указываем в поле "Адрес сайта".

Поскольку работу над магазином мы будем вести локально (например на localhost), чтобы не вводить метрику в заблуждение нашими действиями, отмечаем опцию "Принимать данные только с указанных адресов" - это позволит метрике учитывать лишь реальных посетителей на рабочем магазине.

В будущем мы обязательно сделаем региональные версии магазинов на поддоменах (например, spb.myshop.ru для Санкт-Петербурга, rov.myshop.ru для Ростова-на-Дону и т.д.) поэтому отмечаем опцию "Включая поддомены" для того, чтобы метрика учитывала посетителей на всех региональных поддоменах.

Обязательно включаем вебвизор, это позволит нам увидеть поведение пользователей на сайте: как водили мышкой, куда кликали, какие клавиши нажимали и т.п.

После этого указываем ваш часовой пояс, принимаем условия пользовательского соглашения и нажимаем кнопку "Создать счетчик":


Код счетчика Яндекс.Метрики

В качестве способа установки счетчика Я.Метрики выбираем "HTML".

Обязательно включаем "Электронную коммерцию", оставив имя контейнера данных в значении по-умолчанию "dataLayer".

В дополнительных настройках выбираем в качестве валюты "RUB - Российский рубль".

Копируем код счетчика и вставляем в самый конец футера, в зависимости от используемого шаблона это файл /theme/footer.tmpl или /theme/_footer.tmpl.

После установки кода счетчика на сайте переходим к созданию цели. Для этого нажимаем "Перейти к настройке целей".


Настройка целей Яндекс.Метрики

Главная наша цель это конечно же оформление заказа. Именно такую цель мы и создадим. Для этого нажимаем кнопку "Добавить цель":


Создание цели Яндекс.Метрики

Цель является не просто главной, а ключевой. Именно по ней можно оценивать эффективность рекламных компаний. И для того, чтобы иметь точную оценку (отношение расходов на рекламу к доходам), а так же возможность использовать автоматические стратегии Яндекс.Директа такие как "Оптимизация конверсий" и "Оптимизация рентабельности", необходимо настроить для цели передачу ценности.

Для этого указываем название цели, например "Заказ", выбираем тип условия "JavaScript-событие" и задаем идентификатор цели, например "ORDER". Завершаем создание цели нажатием кнопки "Добавить цель".

Для того, чтобы оповестить метрику о достижении цели, добавляем следующий код в начало файла /theme/js/live.order.js

function getGoalParams() {
  var total_cost = 0;
  $('.cart_product').each( function(){
    var qty = $(this).find('input.cart_product_qty').val();
    qty = qty.replace(/[\D]/g, '');
    var price = $(this).find('.cart_product_price').text();
    total_cost += price*qty;
  });
  return {
    currency: 'RUB',
    order_price: total_cost,
  }
}

Функция getGoalParams() высчитывает стоимость заказа (без учета доставки) и возвращаем массив params, необходимый для передачи ценности цели в функцию reachGoal.

Теперь находим в этом же файле код

                } else {
                    $('form[name=order]').append("<input type='hidden' name='delivery' id='delivery' value='" + $('select[name=delivery]').val() + "'/>");
                }

                disableForm($('.order_table'));
                return true;
            } else {

И вставляем перед disableForm следующую строку:

ym(15865807, 'reachGoal', 'ORDER', getGoalParams());

Здесь 15865807 - номер счетчика, который необходимо заменить на ваш номер. В итоге должно получиться вот так:

                } else {
                    $('form[name=order]').append("<input type='hidden' name='delivery' id='delivery' value='" + $('select[name=delivery]').val() + "'/>");
                }
                ym(15865807, 'reachGoal', 'ORDER', getGoalParams());
                disableForm($('.order_table'));
                return true;
            } else {

Теперь на вашем сайте установлен счетчик Яндекс.Метрики и настроена передача ценности ключевой цели. Это дает возможность использовать в Яндекс.Директе автоматические стратегии "Оптимизация конверсий" и "Оптимизация рентабельности", а так же получать оценку не только конверсий, но и рентабельности рекламных компаний.