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


Яндекс Метрика И Оформление Заказа

метрика цели яндекс метрика оформление заказа счетчик

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

#1 stuffology

stuffology

    Новичок

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

Отправлено 11 Сентябрь 2013 - 09:14

Добрый день.

Есть счетчик яндекс.метрика. Необходимо задать цель на оформление заказа с передачей параметров.

Код счетчика. Помещен в шаблоне HTML внутри <body>:
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
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 -->

Код на передачу параметров взял из этой темы.

Далее настроил цель "Посещение корзины" на следующее условие по URL: "совпадает «stuffology.ru/cart» (корзина)"

Со второй целью, которая должна описывать подтверждение заказа на сайте и возникли проблемы.
На данный момент там стоит условие "/order/info/", из-за чего он считает все переходы и в уже оформленные заказы и те что при оформлении.
Если ставлю условие order/execute то условие вообще не срабатывает и никакие параметры не передаются, хотя видно что на эту страницу на некоторое время браузер переходит.
Если ставлю условие по метке(например "ORDER") и дописываю эту метку в кнопку "оформить заказ" кодом вида:
onclick="yaCounterXXXXXX.reachGoal('ORDER', yaParams); return true;"
То передается только достижение цели, параметры заказа не передаются.

Заказ оформляется в 4 шага. Как правильно задать условие для метрики чтобы учитывались только заказы сделанные на сайте и считалась конверсия?

#2 miyako

miyako

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

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

Отправлено 11 Сентябрь 2013 - 12:28

Просмотр сообщенияstuffology (11 Сентябрь 2013 - 09:14) писал:

Добрый день.

Есть счетчик яндекс.метрика. Необходимо задать цель на оформление заказа с передачей параметров.

Код счетчика. Помещен в шаблоне HTML внутри <body>:
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
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 -->

Код на передачу параметров взял из этой темы.

Далее настроил цель "Посещение корзины" на следующее условие по URL: "совпадает «stuffology.ru/cart» (корзина)"

Со второй целью, которая должна описывать подтверждение заказа на сайте и возникли проблемы.
На данный момент там стоит условие "/order/info/", из-за чего он считает все переходы и в уже оформленные заказы и те что при оформлении.
Если ставлю условие order/execute то условие вообще не срабатывает и никакие параметры не передаются, хотя видно что на эту страницу на некоторое время браузер переходит.
Если ставлю условие по метке(например "ORDER") и дописываю эту метку в кнопку "оформить заказ" кодом вида:
onclick="yaCounterXXXXXX.reachGoal('ORDER', yaParams); return true;"
То передается только достижение цели, параметры заказа не передаются.

Заказ оформляется в 4 шага. Как правильно задать условие для метрики чтобы учитывались только заказы сделанные на сайте и считалась конверсия?

Попробуйте воспользоваться инструкцией - http://forum.storela...ике/#entry54889

#3 stuffology

stuffology

    Новичок

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

Отправлено 11 Сентябрь 2013 - 12:42

Просмотр сообщенияmiyako (11 Сентябрь 2013 - 12:28) писал:

Попробуйте воспользоваться инструкцией - http://forum.storela...ике/#entry54889
Спасибо, но так я тоже пробовал. Передается только итоговая цена, а мне бы хотелось чтобы все параметры заказа отправлялись(включая все ID)

#4 Сake

Сake

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

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

Отправлено 12 Сентябрь 2013 - 02:18

Все ID доступны только на странице /order/info/ на странице order/execute этих данных еще нет, так как они не сформировались. Как вариант отслеживать заказ по referer. Замените ваш код

<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>

на

<script type="text/javascript">
if(document.referrer.indexOf('/order/stage/confirm') !== -1) {
(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>


#5 stuffology

stuffology

    Новичок

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

Отправлено 12 Сентябрь 2013 - 09:09

Просмотр сообщенияСake (12 Сентябрь 2013 - 02:18) писал:

Все ID доступны только на странице /order/info/ на странице order/execute этих данных еще нет, так как они не сформировались. Как вариант отслеживать заказ по referer. Замените ваш код
Спасибо. Про то что данных еще нет, я так и думал. Я пробовал переписать блок с yaParams чтобы он сохранял те данные которые сформированы на шаге 4 (общая цена и кол-во товаров с ценами), но хотелось бы полную информацию о заказе включая ID.

Если я буду использовать предложенный Вами код, то со стороны метрики надо будет задать условие подтверждения заказа вида "/order/info" ?  Тогда данные он будет передавать только если переход был с order/confirm, я правильно понимаю? Остальные цели от этого не пострадают?

#6 Сake

Сake

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

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

Отправлено 13 Сентябрь 2013 - 01:05

Да, вы правильно понимаете. Условие подтверждения будет отправляться только если пользователь попал на страницу /order/info с страницы /order/confirm

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

<!-- 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 -->

т.е получается что код

<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>

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

#7 stuffology

stuffology

    Новичок

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

Отправлено 13 Сентябрь 2013 - 09:26

Просмотр сообщенияСake (13 Сентябрь 2013 - 01:05) писал:

Да, вы правильно понимаете. Условие подтверждения будет отправляться только если пользователь попал на страницу /order/info с страницы /order/confirm
Остальные цели пострадать могут, если у вас используется только этот код для отслеживания всех целей. Если это так, то используйте код вида
Спасибо большое.

Скажите, а есть возможность ввести отдельную страницу для подтверждения заказа? Т.е. чтобы после order/confirm перебрасывало например на order/done, а в письмах были ссылки на order/info/<id заказа> ?

#8 Сake

Сake

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

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

Отправлено 14 Сентябрь 2013 - 03:08

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

#9 La_Primavera

La_Primavera

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

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

Отправлено 16 Апрель 2019 - 11:13

Здравствуйте! Помогите, пожалуйста, настроить цели по заказам. Указанного в инструкции блока нет. Сайт





Темы с аналогичным тегами метрика, цели, яндекс метрика, оформление заказа, счетчик

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

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