Перейти к содержанию
Официальный форум поддержки Simpla

Настройка Яндекс.Метрики


Рекомендуемые сообщения

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




Сам код метрики вставляет в index.tpl вот так:

{if $module != 'OrderView'}
{literal}
<script type="text/javascript">
(function (d, w, c) {
   (w[c] = w[c] || []).push(function() {
       try {
           w.yaCounter*********= new Ya.Metrika({id:**********,
                   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/********" style="position:absolute; left:-9999px;" alt="" /></div></noscript>

{/literal}
{/if}



А затем вот такую конструкцию в файл order.tpl

{literal}
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
var yaParams = {
 order_id: "{/literal}{$order->id}{literal}",
 order_price: {/literal}{$order->total_price}{literal}, 
 currency: "RUR",
 exchange_rate: 1,
 goods: 
    [
 {/literal}{foreach $purchases as $purchase}{literal}
       {
         name: "{/literal}{$purchase->product_name|escape}{literal}", 
         price: {/literal}{$purchase->price}{literal},
         quantity: {/literal}{$purchase->amount}{literal}
       } {/literal}
	{if $purchase@last} {else},{/if}
 {/foreach}{literal}
     ]
};
</script>



<script type="text/javascript">
(function (d, w, c) {
   (w[c] = w[c] || []).push(function() {
       try {
           w.yaCounter********* = new Ya.Metrika({id:*********,
                   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/***********" style="position:absolute; left:-9999px;" alt="" /></div></noscript>


{/literal}


**** - это ваш ID счетчика метрики
Для того, что бы все работало надо, что бы у вас были настроены цели - корзина и подтверждение заказа

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

Добавляет цель в метрике, тип "событие"
Идентификатор, например indexADD2CART

Затем открываем main.tpl находим все места где успомнает кнопка "в корзину" и дописываем у них

onclick="yaCounter*******.reachGoal('mainADD2CART'); return true;"


**** - это ваш ID счетчика метрики
Получается что-то вроде этого:

<input type="submit" class="productsMoreBtn" onclick="yaCounter******.reachGoal('mainADD2CART'); return true;" value="Купить" data-result-text="Купить"/>



Теперь каждый раз когда вы или пользователь нажмет на главной странице кнопку "в корзину" в метрике будет засчитываться это как достижение цели.
Таким же образом можно добавить ввиде целей абсолютно все действия на сайте.
Просто нужным элементам добавляем:

onclick="yaCounter*******.reachGoal('ID цели'); return true;"

ID цели - ваш идентификатор, типа indexADD2CART, indexCREDIT, blogADDCOMMENT, productADDCOMMENT и т.д.



p.s. ЕСТЬ КОСЯКИ В МОЕМ РЕШЕНИИ, Я САМ ЭТО ЗНАЮ! ВМЕСТО ТОГО, ЧТО БЫ ПИСАТЬ КАК КРИВО Я ПРЕДЛОЖИЛ СДЕЛАТЬ - ВЫЛОЖИТЕ КАК НАДО СДЕЛАТЬ ПРАВИЛЬНО
Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

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

что не так?


<script type="text/javascript">var yaParams = {  order_id: "858",  order_price:   6300  ,   currency: "RUR",  exchange_rate: 1,  goods:      [	          {          name: "Полотенцесушитель водяной Energy Classic 600x600 ",           price: 5300,          quantity: 1        }					{	          name: "Доставка чугунных ванн в пределах МКАД",           price: 1000	}      ]};</script>
Ссылка на сообщение
Поделиться на другие сайты

Доставка чугунных ванн в пределах МКАД - это доставка! а не товар.....

цели настроены правильно:

1. Цель Корзина содержит «/cart» (корзина)
2. Цель Подтверждение заказа содержит «/order» (заказ)
3. оплата и доставка содержит «/sections/oplata_i_dostavka»
4. Контакты содержит «/sections/contacts»
5. О компании содержит «sections/about»

Ссылка на сообщение
Поделиться на другие сайты

в любом случае между

}
	
		{


должна быть запятая, смотрите свой order.tpl и правьте.
и должно стоять

quantity: 1
у доставки.
и по уму считать доставку как проданный товар неправильно на мой взгляд
Ссылка на сообщение
Поделиться на другие сайты

вот полный код из одного подтвенрждённого заказа в исходном коде!!!!!!!

посмотрите что в нём не так!!!!!!!!

данных ещё нет!!!!!!



<!-- Yandex.Metrika counter --><script type="text/javascript">var yaParams = {  order_id: "871",  order_price: 3695,   currency: "RUR",  exchange_rate: 1,  goods:      [	          {          name: "название товара1",           price: 3695,          quantity: 1        }		,				{	          name: "название товара2",           price: 0,          quantity: 1	}      ]};</script><script type="text/javascript">(function (d, w, c) {    (w[c] = w[c] || []).push(function() {        try {            w.yaCounter16628108 = new Ya.Metrika({id:16628108,                    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/16628108" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter -->
Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

{if $module != 'OrderView'}
Ссылка на сообщение
Поделиться на другие сайты

понЯтно!!!!!!!!!

сделал по другому!

вставил в индекс это, а в ордер как и положено по инструкции

<?php $sv = $_SERVER['REQUEST_URI']; if ($sv == '/order/'.basename($_SERVER['REQUEST_URI'])) { ?><?php } else { ?><!-- Yandex.Metrika counter --><script type="text/javascript">var yaParams = {/*Здесь параметры визита*/};</script><script type="text/javascript">(function (d, w, c) {    (w[c] = w[c] || []).push(function() {        try {            w.yaCounter16628108 = new Ya.Metrika({id:16628108,                    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/16628108" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter --><?php } ?>
Ссылка на сообщение
Поделиться на другие сайты

<script type="text/javascript">var yaParams = {  order_id: "{/literal}{$order->id}{literal}",  order_price: {/literal}{$order->total_price}{literal},   currency: "RUR",  exchange_rate: 1,  goods:      [	 {/literal}{foreach $purchases as $purchase}{literal}        {          name: "{/literal}{$purchase->product_name|escape}{literal}",           price: {/literal}{$purchase->price}{literal},          quantity: {/literal}{$purchase->amount}{literal}        } {/literal}		{if $purchase@last} {else},{/if}	 {/foreach}{literal}      ]};
Ссылка на сообщение
Поделиться на другие сайты

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

А мне надо миллион, скинете? Будьте уважительные к тем кто вам БЕСПЛАТНО помогает. Модератор.

Ссылка на сообщение
Поделиться на другие сайты

редактировать надо файлы в папке с шаблоном /design/имя шаблона
в компилед ничего засовывать не надо. даже из любопытства
в самом первом сообщении все есть для подключения метрики. все описанно как вставлять. не надо ничего выдумывать

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

А у меня белый лист, неисписано чист.. И в литерал оборачивал и перед закрытием боди, и после открытия, и кэш чистил, и перезагружал 250 раз. Кто-нибудь сталкивался?

 

Забыл в закрывающем литерал «/» поставить..

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...