Перейти к содержимому


Цели В Яндекс.метрика - Работа Над Ошибками

yandex metrika yandex.metrika цели

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 54

#1 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 24 Январь 2014 - 12:27

Добрый день!

помогите, пожалуйста, настроить цели в Яндекс.Метрике.
Прочитал несколько тем по теме, сделал в итоге следующее:

1. В HTML добавлено:


Цитата


<!-- Yandex.Metrika counter -->
<script type="text/javascript">
if(document.referrer.indexOf('/order/stage/confirm') !== -1) {
var yaParams = {order_id: "{ORDER_NUM}",
order_price: "{ORDER_SUM}",
currency: "RUR",
exchange_rate: 1,
goods:
[
{%FOR order_lines%}{% IF order_lines.TYPE_ID=1 %}
{
id: "{order_lines.GOODS_ID}",
name: "{order_lines.NAME}",
price: "{order_lines.LINE_SUM}",
quantity: "{order_lines.QUANTITY}"
},
{% ENDIF %}{%ENDFOR%}
]};
}
</script>
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
                 try {
                                 w.yaCounter9493753 = new Ya.Metrika({id:9493753,
                                                                 webvisor:true,
                                                                 clickmap:true,
                                                                 trackLinks:true,
                                                                 accurateTrackBounce:true,params:window.yaParams||{ }});
                 } catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
                 s = d.createElement("script"),
                 f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
                 d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/9493753" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->






2. В "Оформление заказ" ничего не менял - надо?

3. В самой Яндекс.Метрике сделал цели "переход в корзину" и "оформление заказа":

Изображение

Изображение


Что не так я делаю? Заказы никакие не отображаются.
Хелп!!!

#2 miyako

miyako

    Активный участник

  • Модератоpы
  • 5 372 сообщений

Отправлено 24 Январь 2014 - 14:36

Просмотр сообщенияRazverni (24 Январь 2014 - 12:27) писал:

Добрый день!

помогите, пожалуйста, настроить цели в Яндекс.Метрике.
Прочитал несколько тем по теме, сделал в итоге следующее:

1. В HTML добавлено:






2. В "Оформление заказ" ничего не менял - надо?

3. В самой Яндекс.Метрике сделал цели "переход в корзину" и "оформление заказа":

Изображение

Изображение


Что не так я делаю? Заказы никакие не отображаются.
Хелп!!!

Подобный вопрос рассматривался здесь - http://forum.storela...-яндексметрике/
или
http://forum.storela...рмление-заказа/

#3 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 24 Январь 2014 - 14:48

В обоих этих темах не могу понять, что для моего магазина в итоге нужно в кнопке писать?
Если и нужно.

<button type="submit" class="button pur">{% IF ORDER_STAGE_NUM=4%} Оформить заказ {% ELSE %}Следующий шаг{% ENDIF %}</button>

Все остальное как раз настраивалось так, как в этих темах описано.

#4 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 25 Январь 2014 - 04:34

http://forum.storela...ике/#entry54075

здесь написана точная инструкция по изменению кнопки

#5 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 25 Январь 2014 - 23:18

		<button type="submit" class="button pur">{% IF ORDER_STAGE_NUM=4%}  Оформить заказ
								  
						 
								  
		   <input class="more-link oform" type="submit" name="tonext" value="" onclick="yaCounter9493753.reachGoal('ORDER','{% FOR cart_sum %}{cart_sum.NOW_WITH_DELIVERY} руб.{% ENDFOR %}'); return true;"/>					   
								  
								  
								  
								   {% ELSE %}Следующий шаг{% ENDIF %}</button>

Так нужно сделать же? :) Больше ничего?

#6 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 26 Январь 2014 - 12:06

не работает....

#7 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 28 Январь 2014 - 03:37

Попробуйте реализовать подобное изменение:
http://forum.storela...ике/#entry54790

Цитата

Вероятнее всего данная проблема возникает из-за форматирования суммы заказа, а именно из-за модификатора money_format, при отработке данного модификатора, цена прописывается не только текстом, а форматируется с использованием html тегов. В данном случае можно попробовать убрать форматирование суммы, а именно

{% IF ORDER_STAGE_NUM=4%}
			 <input class="more-link oform" type="submit" name="tonext" value="" onclick="yaCounterXXXXXX.reachGoal('ORDER','{% FOR cart_sum %}{cart_sum.NOW_WITH_DELIVERY | money_format}{% ENDFOR %}'); return true;"/>
				 {% ELSE %}

заменить на

