Клуб Яндекс.Метрики

Цель submit onclick

invisibleon
28 апреля 2012, 13:14

Привет всем. 

Задача: отслеживать отправку заявки с сайта по срочной продаже автомобилей (клиент заполняет форму битое/не битое авто, указывает параметры: горелое авто, машина утопленник, двигатель, степень повреждения и тд).

 

На сайте много страниц с одной и той же формой. Естественно, решаю прописать в код формы (потому что форма одна) на кнопку submit цель. К примеру, страница: /kak-prodat-avto/ 

 

php модуль выглядит внутри так:

$html = '<input type="submit" id="sumbit" onclick="yaCounterХХХХХХ.reachGoal('zakaz'); return true;" value="' . esc_attr( $value ) . '"' . $atts . ' />';

Прописал - пошёл тестировать и опа - сайт упал. Не буду вас мучать - ошибка была в апострофах (использовал букву Э в английской раскладке). 

Помучался - сделал в наклонной кавычке ` (это буква Ё в английской раскладке) - всё работает. Начинаю тестировать - подхватился первый клик (тестовый). Всё  - я доволен, ушёл спать. За ночь упало несколько заявок - но цели не считаются.

Начинаю разбираться, нахожу текст человека, который утверждает, что запрос надо делать через JS.

Ерунда - делаю и это:

 

<script type="text/javascript">

(function() {

document.getElementById('knopka').onclick=function(){

yaCounterХХХХХХ.reachGoal('zakaz');

return true;

}

})(

</script>

 

Тестирую - опять засчитан мой клик (** примечание: внимательные заметили, что вначале кнопка называлась submit, а в JS knopka - об этом в конце поста). Довольный докладываю заказчику: "Прикрутил, товарищ командир". 

Проходит день - заявки идут, а цель так и висит одна - моя.

 

Ладно, начинаю играться с кавычками и апострофами. За день узнаю, что есть такой апостроф ' и такой ` и такой  и такой  и даже такой & #146; (нет - это не у вас проблема с текстом, это реально символьный апостроф).

Вообщем гору всего перепробовал - помучаюсь день, чего-то сотворю, одна моя цель засчитана - и тишина... 

Даже id кнопки с submit на knopka переделал - мол, нельзя так (согласно popup'у IE)

Прошу помочь с данной проблемой - подсказать, что можно изменить в правильную сторону. support@yandex.ru пока молчит, а заказчик в директ не хочет вновь вкладываться, пока отслеживание целей не заработает.

Вот, к примеру, форма здесь: /rasschitat-stoimost-avto/ 

Что нужо поменять в head JS, а что на кнопке submit.

Спасибо.


8 комментариев
Подписаться на комментарии к посту

Нужгно сделать так:

 

И убрать обработчики с тега и из

Спасибо, отличное решение. Перестроил под себя.

Цель-кнопка это хорошее решение.

Важное примечание для всех.

На примере выше что вышло - более 1 кода с одинаковой целью на одной странице не работают. Не вставляйте два одинаковых кода цели.

 

2ое - в php коде добавляйте экранирование, то есть html код действительно выглядит так

onclick="yaCounter13754761.reachGoal('zakaz')

но у меня был php код внутри которого HTML, поэтому должно выглядеть внутри php так:

onclick="yaCounter13754761.reachGoal(\'zakaz\')

Респект и уважуха. Спасибо!

СПАСИБО!!!

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

1) многократное нажатие (например, инет тормозит, данные долго отправляются)

2) форма заполнена неверно (например, вообще не заполнена), и пользователя просят исправить ввод.

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

Но второй случай интереснее. Потому что

а) пользователь может случайно на кнопке кликнуть, вообще не заполнив форму

б) пользователь может не захотеть сообщать больше данных, чем от него хотят, и уйти 

в) забить на поиск ошибки и повторное заполнение и уйти.

В результате заявки не будет, а цель засчитается.

Таким образом вызывать reachGoal Метрики лучше после проверки правильности заполнения формы.

Подскажите пожалуйста по моей ситуации:

У меня стоит такой код на кнопке 

Цель не отслеживается может потому что два onclick?