Если вам нужен код определения поискового запроса на 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>
Потому что Гугл сам специально подменяет реферер на такой, в котором вырезана поисковая фраза. Либо на простой https://www.google.ru/, либо на длинный с параметрами, в которых нет поисковой фразы.---------- Добавлено 23.10.2013 в 21:03 ----------
Вы путаете две разных проблемы.
Проблема не в переходе https->http. Проблема в вырезании Гуглом поискового запроса из параметров. При переходе с Гугла есть реферерер. В реферере нет поискового запроса.
При переходе с поисковой выдачи Гугл сам ставит реферер https://www.google.ru/
В тех браузерах, в которых может поставить (например, Chrome).
Реферер передается почти всегда. Не передается и не будет передаваться поисковый запрос в реферере.
У вас что, 100% поисковых переходов с Гугла?
Гугл всех отправляет на свою https-версию, жесткий редирект с http. А при переходе с https-страниц Гугл убирает из адреса поисковый запрос. Остались только какие-то очень редкие частные случаи, когда редирект не делается.
Поэтому никакие системы статистики не могут определить поисковый запрос при переходе с Гугла, можно определить только то, что это переход с Гугла.
Если не нужна информация, откуда переходят на дневник, а достаточно только информации об объемах посещаемости, то можно пользоваться и liveinternet'ом. Для ЖЖ выдается простой код без JavaScript.
Ничем, наверное :)
А если нужна информация о ссылающихся страницах, то Google Analytics.
LiveJournal запрещает пользователям устанавливать код с javascript. Вы никак не сможете получать информацию о ссылающихся страницах при самостоятельной установке любого счетчика.
Можете воспользоваться подключаемым непосредственно через LJ Google Analytics.
http://www.liveinternet.ru/help/group.html
Для Москвы.