Как определить поисковый запрос, перенаправляющий пользователя на мой сайт?

Приветствия,

Я пытаюсь выяснить, какой запрос используется для пересылки людей на мой сайт. Я был бы признателен, если бы кто-нибудь мог сказать мне, что говорит api, о котором я должен смотреть. Я уверен, что это возможно с javascript, а также с ruby ​​и php, поэтому любая технология в порядке.

Просто ради изучения, я не возражаю, знаю, что я должен использовать для всех трех:

Ответы

Ответ 1

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

Как уже говорили вам другие ответы, первым шагом является проверка заголовка HTTP_REFERER. Предполагая, что вы используете Rails, вы можете получить его из запроса

request.referrer

В противном случае вам нужно извлечь его из заголовков запроса другим способом.

Как только у вас есть реферер, вы окажетесь перед тремя основными возможностями:

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

Первый вариант прост. То, что вы хотите знать, - это ссылка на поисковую систему. Если это так, вам нужно извлечь запрос.

Самый распространенный способ сделать это - использовать контрольный список. Контрольный список обычно представляет собой список ключей/значений, в которых ключ является доменом поисковой системы и значением имени параметра строки запроса, который содержит значение запроса.

google.com,q
yahoo.com,p
...

Это тот же подход, который используется Google Analytics. Из файла ga.js

g.T=l("daum:q,eniro:search_word,naver:query,images.google:q,google:q,yahoo:p,msn:q,bing:q,aol:query,aol:encquery,lycos:query,ask:q,altavista:q,netscape:query,cnn:query,about:terms,mamma:query,alltheweb:q,voila:rdata,virgilio:qs,live:q,baidu:wd,alice:qs,yandex:text,najdi:q,aol:q,mama:query,seznam:q,search:q,wp:szukaj,onet:qt,szukacz:q,yam:k,pchome:q,kvasir:q,sesam:q,ozu:q,terra:query,mynet:q,ekolay:q,rambler:words");

Первый хост соответствует как ключу, так и значению, сначала выигрывает.

Ответ 2

Проверьте заголовок HTTP-запроса Referer ваших посетителей ($_SERVER['HTTP_REFERER'] в PHP). Это позволит в 90% случаев предоставить вам страницу, с которой пришел ваш посетитель. Если это страница поисковой системы, вам необходимо декодировать повторитель реферирования и анализировать данные из него (обратите внимание, что формат строки запроса может измениться).

Это больше работает, чем Google Analytics, и простой пример, который я дал, не дает вам столько данных; но может быть сделано, если вам не нравится, когда Google делает сбор данных для вас.

Ответ 3

В рубине вы можете получить реферер, выполнив

request.referrer

Параметры запроса доступны в ваших представлениях и контроллерах. Если вы хотите увидеть другие опции на request, просто добавьте

<%= request.inspect %>

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

Ответ 4

Я думаю, что это будет очень полезно для вас проверить. В нем подробно объясняется, как сделать именно то, что вы пытаетесь сделать:

http://www.alistapart.com/articles/searchhighlight/

Ответ 5

Попробуйте Google Analytics. Это даст вам поисковые системы, поисковые запросы и ссылки сайтов в деталях.