Настраиваем 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 работает!