Dubrowsky
Хроники одного дупла
Блогово  →  SEO  → 

Настроить цели в Яндекс.Метрике - простой способ

03 Апреля 2012 года

Здравствуйте, детишки! Все вы знаете, что у Яндекса тоже есть свой счетчик с блдж.&шл. - называется Яндекс.Метрика. Он, например, полезен для ускорения индексации - но не только! Это же счетчик, им еще и статсы считать можно! Однако, детишки, если вы когда-нибудь пробовали эту Яндекс.Метрику настраивать (в частности - указывать цели), вы наверное знаете, что это некоторый перманентный геморрой. Но дядя Дубровский придумал способ, как этот геморрой если не исцелить полностью, так хотя бы немного облегчить.

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

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

Однако, на практике обычно происходит не так - "похожие материалы" выводит плагин для вордпресса, ссылки в тексте вставляются через TinyMCE, а банеры - например внешней системой (и то хорошо, если не тупо в html-шаблон!).

Так вот, тут нам поможет Яндекс.Метрика. Гугль.Аналитикс, наверное, тоже мог бы помочь, но я его люблю еще меньше, чем Метрику, так что - в другой раз. Делаем следующее:

1. Выписываем и обзываем блоки, которые хотим считать

Например, у нас есть магазин чулков, носков и труселей. В колонке показываем сквозные "Популярные товары" - это блок 1, назовем его "mx_popular". На странице товара "Лосины женские зеленые XXL" выводим блок "Запчасти и аксессуары" (и там ссылка типа купить пояс для чулок =)) - блок 2, назовем "mx_related".

Хорошо бы, чтоб эти коды-названия не встречались в URL страниц сайта - для этого и указан префикс "mx_".

2. Собственно, ставим метрику

Согласно инструкции от Яндекса, тут много ума не надо.

3. Добавляем ссылкам в блоках css-классы

Делаем, чтобы у ссылок, по которым надо кликать, были классы вида class="metrika metrika_mx_popular" и class="metrika metrika_mx_related"

4. Добавляем в HEAD вызов такого нехитрого JS:

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

Капитан Очевидность подсказывает мне, что
а) этот код должен быть вставлен после подключения jquery.js и
б) вместо 123123123 нужно указать ваш айди счетчика - его можно подглядеть в коде счетчика (а еще лучше - объявить заранее в глобальной переменной, чтоб не дублировался).

5. Заводим цели в интерфейсе Яндекс.Метрики

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

  • В поле "Название" вводим "Популярные товары" (а затем "Аксессуары").
  • В поле "Условие" выбираем вкладку "URL страницы", выбираем "содержит" и указываем названия-коды - "mx_popular" (и соответственно "mx_related")

6. Радуемся жизни

Теперь, когда юзер нажимает на ссылку с классом "metrika_mx_related" (то есть в интересующем нас блоке), счетчик Метрики при помощи JS-кода из п.4 узнает о достижении цели "Аксессуары". Интернет-маркетолог открывает нужный сайт в панели Метрики, вкладку "Посещаемость" - "Цели" - "Аксессуары", смотрит колонку "Конверсия", видит, что никто в блок "Аксессуары" не кликает, и идет пинать дизайнера, чтоб рамочку блоку пририсовал, и программиста, чтоб алгоритм определения похожих товаров улучшил. В результате - все при деле, а это - главное!

7. Подключаем фантазию

Ну да, теперь, когда у нас в руках столь мощных инструмент от дяди Дубра, мы можем реализовать что угодно! Например, советую обратить внимание на вкладку "Составная цель". Там можно сделать все то же самое, а потом отдельным шагом добавить URL корзины - тогда станет понятно, что если кто и кликает, то уж точно никто ничего не покупает :)

Для более сложных случаев (типа ссылок в тексте) используем магию jQuery, изменив соответствующим образом CSS-селектор.

Кроме того, код будет работать не только для ссылок (тег "A"), но и для всяческих кнопок и любых других элементов. Например, для кнопки "Отправить комментарий".

Камменты

