Клуб Яндекс.Метрики

Не могу передать содержание заказа в Метрику

Пост в архиве.

У меня на странице корзины все поля для ввода подробной информации о заказе и кнопка "Заказать". На ней висит onclick

 

<button type="submit"onclick="yaCounter233973.reachGoal('good_order'); return true;" id="order_button">
                         <img src="design/{$settings->theme}/images/placeorder.png" />
                    </button>

Это на странице http://www.busiki-kolechki.ru/cart еще нет информации о номере заказа, и передать его я не могу, поэтому на следующей странице "Спасибо за покупку" http://www.busiki-kolechki.ru/order/b651e3c0199f333cfc0265f0b8b4626d я разместил такой код:

 

<script type="text/javascript">
var yaParams =
   

{
  order_id: "15592",
  order_price: "684.00",
  goods:
       [
 
     

  {
    id: "29306",
         
    price: "489.00"
  }     
          ]
   
};
  </script>

И вот ведь не работает — не передается информация.

+ еще проблема, страница "Спасибо за заказ" может вызываться много раз, поэтому использовал onclick, без этого нельзя.

 

20 комментариев

Типы целей указали?

В качестве типа цели "Заказ" ставите "содержит /order/", а целью "Корзина" ставите "содержит good_order".

Должно заработать.

Денис Матаков
27 января 2016, 22:56

Как раз good_order и является заказом, а также переходным пунктом от /cart до /order

 

Если я укажу /order  как заказ, то у меня каждое открытие этой страницы станет целью, а она также является страницой состояния заказа, ее открывают чаще чем 1 раз.

 

К тому же я уже пробовал сделать /order целью "заказ", правда не делал целью корзина "good_order", ведь корзина у меня /cart

 

Ради интереса сейчас попробую.

Если вы хотите, чтобы цель "Заказ" достигалась лишь 1 раз - надо делать промежуточную страницу "Большое Вам спасибо за заказ!!", на ней разместить передаваемые в Метрику параметры, и ее адрес сделать целью. А с нее юзер переходит на следующую страницу статуса и выбора метода оплаты.

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

Отсюда вопрос - так ли важно Вам считать уникальные хиты по цели "Заказ", или вам важнее актуальные цены и суммы в отчете Метрики по интернет-торговле? Если второе, то для уникальных хитов используем цель-Корзину "good_order": их кол-во будет высвечиваться в панели Метрики, и вы увидите сколько у вас уникальных оформлений заказов.

 

Насчет множественных зачислений параметров заказа - не переживайте, Метрика по order_id отсечет лишние, в разделе отчетов "параметры интернет-магазинов" учитывается последнее увиденное значение каждого номера заказа.

Денис Матаков
27 января 2016, 22:56

Звучит все хорошо, но, сделав по предложенному вами сценарию цели — информация так и не стала поступать в "Электронную коммерцию". Нет данных за период.

 

Уж извелся весь. Есть у кого желание за деньги это все настроить до рабочего состояния?

Денис Матаков
27 января 2016, 22:56

А может быть эта проблема из-за того, что код отправки информации о заказе выше кода самой метрики?

Фигню со скриптом-андефиндом можно вообще убрать, а остальное нормально.

Код информации о заказе должен быть выше вызова самой Метрики, чтоб она при инциализации его сразу "увидела" и отправила.

Денис Матаков
27 января 2016, 22:56

Что такое андерфинд-скрипт?

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

 

Вот сейчас цель "Заказ" эта страница http://www.busiki-kolechki.ru/order/b651e3c0199f333cfc0265f0b8b4626d

На ней же все коды. Ну почему не работает? Все ж по уму сделано.

Вот этот кусок кода уберите:

 

Денис Матаков
27 января 2016, 22:56

Убрал, с замиранием сердца жду 10 минут, вдруг заработает. Спасибо, эту информацию дает Метрика, когда выдается счетчик, в этом корень зла.

Денис Матаков
27 января 2016, 22:56

Хотя здесь стоит условие, если yaParams не был определен ранее. Вроде как и не должно эту строчку перезаписывать?

Если этот скрипт и использовать, то в "боевом" режиме - когда в нем прописано действительное содержимое заказа, а не рыба "/*Здесь параметры визита*/". В вашем варианте этот кусок был лишний.

Из оставшихся недостатков - у вас не прописаны валюта заказа (параметр "currency" в заголовке), и кол-во единиц каждого товара (параметр "quantity" в товаре). Но всё должно заработать и без них.

Денис Матаков
27 января 2016, 22:56

Вик, спасибо тебе огромное, все заработало :-)

Прямо 1 декабря, хоть просчитаю откуда сколько денег приходит. Ты молодец.

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

Добрые дела безвозмездны B-)

На благотворительность передайте для других хороших дел! Например, Стране Без Наркотиков или Википедии :)

А если в одном счёте несколько товаров , как передать это?

  goods:
  [{
    id: "29306",
    price: "489.00"
  },{

     id: "29307",
    price: "589.00"  

}]
};

 

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

Должно работать. Посмотрите еще раз внимательно, вдруг буква где не латинская затесалась?

При одном продукте работает, при двух уже не работает.

Может синтаксис не тот?

Может надо не два обьекта внутри масива, а два масива? 

Товары внутри массива.

Поскольку данные о заказе передаются через GET, то еще имеется ограничение на длину строки - попробуйте убрать названия товара "name" и оставить лишь их "id".

 

Можно открыть на целевой странице консоль Chrome или FireBug, и посмотреть во вкладке "Network" на отправляемый запрос в сторону mc.yandex.ru/watch - там строчка "site-info" покажет, передан ли был второй товар хоть частично. Если его вообще нет в строчке, то проблема где-то в ваших запятых. >:-)

 

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

Может какие то фильтры срабатывают? 

Если вы повесили цель "подтверждение заказа" на клик, то в некоторых случаях Метрика не успевает исполнить скрипт с передачей этих данных ДО рефреша/перехода. Это недостаток самого языка JS, лучше не вешать ничего на клики...

Если целью "заказ" сделать целевую страницу "Спасибо за покупку", и там разместить код yaparams - тогда точно запишутся все данные заказов, кроме тех, что были оформлены при отключенном яваскрипте, и при заблокированном (например, AdBlock easyPrivacy list) js-счетчике.

 

При отключенном js или блокированном счетчике Метрики - записывается лишь запрос gif-счетчиком, который может показать только посещение целевой страницы, но не содержимое yaparams. Это не должно быть массово, таких юзеров единицы среди тысяч.

Других фильтров нет.

Денис Матаков
27 января 2016, 22:56
Теперь заказы передаются, но не все. Раз в 4-7 заказов. То есть номер 1,7,8,18,26 например.

Как сделать так, чтобы они подряд передавались? Это проблема в сайте или метрика просто не успевает все обрабатывать?
Сайт на выделенном сервере стоит, не должно быть с ним косяков.