Цель на форму обратной связи

NskRonin
На сайте с 21.10.2012
Offline
98
3554

Всех привествую!

Подскажите такую вещь, как правильно привязать цель к форме обратной связи?

Код формы

 <div id="zvonok" style="display:none;">
<div class="col-md-6 col-sm-6"></div>
<div class="popupform col-md-6 col-sm-6">
<div class="title">С Вами в ближайшее время<br/>свяжутся наши специалисты</div>
<form action="" method="get" name="zvonok">
<input type="text" name="name" placeholder="Ваше имя" class="ico_10">
<input type="text" name="tell" placeholder="Номер телефона" class="ico_11 phones">
<input type="text" name="e-mail" placeholder="mail@mail.ru" class="ico_12">
<p>— заполните все поля</p>
<input type="submit" onclick="yaCounter35456030.reachGoal('zvonok'); return true;" class="feedback" name="send" value=">> Заказать звонок <<">
</form>
</div></div>

При такой настройке происходит следующее - цель фиксируется как в случае успеха, так и в случае, если товарищ не правильно заполнил данные.

Пробовал сделать так

 <div id="zvonok" style="display:none;">
<div class="col-md-6 col-sm-6"></div>
<div class="popupform col-md-6 col-sm-6">
<div class="title">С Вами в ближайшее время<br/>свяжутся наши специалисты</div>
<form action="" method="get" onsubmit="yaCounter35456030.reachGoal('zvonok-ok'); return true;" name="zvonok">
<input type="text" name="name" placeholder="Ваше имя" class="ico_10">
<input type="text" name="tell" placeholder="Номер телефона" class="ico_11 phones">
<input type="text" name="e-mail" placeholder="mail@mail.ru" class="ico_12">
<p>— заполните все поля</p>
<input type="submit" onclick="yaCounter35456030.reachGoal('zvonok'); return true;" class="feedback" name="send" value=">> Заказать звонок <<">
</form>
</div>
</div>

Цель zvonok-ok дебагером Яндекса не фиксируется.

Для отправки используется этот скрипт - может туда можно что то добавить? Что бы Яндекс фиксировал все отправленные письма?

---------- Добавлено 22.07.2016 в 21:39 ----------

Вот кстати такая же проблема, правда ответ мне не совсем понятен

---------- Добавлено 22.07.2016 в 22:59 ----------

В общем решил.

В отправке сообщения еще принимает участи js скрипт.

В функцию success: function(answer) {.......} я вставил такой код

var yaCounter35456030 = new Ya.Metrika({id: 35456030});
yaCounter35456030.reachGoal('email-otpravlen');

После чего сделал составные цели с новой целью.

S
На сайте с 05.08.2016
Offline
0
#1

Выложите пожалуйста кад файла feedback.js полностью, тоже эта же форма, что и у вас, только цели не защитываются😡😡😡

---------- Добавлено 05.08.2016 в 21:55 ----------

Выложите пожалуйста код файла feedback.js полностью, как вы сделали. Тоже такая же форма, только цели не засчитываются.

inseonight
На сайте с 10.10.2008
Offline
170
#2

Solaiya, так вам и так подробно ответили:

В js скрипе, в функцию success: function(answer) {.......} я вставил такой код
yaCounter35456030.reachGoal('email-otpravlen');
Занимаюсь разработкой и продвижением интернет магазинов. Внедряю аналитику и консультирую по seo.
A
На сайте с 03.07.2016
Offline
6
#3

NskRonin, я обычно рекомендую ставить 2 разных кода события по прохождении всех проверок после нажатия кнопки: для случая когда нажали кнопку отправить и оказалось, что форма заполнена некорректно (отправка не удалась), и второе событие, когда после всех проверок отправка удалась.

В таком случае настроить цель на второе событие будет довольно просто.

NskRonin
На сайте с 21.10.2012
Offline
98
#4
Solaiya:
Выложите пожалуйста кад файла feedback.js полностью, тоже эта же форма, что и у вас, только цели не защитываются😡😡😡

---------- Добавлено 05.08.2016 в 21:55 ----------

Выложите пожалуйста код файла feedback.js полностью, как вы сделали. Тоже такая же форма, только цели не засчитываются.

Весь фаил


/**
* Created with JetBrains PhpStorm.
* User: Vitaly
* Date: 06.06.13
* Time: 20:22
* To change this template use File | Settings | File Templates.
*/
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(typeof haystack == 'object') {
if(arrayCompare(haystack, needle)) return true;
} else {
if(haystack == needle) return true;
}
}
return false;
}
window.isset = function (v) {
if (typeof(v) == 'object' && v == 'undefined') {
return false;
} else if (arguments.length === 0) {
return false;
} else {
var buff = arguments[0];
for (var i = 0; i < arguments.length; i++){
if (typeof(buff) === 'undefined' || buff === null) return false;
buff = buff[arguments[i+1]];
}
}
return true;
}

