Тема: Цели Метрики

Здравствуйте! Подскажите, пожалуйста, можно ли как то без модификации стандартных js файлов шаблона поймать следующие цели:
1. Регистрация пользователя
2. Покупка в 1 клик
3. Отправка сообщения обратной связи (или иные формы из конструктора форм)
4. Добавление товара в корзину
т.е. те действия, которые осуществляются ajax запросом.

2 Отредактировано Александр (22.10.2015 11:59:53)

Re: Цели Метрики

А причём здесь стандартный шаг JS? Раньше насколько я помню яндекс генерировал специальные идентийфикаторы которые необходимо было размещать в HTML и при клике они бы учитывали нажатие. Как сейчас это делают я не знаю, но думаю в гугле или в самом яндексе. Прямого отношения к метрике мы не имеем.
Вот например, что я нашёл:
http://allmetrics.ru/threads/nuzhno-ots … javki.354/
и
http://blog.ecommerceschool.ru/technica … shaga.html

3 Отредактировано Ярослав (22.10.2015 16:32:29)

Re: Цели Метрики

Поделюсь с общественностью небольшим кодом:

function metrikaReach(goal_name) {
        for (var i in window) {
        if (/^yaCounter\d+/.test(i)) {
            window[i].reachGoal(goal_name);
        }
    }
   /* или напрямую вызвать свой счетчик. К примеру 1111*/
            /*yaCounter1111.reachGoal(goal_name);*/

}

$( document ).ready(function() {
$('body').on('click', '.metrika', function() {
    var goal_name = this.className.match(/metrika_([^\s]+)/);
    if (goal_name[1]) {
        metrikaReach(goal_name);
    }
    return true; 
});


$('body').on('submit', 'form.register', function() {
    var goal_name = 'rs_register';
    metrikaReach(goal_name);
    return true; 
});

$('body').on('click', '.addToCart', function() {
    var goal_name = 'rs_addtocart';
    metrikaReach(goal_name);
    return true; 
});

$('body').on('click', '.formSave', function() {
    var goal_name = 'rs_formsave';
    metrikaReach(goal_name);
    return true; 
});


});

В метрике добавлены цели - события JS:
rs_formsave - отправка сообщений обратной связи.
rs_addtocart - в корзину.
rs_register - регистрация пользователя.
Так же можно на любые элементы с классами по шаблону "metrika_{название события}".
Пример для события bannerclick: metrika_bannerclick.

Код для темы "Детская"

4

Re: Цели Метрики

Ярослав пишет:

Поделюсь с общественностью небольшим кодом:
В метрике добавлены цели - события JS:
rs_formsave - отправка сообщений обратной связи.
rs_addtocart - в корзину.
rs_register - регистрация пользователя.
Так же можно на любые элементы с классами по шаблону "metrika_{название события}".
Пример для события bannerclick: metrika_bannerclick.

Код для темы "Детская"

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

Повысить оценку Понизить оценку

Re: Цели Метрики

Корзина это /cart/.
Но я например у открытия корзины ставлю на onclick отлов события.
Например у меня открытие корзины это TOPTOCART, ставлю на ссылку открытия корзины:

onclick="yaCounter29702350.reachGoal('TOPTOCART'); return true;

6

Re: Цели Метрики

Закусило Александр пишет:

Корзина это /cart/.
Но я например у открытия корзины ставлю на onclick отлов события.
Например у меня открытие корзины это TOPTOCART, ставлю на ссылку открытия корзины:

onclick="yaCounter29702350.reachGoal('TOPTOCART'); return true;

А где это прописывать, или в метрике в целях?
Я на старом сайте писал так:
Переход в корзину    url: содержит «imageryshop.ru/cart»
Добавление в корзину    url: содержит «imageryshop.ru/catalog?inCartProductId»
Оформление заказа    url: содержит «imageryshop.ru/order»
Подтверждение заказа    url: содержит «imagerysho.ru/order?creation=1»

Как эти ссылки заменить на актуальные?

Повысить оценку Понизить оценку

7 Отредактировано Ярослав (20.02.2016 00:29:29)

Re: Цели Метрики