{% IF ORDER_STAGE_NUM=4%}
<input class="more-link oform" type="submit" name="tonext" value="" onclick="yaCounterXXXXXX.reachGoal('ORDER','{% FOR cart_sum %}{cart_sum.NOW_WITH_DELIVERY} руб.{% ENDFOR %}'); return true;"/>
				 {% ELSE %}


#8 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 28 Январь 2014 - 12:24

Просмотр сообщенияVaccina (28 Январь 2014 - 03:37) писал:

Попробуйте реализовать подобное изменение:
http://forum.storela...ике/#entry54790


Вставил, не работает все равно. Данные в метрику не передаются.

<button type="submit" class="button pur">{% IF ORDER_STAGE_NUM=4%} Оформить заказ
						  
								
<input class="more-link oform" type="submit" name="tonext" value="" onclick="yaCounter9493753.reachGoal('ORDER','{% FOR cart_sum %}{cart_sum.NOW_WITH_DELIVERY} руб.{% ENDFOR %}'); return true;"/>
							  
{% ELSE %}Следующий шаг{% ENDIF %}</button>

Данные по целям попадают в метрику, но данных по заказам нет.

#9 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 29 Январь 2014 - 01:10

У вас правильно задан идентификатор счетчика метрики "9493753"? Возможно у вас он другой. Так же проверьте ту ли статистику вы проверяете и дополнительно почитайте следующие темы форума (ранее данный вопрос обсуждался)
http://forum.storela...ике/#entry55119
http://forum.storela...аза/#entry88949

#10 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 29 Январь 2014 - 12:44

Просмотр сообщенияСake (29 Январь 2014 - 01:10) писал:

У вас правильно задан идентификатор счетчика метрики "9493753"? Возможно у вас он другой. Так же проверьте ту ли статистику вы проверяете и дополнительно почитайте следующие темы форума (ранее данный вопрос обсуждался)
http://forum.storela...ике/#entry55119
http://forum.storela...аза/#entry88949


1. Номер счетчика метрики явно тот, раз остальная статистика собирается.
2. Что значит "ту ли статистику проверяете?"


Ранее я показал все коды, которые были добавлены на сайт на основании всех тем на форуме по данному вопросу.


<!-- Yandex.Metrika counter -->
<script type="text/javascript">
if(document.referrer.indexOf('/order/stage/confirm') !== -1) {
var yaParams = {order_id: "{ORDER_NUM}",
order_price: "{ORDER_SUM}",
currency: "RUR",
exchange_rate: 1,
goods:
[
{%FOR order_lines%}{% IF order_lines.TYPE_ID=1 %}
{
id: "{order_lines.GOODS_ID}",
name: "{order_lines.NAME}",
price: "{order_lines.LINE_SUM}",
quantity: "{order_lines.QUANTITY}"
},
{% ENDIF %}{%ENDFOR%}
]};
}
</script>
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
				 try {
								 w.yaCounter9493753 = new Ya.Metrika({id:9493753,
																 webvisor:true,
																 clickmap:true,
																 trackLinks:true,
																 accurateTrackBounce:true,params:window.yaParams||{ }});
				 } catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
				 s = d.createElement("script"),
				 f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
				 d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/9493753" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->




Изображение


Изображение

#11 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 30 Январь 2014 - 02:31

1. Статистика может собираться не по одному счетчику, так же существует фактор копирования и случайной ошибки. Необходимо исключить подобные варианты проблемы.

2. Иногда пользователи проверяют статистику не в том разделе - в котором она должна появиться.

Возможно проблема возникает из-за вставленных 2х дублирующих счетчика в ваш шаблон. Первый код счетчика задается непосредственно после строки