Спасибо, теперь вроде стало понятно все с этой аналитикой.
Марина16.02.2015, 22:21#
А если цели надо настроить цели на просмотр видеоролика на сайте(ютюб или онлайн видеокамера)в iframe, как тогда поступать?
Дуброн самый20.02.2015, 15:37#
Марина, у некоторых видео-сервисов есть API, который генерирует JS-событие. На него можно подписаться и нужным образом обрабатывать. У Vimeo точно есть. В общем случае можно попытаться положить поверх плеера прозрачный слой и обрабатывать mousedown на нем - это если нет сложных контролов и видео тупо включается кликом по заглушке.
Никита28.08.2015, 08:38#
Добрый день! Я подключил к обслуживаемому сайту форму обратной связи от LiveTex всплывающую, которая всплывает через 5-7 секунд после окончания загрузки страницы - клиент просит прицепить на кнопку "ОК" этой формы Яндекс-метрику. Беда в том, что события с этой формы не улавливаются jQuery который пишем на основной странице, указав классы элементов формы наблюдаемые через Инспектор Mozilla - а код формы напрямую недоступен, он генерится LiveTex-ом. Что можно сделать?
Дуброн самый01.09.2015, 13:58#
Никита, если форма подгружается в iframe - боюсь, ничего. Если только какие-то хаки из области clickjacking покрутить.
Если виджет попадает в главное DOM-дерево - надо смотреть. Во-первых, вот тут я давал улучшенный вариант, который работает с блоками, появившимися в документе уже после загрузки. Во-вторых, там может быть обработчик самого liveText'а, останавливающий дальнейшую обработку (e.stopImmediatePropagation() ) - в этом случае его нужно "перебить" - повесить наш обработчик до оригинального, или обрабатывать не click, а mousedown, или еще как-то исхитриться.
Евгений17.12.2015, 01:50#
Выше я писал коммент, почему он не опубликован? Отправлял с Ipad
Дуброн самый21.12.2015, 14:11#
Евгений, хз, мой сайт делала одна известная веб-студия, у которой нет айпада, видимо поэтому с айпада комменты не постятся :( сорри.

Сейчас попробую поискать в каких-нибудь логах, если получится достать - достану.
Евгений27.12.2015, 01:01#
Я думал это модерация у вас. Понял в чем причина: у меня в вопросе теги, тут видимо в комментах нельзя теги писать: попробую так:
Я вывожу клиентскую ссылку в iframe на своем домене (то есть весь лендинг у меня подгружается во фрейме).

Цель: настроить Цель в метрике или Гугле на клик внутри любого места iframe. Нашел вашу и еще одну статью - yourkeys(точка)ru/yandex-metrika-reachgoal.html сколько не пытаюсь сделать так как там написано - ничего не получается. Сайт у меня wordpress, что писать внутри $('iframe[???????]').iframeTracker({. (вместо восклицательных знаков) если страница вставлена на домен в iframe так:

body style="margin:0px; padding: 0px;
"http://сайт.ru/1/" frameborder="0" scrolling="yes" height="100%" width="100%"

Подскажите, способ в статье по идее должен был сработать в моем случае, и если да, то как это прописать?
Дуброн самый30.12.2015, 02:11#
Евгений, я примерно понял вашу проблему.

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

Если документ, загруженный в iframe, находится у вас под контролем, можно из него передавать события - почитайте про postMessage, вот тут например.

Если документ во фрейме не ваш - придется юзать iframeTracker или что-то подобное. В этом случае логика такая.

1. Подключаем jquery и плагин.
2. Навешиваем обработчик на нужный фрейм - в вашем комментарии вместо знаков вопроса нужно указать css-селектор. Например, дописать к тегу фрейма class="myframe" и ловить его через $('iframe.myframe')
Либо можно обрабатывать все фреймы, если их несколько и все нужны - тогда пишем просто $('iframe').
3. Внутри обработчика нужно вызвать событие счетчика. Можно как в примере по вашей ссылке: yaCounterXXXXXX.reachGoal('ADSENSE') - где XXXXXX - идентификатор вашего счетчика, а "ADSENSE" - название цели. Чтобы получить немного более универсальный код, можно использовать функцию metrikaReach из моего соседнего поста.

Если важно различать фреймы, то придется каждому присваивать свой класс и добавлять свой обработчик. Либо использовать пример из доки по плагину, хотя он и выглядит слегка чудовищно :) вообще разработчики плагина могли бы спрятать это, просто передавая в коллбэк объект-событие с проставленным target... но почему-то не стали )

Расскажите в двух словах, для чего вам это нужно? Ловить клики по рекламе, или что-то другое? Я просто с адсенсом начинал экспериментировать весной, но забросил. Может быть стоит восстановить эти опыты )

А вообще этой статье уже 4 года скоро, я сейчас такие вещи разруливаю через параметры визитов. Надо бы на новогодних каникулах собраться с мыслями и написать про новую Яндекс.Метрику, там много крутых плюшек.
Владимир11.02.2016, 06:54#
Здравствуйте, в index.php лэндинга есть такой код

Спасибо за заявку! Наш менеджер свяжется с вами в ближайшее время!



Суть такая, если форма заявки заполнена правильно, после нажатия кнопки отправить появляется это сообщение. Подскажите как настроить цель на появление этого сообщения с помощью вашего кода.
Владимир11.02.2016, 07:02#
"div class="form_ok">
Спасибо за заявку! Наш менеджер свяжется с вами в ближайшее время!

Написать коммент: памятка постеру

 

Крутые посты wtf??? →

15.03.2012 · 21 каммент · рейтинг 8.55
06.07.2015 · 7 камментов · рейтинг 7.63
02.10.2012 · 90 камментов · рейтинг 7.45
02.03.2012 · 12 камментов · рейтинг 6.44
19.02.2008 · 106 камментов · рейтинг 5.87

Последне камменты

18.11.2017  JohnКак закрыть окно Skype / свернуть нафиг в трэй: Спасибо, добрый человек! Неимоверно раздражало.
10.11.2017  NikПочему не работает form.submit(): Автор, спасибо за статью 5-летней давности. Подари...
27.10.2017  ДенисОбработка кликов и цели в Яндекс.Метрике, улучшенный вариант: Блин. А для не в зуб ногой - можно код целиком выл...
17.10.2017  ДубрDenwer - настройка алиасов (ServerAlias): Ахуенно не это, ахуенно то что кто-то пользуется Д...
29.09.2017  Maxтам же: Спасибо, чувак! Это ахуенно, оно заработало!!!

Статсы