Después de haber trabajado con los motores de búsqueda durante más de 5 años, puedo decir que no hay una forma estándar de recuperar el valor de la consulta.
Como ya le han dicho otras respuestas, el primer paso es inspeccionar el encabezado HTTP_REFERER
. Suponiendo que está utilizando rieles, se puede obtener de la solicitud
request.referrer
De lo contrario, es necesario extraerlo de las cabeceras de solicitud en una otra manera.
Una vez que tenga la URL de referencia, entonces usted está frente a 3 posibilidades principales:
- variable está vacía. Lo sentimos, no se puede hacer nada
- variable no está vacía, es un motor de búsqueda
- variable no está vacío, no es un motor de búsqueda
La primera opción es simple. Lo que quieres saber es si el referente es un motor de búsqueda. Si es así, entonces necesita extraer la consulta.
La forma más común de hacerlo es usando una lista de verificación. La lista de verificación suele ser una lista de clave/valor donde la clave es el dominio del motor de búsqueda y el valor del nombre del parámetro de cadena de consulta que contiene el valor de la consulta.
google.com,q
yahoo.com,p
...
Este es el mismo enfoque utilizado por Google Analytics.Desde el archivo 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");
primer host coincide tanto clave y el valor, primero gana.
que ya utilizan paquetes de Estadísticas. Desea incorporar una mejor experiencia de uso basada en aquello para lo que están allí. – Steve