Analytics
Сейчас в сети: 288
Сейчас в сети: 288
Обсуждение проблем, связанных с кодом отслеживания событий, кодом Universal Analytics и настройки междоменного отслеживания
Подсказки
star_border
Ответить

Динамическое создание виртуального пути к странице,

Студент ✭

Всем доброго дня! Мне необходимо реализовать динамическое создание виртуального пути к странице, включающий запрос. В саппорте сказано, что нужно добавить этот код "analytics.js: ga('send', 'pageview', '/search_results.php?q=klyuchevoe_slovo');" . А вот куда добавить таинственно умолчали. Подскажите плиз куда нужно вставлять. Сам код поиска создавал в CSE, но в классическом виде, через параметр запроса "q" ничего в аналитику не передается.


Утвержденные решения
Лучший ответ.
Решение
Утвердил автор темы Виктор Ч
Апрель

Re: Динамическое создание виртуального пути к странице,

Магистр ✭

Думаю в вашем случае достаточно параметра q

Т.е. код для формирования строки, содержащей путь будет примерно следующим:

var pathname = window.location.pathname,
    search = window.location.search;

search = search.replace('?', '') //Очищаем строку от знака вопроса
searchArray = search.split('&') //Разбиваем строку на массив, состоящий из параметров с их значениями
for(var i = 0; i < searchArray.length; i++){ //Найдем в массиве параметр q
  if(searchArray[i].match(/^q=/)){
    search = '?' + searchArray[i]; //Возвращаем ? на место и сохраняем параметр q в переменной search
    break
  }
}
var path = pathname + search;

ga('send','pageview', path)

 

Просмотреть решение в исходном сообщении


Все ответы

Re: Динамическое создание виртуального пути к странице,

Магистр ✭

Виктор, приветствую!

 

Сама команда ga('send', 'pageview') встречается в момент создания счетчика:

 

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXXX-X', 'auto');
  ga('send', 'pageview');

</script>

 

 

Каждый раз, когда будет вызываться эта функция, в Аналитику будет отправляться новый просмотр. В идеале нужно вызывать эту функцию лишь один раз на каждый просмотр страницы. Я бы для начала в самом счетчике внес корректировку, примерно так:

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXXX-X', 'auto');
if(window.location.search){
var path = ''//Находим pathname и search, присваиваем переменной path
ga('send', 'pageview', path);
} else {
ga('send', 'pageview');
}
</script>

 

Если нужны именно виртуальные страницы, то через javascript можно настроить события, при выполнении которых выполнялась бы функция ga('send', 'pageview', '/search_results.php?q=klyuchevoe_slovo')

Динамическое создание виртуального пути к странице,

Студент ✭

Спасибо огромное!!! Разобрался! А не подскажете, в стандартном случае, когда нужно просто параметр вставить, как быть если он вот такой: https://cse.google.com/cse?cx=012645768015029897193:qkoqkglciwa&q=электроприводы%20тула...... Это получается все эти "многосимволов" в качестве параметра вставлять или все же просто q , которое после амперсанда идет?

Лучший ответ.
Решение
Утвердил автор темы Виктор Ч
Апрель

Re: Динамическое создание виртуального пути к странице,

Магистр ✭

Думаю в вашем случае достаточно параметра q

Т.е. код для формирования строки, содержащей путь будет примерно следующим:

var pathname = window.location.pathname,
    search = window.location.search;

search = search.replace('?', '') //Очищаем строку от знака вопроса
searchArray = search.split('&') //Разбиваем строку на массив, состоящий из параметров с их значениями
for(var i = 0; i < searchArray.length; i++){ //Найдем в массиве параметр q
  if(searchArray[i].match(/^q=/)){
    search = '?' + searchArray[i]; //Возвращаем ? на место и сохраняем параметр q в переменной search
    break
  }
}
var path = pathname + search;

ga('send','pageview', path)

 

Динамическое создание виртуального пути к странице,

Студент ✭

Спасибо!!!