function myconf() {
var cf = $.Deferred();
$.ajax({
type: 'POST',
url: 'feedback/',
dataType: 'json',
data: 'act=cfg',
success: function(answer) {
cf.resolve(answer.configs);
}
});
return cf;
}

var mcf = myconf();

mcf.done(function(conf) {

$(document).ready(function() {
(function() {
var fb = $('.feedback');
if(fb.length > 0) {
fb.each(function(){
var form = $(this).closest('form'), name = form.attr('name');
//console.log(form);
if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
$(form).prepend('<input type="text" name="'+ conf[name].cfg.antispamjs +'" value="tesby" style="display:none;">');
}
});
}
})();
});


/**
* Отправка форм.
*
*/

function feedback(vars) {
var bt = $(vars.form).find('.feedback');
var btc = bt.clone();
var bvc = bt.val();
var cfg = conf[vars.act].cfg;

$.ajax({
type: 'POST',
url: 'feedback/',
cache: false,
dataType: 'json',
data: 'act=' + vars.act + '&' + vars.data,
beforeSend: function() {
//$(bt).val('');
$(bt).prop("disabled", true);
$(bt).addClass('loading');
},
success: function(answer) {
//console.log(cfg);
if(isset(cfg.notify) && !/none/i.test(cfg.notify)) {

if(/textbox/i.test(cfg.notify)) {
if(isset(answer.errors)) {
$.each(answer.errors, function(k,val) {
$.jGrowl(val, {theme: 'error', header: 'Ошибка!', life: 3000 });
});
} if(isset(answer.infos)) {
$.each(answer.infos, function(k,val) {
$.jGrowl(val, {theme: 'infos', header: 'Внимание!', life: 3000 });
});
}

} if(/color/i.test(cfg.notify)) {
$(vars.form).find('input[type=text]:visible, textarea:visible, select:visible').css({'border': '1px solid #0e4980'}, 300);
if(isset(answer.errors)) {
$.each(answer.errors, function(k,val) {
var reg = /[a-z]/i;
if(reg.test(k)) {
var e = $(vars.form).find('[name='+ k +']');
if(e.length == 1) {
$(e).css({'border': '1px solid #FF532E'}, 100);
}
}
});
} if(isset(answer.infos)) {
var li='', $inf = $('<ul>', {id:'feedback-infolist'});
$.each(answer.infos, function(k,val) {
li += '<li>'+ val +'</li>';
});

$inf.html(li);

$.arcticmodal('close');

/* if(/modal/i.test(cfg.notify)) {
var m = $('<div class="box-modal" id="feedback-modal-box" />');
m.html($inf);
m.prepend('<div class="modal-close arcticmodal-close">X</div>');
$.arcticmodal({content: m});
}
//bt.replaceWith($inf);

/* setInterval(function(){
//$('#feedback-inf-box').replaceWith(btc);
$('#feedback-modal-box').arcticmodal('close');
}, 4000);*/
$.fancybox('<div class="formsended"></div>');
$.fancybox({
'content' : $("#form_ok1").html()
});
var yaCounter35456030 = new Ya.Metrika({id: 35456030});
yaCounter35456030.reachGoal('email-otpravlen');
setTimeout(function(){
$.fancybox.close();
}, 200000);

}

}
}
$(bt).prop("disabled", false);
$(bt).removeClass('loading');
//$(bt).val(bvc);

if(isset(answer.ok) && answer.ok == 1) {
$(vars.form)[0].reset();
}
}
});

}

$(document).on('mouseenter mouseover', '.feedback', function(){
var form = $(this).closest('form'), name = form.attr('name');
if(isset(conf[name]) && isset(conf[name].cfg.antispamjs)) {
$('input[name='+ conf[name].cfg.antispamjs +']').val('');
}
});


/**
* Обработчик кнопки форм.
* Кнопка должна быть внутри тегов <form> c классом .feedback
* будет отправлено любое кол-во полей, кроме файлов
*
*/

$(document).on('click', '.feedback', function(){
var form = $(this).closest('form'), name = form.attr('name'), obj = {};
obj.form = form;
obj.act = name;
obj.data = $(form).serialize();

feedback(obj);

return false;
});

}); // done


---------- Добавлено 11.08.2016 в 18:20 ----------

Analizer:
NskRonin, я обычно рекомендую ставить 2 разных кода события по прохождении всех проверок после нажатия кнопки: для случая когда нажали кнопку отправить и оказалось, что форма заполнена некорректно (отправка не удалась), и второе событие, когда после всех проверок отправка удалась.
В таком случае настроить цель на второе событие будет довольно просто.

Я так в итоге так и сделал. Правда думал, что хватит одного события, но все пошло немного не по плану.

A
На сайте с 03.07.2016
Offline
6
#5
Я так в итоге так и сделал. Правда думал, что хватит одного события, но все пошло немного не по плану.

Please

Да, по мне так процентов 90 работ по веб-аналитике идут не по плану, очень высокая зависимость от технической специфики и бизнес процессов в компании

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий