m@ksim

Рейтинг
165
Регистрация
02.05.2005
Должность
LiveInternet

Если вам нужен код определения поискового запроса на JavaScript, то это всего десяток-другой строк. Разумеется, безо всяких внешних API, просто из реферера.

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


<html>
<body>

<script type="text/javascript"><!--
function getSearchQuery()
{
var engines = [["google.", "q"], ["yandex.", "text"], ["go.mail.ru", "q"], ["rambler.ru", "query"]];

var re = new RegExp("^https?://([^/]*)/([^?]*)[?](.*)$");
var parts = re.exec(document.referrer);
if (parts) {
var i;
for (i = 0; i < engines.length; i++) {
if (parts[1].search(engines[0]) >= 0) {
var params = parts[3].split("&");
var j;
for (j = 0; j < params.length; j++) {
var p = params[j].split("=");
if (p[0] == engines[1]) {
try {return decodeURIComponent(p[1]);}
catch (err) {return unescape(p[1]);}
}
}
}
}
}
return "";
}
//--></script>


Example:

<script type="text/javascript"><!--
var search_query = getSearchQuery();
if(search_query) document.write("search query: " + search_query);
//--></script>

</body></html>
alyarobinsss:
Спасибо за ответ. Может быть Вы знаете? Если посетители идут с поисковой выдачи google.ru/, почему не отслеживаются поисковые фразы?

Потому что Гугл сам специально подменяет реферер на такой, в котором вырезана поисковая фраза. Либо на простой https://www.google.ru/, либо на длинный с параметрами, в которых нет поисковой фразы.

---------- Добавлено 23.10.2013 в 21:03 ----------

MVYur:
Гугл начал повсеместно внедрять в свою органическую выдачу протокол https, а при переходе с сайта, поддерживающего https на обычный http сайт, рефер, а соответственно, и поисковый запрос, не передаётся.

Вы путаете две разных проблемы.

Проблема не в переходе https->http. Проблема в вырезании Гуглом поискового запроса из параметров. При переходе с Гугла есть реферерер. В реферере нет поискового запроса.

При переходе с поисковой выдачи Гугл сам ставит реферер https://www.google.ru/

В тех браузерах, в которых может поставить (например, Chrome).

MisterCh:
В связи с засильем Not Provided возник такой вопрос - а если перевести свой ресурс на протокол htttps , будет ли передаваться реферер?

Реферер передается почти всегда. Не передается и не будет передаваться поисковый запрос в реферере.

Alkoshenko:
и это мои 30% получается?

У вас что, 100% поисковых переходов с Гугла?

Гугл всех отправляет на свою https-версию, жесткий редирект с http. А при переходе с https-страниц Гугл убирает из адреса поисковый запрос. Остались только какие-то очень редкие частные случаи, когда редирект не делается.

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

Mylena:
Т.е. все пользователи ЖЖ обделены лайвинтернетом? Вот этот новость :)

Если не нужна информация, откуда переходят на дневник, а достаточно только информации об объемах посещаемости, то можно пользоваться и liveinternet'ом. Для ЖЖ выдается простой код без JavaScript.

Чем же они тогда пользуются..

Ничем, наверное :)

А если нужна информация о ссылающихся страницах, то Google Analytics.

LiveJournal запрещает пользователям устанавливать код с javascript. Вы никак не сможете получать информацию о ссылающихся страницах при самостоятельной установке любого счетчика.

Можете воспользоваться подключаемым непосредственно через LJ Google Analytics.

okirill:
Но для какого региона обозначены эти позиции?

Для Москвы.

Всего: 938