if(document.referrer.indexOf('/order/stage/confirm') !== -1) {

второй код счетчика задается в самом конце шаблона, сразу после кнопки

<input class="more-link oform" type="submit" name="tonext" value="" onclick="yaCounter9493753.reachGoal('ORDER','950 руб.'); return true;"/>

Возможно код счетчика переопределяется и в связи с этим работает немного не так как планируется. Попробуйте удалить последний дубликат счетчика.

#12 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 30 Январь 2014 - 09:49

Просмотр сообщенияСake (30 Январь 2014 - 02:31) писал:

1. Статистика может собираться не по одному счетчику, так же существует фактор копирования и случайной ошибки. Необходимо исключить подобные варианты проблемы.

2. Иногда пользователи проверяют статистику не в том разделе - в котором она должна появиться.

Возможно проблема возникает из-за вставленных 2х дублирующих счетчика в ваш шаблон. Первый код счетчика задается непосредственно после строки

if(document.referrer.indexOf('/order/stage/confirm') !== -1) {

второй код счетчика задается в самом конце шаблона, сразу после кнопки

<input class="more-link oform" type="submit" name="tonext" value="" onclick="yaCounter9493753.reachGoal('ORDER','950 руб.'); return true;"/>

Возможно код счетчика переопределяется и в связи с этим работает немного не так как планируется. Попробуйте удалить последний дубликат счетчика.


Так я этот код добавил, потому что ничего не работало и мне было предложено в этой же теме его добавить/исправить )
Сейчас удалил вообще.

А в основных настройках его нужно оставить? Настройки -> Основные

#13 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 31 Январь 2014 - 01:46

Код счетчика (инициализация) на странице у вас должен быть только один. Сам код отслеживания необходимо размещать на странице "Просмотр заказа", в шаблоне "HTML" не доступны переменные заказа order_lines. В шаблоне "Просмотр заказа" должен содержаться примерно следующий код

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
if(document.referrer.indexOf('/order/stage/confirm') !== -1) {
var yaParams = {order_id: "{ORDER_NUM}",
order_price: "{ORDER_SUM}",
currency: "RUR",
exchange_rate: 1,
goods:
[
{%FOR order_lines%}{% IF order_lines.TYPE_ID=1 %}
{
id: "{order_lines.GOODS_ID}",
name: "{order_lines.NAME}",
price: "{order_lines.LINE_SUM}",
quantity: "{order_lines.QUANTITY}"
},
{% ENDIF %}{%ENDFOR%}
]};
}
</script>
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
				 try {
								 w.yaCounter19561387 = new Ya.Metrika({id:19561387,
																 webvisor:true,
																 clickmap:true,
																 trackLinks:true,
																 accurateTrackBounce:true,params:window.yaParams||{ }});
				 } catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
				 s = d.createElement("script"),
				 f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
				 d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/19561387" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

Код взят из темы форума указанной ранее (http://forum.storela...аза/#entry89246)

#14 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 31 Январь 2014 - 11:35

Просмотр сообщенияСake (31 Январь 2014 - 01:46) писал:

Код счетчика (инициализация) на странице у вас должен быть только один. Сам код отслеживания необходимо размещать на странице "Просмотр заказа", в шаблоне "HTML" не доступны переменные заказа order_lines. В шаблоне "Просмотр заказа" должен содержаться примерно следующий код

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
if(document.referrer.indexOf('/order/stage/confirm') !== -1) {
var yaParams = {order_id: "{ORDER_NUM}",
order_price: "{ORDER_SUM}",
currency: "RUR",
exchange_rate: 1,
goods:
[
{%FOR order_lines%}{% IF order_lines.TYPE_ID=1 %}
{
id: "{order_lines.GOODS_ID}",
name: "{order_lines.NAME}",
price: "{order_lines.LINE_SUM}",
quantity: "{order_lines.QUANTITY}"
},
{% ENDIF %}{%ENDFOR%}
]};
}
</script>
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
				 try {
								 w.yaCounter19561387 = new Ya.Metrika({id:19561387,
																 webvisor:true,
																 clickmap:true,
																 trackLinks:true,
																 accurateTrackBounce:true,params:window.yaParams||{ }});
				 } catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
				 s = d.createElement("script"),
				 f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
				 d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/19561387" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

Код взят из темы форума указанной ранее (http://forum.storela...аза/#entry89246)


То есть мне нужно удалить его (этот примерный код) из "html" и вставить в "Просмотр заказа"?
Примерно такой - это заменить коды счетчика? Или что-то еще нужно поменять?

#15 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 01 Февраль 2014 - 01:49

Цитата

Примерно такой - это заменить коды счетчика?

Да, необходимо заменить только идентификаторы счетчика.

Цитата

То есть мне нужно удалить его (этот примерный код) из "html" и вставить в "Просмотр заказа"?

По сути можно не загружать весь код счетчика и удалять его из шаблона "HTML". (если удалить из шаблона "HTML" весь код, то другие цели работать не будут). Можно сделать следующее - в самый конец шаблона "HTML" перед тегом </body> вставить код

<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
								 try {
																 w.yaCounter19561387 = new Ya.Metrika({id:19561387,
																																 webvisor:true,
																																 clickmap:true,
																																 trackLinks:true,
																																 accurateTrackBounce:true,params:window.yaParams||{ }});
								 } catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
								 s = d.createElement("script"),
								 f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
								 d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/19561387" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

(В данном коде вам так же необходимо изменить идентификаторы счетчика). Данный код можно вставить и чуть выше, главное чтобы код находился ниже переменной {BODY}. В сам же шаблон "Просмотр заказа" вставить код

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
if(document.referrer.indexOf('/order/stage/confirm') !== -1) {
var yaParams = {order_id: "{ORDER_NUM}",
order_price: "{ORDER_SUM}",
currency: "RUR",
exchange_rate: 1,
goods:
[
{%FOR order_lines%}{% IF order_lines.TYPE_ID=1 %}
{
id: "{order_lines.GOODS_ID}",
name: "{order_lines.NAME}",
price: "{order_lines.LINE_SUM}",
quantity: "{order_lines.QUANTITY}"
},
{% ENDIF %}{%ENDFOR%}
]};
}
</script>

Этого будет достаточно, так как переменная yaParams будет инициализирована раньше самого счетчика.

#16 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 02 Февраль 2014 - 22:37

Просмотр сообщенияСake (01 Февраль 2014 - 01:49) писал:

Да, необходимо заменить только идентификаторы счетчика.



По сути можно не загружать весь код счетчика и удалять его из шаблона "HTML". (если удалить из шаблона "HTML" весь код, то другие цели работать не будут). Можно сделать следующее - в самый конец шаблона "HTML" перед тегом </body> вставить код

<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
								 try {
																 w.yaCounter19561387 = new Ya.Metrika({id:19561387,
																																 webvisor:true,
																																 clickmap:true,
																																 trackLinks:true,
																																 accurateTrackBounce:true,params:window.yaParams||{ }});
								 } catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
								 s = d.createElement("script"),
								 f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
								 d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/19561387" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

(В данном коде вам так же необходимо изменить идентификаторы счетчика). Данный код можно вставить и чуть выше, главное чтобы код находился ниже переменной {BODY}. В сам же шаблон "Просмотр заказа" вставить код

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
if(document.referrer.indexOf('/order/stage/confirm') !== -1) {
var yaParams = {order_id: "{ORDER_NUM}",
order_price: "{ORDER_SUM}",
currency: "RUR",
exchange_rate: 1,
goods:
[
{%FOR order_lines%}{% IF order_lines.TYPE_ID=1 %}
{
id: "{order_lines.GOODS_ID}",
name: "{order_lines.NAME}",
price: "{order_lines.LINE_SUM}",
quantity: "{order_lines.QUANTITY}"
},
{% ENDIF %}{%ENDFOR%}
]};
}
</script>

Этого будет достаточно, так как переменная yaParams будет инициализирована раньше самого счетчика.


не помогло

#17 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 04 Февраль 2014 - 04:23

На данный момент у вас код инициализации счетчика добавлен стразу после открывающего тега <body>. Ранее же вам сообщалось, что код инициализации счетчика необходимо разместить перед закрывающем тегом </body> после {BODY}. Данный тег находиться в самом конце вашего шаблона "HTML".

#18 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 04 Февраль 2014 - 13:23

Просмотр сообщенияСake (04 Февраль 2014 - 04:23) писал:

На данный момент у вас код инициализации счетчика добавлен стразу после открывающего тега <body>. Ранее же вам сообщалось, что код инициализации счетчика необходимо разместить перед закрывающем тегом </body> после {BODY}. Данный тег находиться в самом конце вашего шаблона "HTML".

исправил

#19 Razverni

Razverni

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 04 Февраль 2014 - 23:56

Просмотр сообщенияСake (04 Февраль 2014 - 04:23) писал:

На данный момент у вас код инициализации счетчика добавлен стразу после открывающего тега <body>. Ранее же вам сообщалось, что код инициализации счетчика необходимо разместить перед закрывающем тегом </body> после {BODY}. Данный тег находиться в самом конце вашего шаблона "HTML".

не сработало

#20 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 05 Февраль 2014 - 02:48

Попробуйте в шаблоне "Просмотр заказа" найти строку

if(document.referrer.indexOf('/order/stage/confirm')

и заменить её на

if(document.referrer.indexOf('/order/stage/execute')

по всей вероятности проблема кроется именно в этом (на данный момент). Так же для временного тестирования можно строку

if(document.referrer.indexOf('/order/stage/execute')

будет заменить на

if(true || document.referrer.indexOf('/order/stage/execute')

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





Темы с аналогичным тегами yandex, metrika, yandex.metrika, цели

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных