Отслеживаем конверсию без перезагрузки страницы
Обычно, при отправки формы советуют редиректить пользователя на некий целевой URL, переход по которому будет означать конверсию цели.
Однако, в наш век Rich Internet Application, такой метод общения с пользователем кажется способом забиванием гвоздей камнями. Гораздо приятнее, когда форма проверяется и отправляются данные из нее прямо на той же странице, где находится пользователь. Тут же выводится и сообщение об успешной отправке. Например, как на этом лендинге по созданию целевых страниц.
Как же тогда отметить в Метрике достижение цели? Оказывается, разработчики метрики уже подумали об этом и предоставляют нам способ обозначить достижение цели через клиентский код.
А также показывают пример кода, который позволяет достигать целей конверсии без перезагрузки страницы: Можно ли задать в качестве цели нажатие посетителем на какую-либо ссылку или кнопку?
А чтобы сделать наше приложение максимально гибким, я разработал следующий код:
(function($, w, d){
$(w).on('load', function(){
$(d).on('yandex.reachGoal', function (e, params) {
var target = params.target;
params = params.params || null;
target && w.yaCounterXXXXXX && w.yaCounterXXXXXX.reachGoal(target, params);
});
});
})(jQuery, window, document);
Коду для работы требуется установленный на странице код Я.Метрики и jQuery. Здесь мы подвешиваем на документ обработчики событий, которые будут отправлять данные в Яндекс. Это нужно прежде всего для того, чтобы не передавать идентификатор счетчика в метрике по всему коду. Чтобы воспользоваться этим кодом, достаточно в коде обработки формы при успешной отправке возбуждать соответствующее событие.
$(document).trigger('yandex.reachGoal', {target:'REQUEST_SENT'});
Не забудьте добавить эту цель в интерфейсе метрики. Удачи.
Автор: keltanas
comments powered by Disqus