Jump to content

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


Recommended Posts

JustDavali, спасибо поставил, вроде работает.

 

Есть вопросы:

1) как в дальнейшем вы используете эту информацию? Я имею ввиду "параметры интернет-магазинов" из метрики.

Что чего купил и почём - этот очёт и так в симпле есть

 

2) здесь товары прописываются в метрику только когда оформляется заказ. Цель "Добавить в корзину" здесь по товарам не деталлизируется. Правильно ли это? Может имеет смысл добавить аналогичный код и в cart.tpl?

 

3) У меня цели в Меитрике сделаны не через события, как у автора а по-проще - переходы на страницу

  •   url содержит /cart (корзина)
  •   url содержит /order (заказ)

Прежде всего потому, что у меня при нажатии на кнопку Добавить товар сразу перебрасывает пользователя на страницу корзины (для усиления конверсии - как правило заказывают всё-равно один товар)

Но я тут подумал - если пользователь добавит товар, а потом опять будет бродить по сайту, затем опять перейдёт в корзину (по ссылке) - правильно ли будут зафиксированы цели в этом случае?

 

4) есть ли что-то подобное для Гугл Аналитикс?

Link to post
Share on other sites
  • 2 weeks later...

проработала у меня эта штука 10 дней, решил посмотреть результат.

Захожу в раздел "Заказы в метрике" и вижу неимоверную сумму на пересечении Стоимость и Итого.  :o

Думаю, раз я так богат, то где же деньги?

 

Начинаю разбираться, оказывается он неправильно учитывает кол-во - например, вместо кол-во 3 и 5 он в метрику отправил 33 и 55 соответсвенно. У другого - вместо 3-х - 9. У некоторых - всё правильно.

 

Закономерности точно не нашёл. Как правило в заказе, где товар 1 и кол-во = 1 - там нормально.

 

Кто-то ещё это анализировал?

 

С чем может связана эта проблема?

Link to post
Share on other sites
  • 2 weeks later...

Отлично работает! Спасибо большое. Есть еще момент - насколько я понимаю, в инструкции перечислены параметры интернет-магазина. А для параметров визита (в Метрике это в той же вкладке, что и параметры ИМ - Содержание) какие будут переменные?

 

Имеются ввиду переменные по типу этих:

order_id: "{/literal}{$order->id}{literal}",
order_price: {/literal}{$order->total_price}{literal},

Link to post
Share on other sites
  • 3 weeks later...

Скажите, а это вообще архитектурно правильно, что страница подтверждения заказа и страница просмотра заказа — это одно и тоже (/order/***)?

Клиент переходит по ссылке из письма в своей почте для просмотра уже совершенного заказа, а метрика считает это достижением цели Заказ. И настоящий источник заказа (реферер) перезаписывается на e.mail.ru/*** (если человек пользуется веб-интерфейсом mail.ru). А если прошло несколько дней и человек заходит по ссылке в письме, то цель "Заказ" снова считается достигнутой, и от этого в отчетах Метрики количество заказов за определенный период времени всегда больше реально новых заказов за этот период

 

Действительно ли в этом косяк? Есть ли способы обойти это? Или только симплу переделывать?

Link to post
Share on other sites
  • 2 weeks later...
  • 6 months later...
  • 1 month later...
  • 4 weeks later...

 

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

 

 

 

Сам код метрики вставляет в 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 минуты заходит на ту же страничку, посмотреть как там статус.

Можно ли сделать чтобы все данные передавались по клику на кнопку оформить заказ?

Link to post
Share on other sites
  • 6 months later...
  • 1 month later...
  • 1 month later...

Здравствуйте!!! Подскажите что делаю не так?
Хочу подключить метрику к сайту

1. Создал счетчик

2. Взял код

3.Вставляю в файл index.tpl

вот крин http://prntscr.com/8l2ae1 а она не пашет

где причину искать?

Заранее огромное спасибо за ответы:)

Edited by djekson
Link to post
Share on other sites

убрал http://prntscr.com/8l2hsp все равно не работает http://prntscr.com/8l2i7z

 

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

вы пробовали нажать на кнопку обновить в Я.метрике? красная такая.

 

еще рекомендовал бы кидать сразу ссылку на сайт. возможно у вас там ошибки js какие-то есть еще, здесь нет экстрасенсов 

 

---

 

Зайдя на сайт, что засветился на скрине, увидел что у вас совсем нет никакой метрики в коде на главной. хотя на внутренних страницах она есть. следовательно у вас еще где-то есть обертка, отвечающая за главную страницу. смотрите файл main.tpl и что у вас написано в wrapper

 

{$wrapper = 'index.tpl' scope=parent}

если там не index.tpl, нужно добавить еще код и в тот файл который там написан.

Edited by mishanya
Link to post
Share on other sites
  • 1 year later...
  • 2 years later...

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

 

мне советовали вот так

 

Чтобы передавалось один раз, в шаблоне блок передачи заключите в {if $smarty.server.HTTP_REFERER|strpos:"/cart/"} ... {/if}

 

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

 

Коллеги, подскажите, я правильно понимаю что мануал устарел?

Нет случайно инструкции по настройке eкомерс данных в метрике?

 

https://yandex.ru/support/metrika/data/e-commerce.xml#ecommerce-data

 

да, мануал устарел, мне вот за энные деньги настроили, не исключено что могу задешево поделиться:-)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...