Ютубканал Суккоградъ

Настраиваем Java цель для Яндекс Метрики

О том что это такое в Справочнике Яндекс

Решение придумано и проверенно в работе мной лично. Решение подходит в том числе для бесплатного варианта Onepage Generic Очень простое и очень правильное решение.

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

Конкретно для Onepage Generic рекомендуют править файл:

/httpdocs/plugins/system/onepage_generic/cart/tmpl/default_shopper.php 896

было

Код
 
echo '<a class="opg-button '.$button_primary_class.' opg-button-large opg-margin-top opg-width-1-1" href="javascript:void(0);" onclick="submit_order();"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU'). '</span></a>';

стало

Код
 
echo '<a class="opg-button '.$button_primary_class.' opg-button-large opg-margin-top opg-width-1-1" href="javascript:void(0);" onclick="submit_order(); yaCounter88888888.reachGoal(\'ORDER\'); return true;"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU'). '</span></a>';


Где 88888888 - это номер вашего счетчика метрики.

Соответственно в самой метрике добавил javascript событие с идентификатором цели ORDER.

Я так и не добился работы этого варианта. Почему не знаю. Но в процессе поиска я наткнулся на одну очень интересную мысль. Один Эксперт, сказал, что цель кнопка "Подтвердить Заказ" это неправильная цель. Она не дает 100% достоверность. Ведь пользователь может нажать кнопку не заполнив какие-то важные поля. Яндекс зачтет такое нажатие, но цель достигнута не будет. Правильнее привязывать событие к странице благодарности за заказ. В моем случае ссылка корзины и страницы благодарности совпадает. Поэтому от javascript все-равно не уйти. Но размещение скрипта заметно упрощается.

Ищем шаблон страницы благодарности

/docs/components/com_virtuemart/views/cart/tmpl/order_done.php

И в самое начало страницы, до первой инструкции php, добавляем стандартное JavaScript-событие от Яндекс.

Они называют это: Достижение цели при загрузке страницы

Решение 1

<script type="text/javascript">
    window.onload = function() {
        yaCounterCOUNTER_ID.reachGoal('TARGET_NAME')
    }
</script>

Решение 2 (для jQuery)

<script type="text/javascript">
    $(window).load(function() {
        yaCounterCOUNTER_ID.reachGoal('TARGET_NAME')
    });
</script>

Меняем COUNTER_ID на код вашего счетчика, а TARGET_NAME на выбранное вами имя цели. Я выбрал ORDER.
Вот и весь секрет. У меня на mi55.ru работает!