1. Начало оформления заказа    url: содержит «/checkout/address»
2. Страница оплаты    url: содержит «/checkout/payment/»
3. Подтверждение заказа    url: содержит «/checkout/confirmpage/»
4. Заказ совершен    url: содержит «/checkout/finish/»

Отдельная обработка событий метрики удобна тем, что можно сделать свой модуль, который будет подключаться к существующей теме без переделки.
На самом деле, подглядел у одного известного движка) Но там модуль еще и сам создавал цели в Метрике через API.

8

Re: Цели Метрики

Закусило Александр пишет:

Корзина это /cart/.
Но я например у открытия корзины ставлю на onclick отлов события.
Например у меня открытие корзины это TOPTOCART, ставлю на ссылку открытия корзины:

onclick="yaCounter29702350.reachGoal('TOPTOCART'); return true;

TOPTOCART - это шаблон? где нужно прописать onclick ?

Повысить оценку Понизить оценку

9 Отредактировано Закусило Александр (20.02.2016 11:58:42)

Re: Цели Метрики

Я не знаю какая у Вас версия метрики (новая или старая). У меня новая, я зашёл в Настройки метрики, создал там цель с названием TOPTOCART(цель по индентификатору),  назвал её открытие корзины. Смысл в том, что Вас просят на ссылку поставить код яндекса. Например для моего случая:

onclick="yaCounter29702350.reachGoal('TOPTOCART'); return true;

Этот код сообщает метрике о нажатии на эту ссылку. В моём случае это открытие корзины вверху сайта. Если Вам нужно срабатывание на добавление в корзину кнопки, тогда создайте в настройках цель и поставьте код на кнопку добавления в корзину, во все шаблоны в которых есть эта кнопка. У меня например, всегда покупают в карточке товара - это шаблон product.tpl в моей теме оформления.

TOPTOCART - это шаблон? где нужно прописать onclick ?

ТОPTOCART это я так назвал свою цель. onclick надо ставить во все шаблоны на ссылки, которые Вам необходимо.
Например, у меня так:

<a rel="nofollow" onclick="yaCounter29702350.reachGoal('TOPTOCART'); return true;" data-href="/cart/" class="showCart" id="cart"></a>

Как у Вас всё зависит от шаблона. Смысл просто проставить эту конструкцию на все кнопки, которые Вам необходимо.

10

Re: Цели Метрики

Ярослав пишет:

Поделюсь с общественностью небольшим кодом:

function metrikaReach(goal_name) {
        for (var i in window) {
        if (/^yaCounter\d+/.test(i)) {
            window[i].reachGoal(goal_name);
        }
    }
   /* или напрямую вызвать свой счетчик. К примеру 1111*/
            /*yaCounter1111.reachGoal(goal_name);*/

}

$( document ).ready(function() {
$('body').on('click', '.metrika', function() {
    var goal_name = this.className.match(/metrika_([^\s]+)/);
    if (goal_name[1]) {
        metrikaReach(goal_name);
    }
    return true; 
});


$('body').on('submit', 'form.register', function() {
    var goal_name = 'rs_register';
    metrikaReach(goal_name);
    return true; 
});

$('body').on('click', '.addToCart', function() {
    var goal_name = 'rs_addtocart';
    metrikaReach(goal_name);
    return true; 
});

$('body').on('click', '.formSave', function() {
    var goal_name = 'rs_formsave';
    metrikaReach(goal_name);
    return true; 
});


});

В метрике добавлены цели - события JS:
rs_formsave - отправка сообщений обратной связи.
rs_addtocart - в корзину.
rs_register - регистрация пользователя.
Так же можно на любые элементы с классами по шаблону "metrika_{название события}".
Пример для события bannerclick: metrika_bannerclick.

Код для темы "Детская"

Спасибо за код, но в 2019г что то не работает. Подскажите работающий код с темой Современная для настройки целей я.метрики

Повысить оценку Понизить оценку

11

Re: Цели Метрики

Код для темы "детская",  поэтому в современной не будет работать.
По меньшей мере надо добавить классы  "metrika_{название события}" в нужные элементы.

12

Re: Цели Метрики

Ярослав пишет:

Код для темы "детская",  поэтому в современной не будет работать.
По меньшей мере надо добавить классы  "metrika_{название события}" в нужные элементы.

Спасибо, но это никак мне не помогло.

Повысить оценку Понизить оценку