Saber si nuestro visitante viene de un buscador es interesante en varios casos. Por ejemplo para almacenar el término de búsqueda que le ha llevado a nuestro sitio web o desde qué buscador ha llegado para nutrir nuestras estadísticas. También nos sirve para destacar en nuestro sitio los términos de búsqueda sobre el resto del texto, facilitando que el usuario identifique rápidamente los fragmentos de información que le interesan.
En otras ocasiones queremos mostrar anuncios sólo a quienes llegan a nuestro sitio desde un buscador para favorecer a nuestros visitantes habituales mostrándoles nuestra web sin anuncios (quienes entran directamente escribiendo nuestra URL en su navegador). Lo que por otro lado también nos ayuda generalmente a aumentar nuestro CTR, ya que nuestros visitantes habituales suelen hacer menos caso a la publicidad de nuestro sitio web.
Este middleware te permite saber si el usuario proviene de un buscador y en tal caso acceder a la información de búsqueda: de qué buscador proviene y qué términos ha utilizado para la búsqueda. Para hacerlo funcionar debemos añadirlo a nuestro setting MIDDLEWARE_CLASSES. Con esto podremos acceder desde nuestras vistas a request.search_referrer_engine (nombre del buscador), request.search_referrer_domain (dominio del buscador) y request.search_referrer_term (término buscado).
Para poder acceder al objeto request desde nuestras plantillas debemos asegurarnos de que tenemos 'django.core.context_processors.request' en nuestro setting TEMPLATE_CONTEXT_PROCESSORS y que al cargar nuestras plantillas desde nuestras vistas utilizando render_to_response les pasamos RequestContext de la siguiente manera:
from django.template import RequestContext
from django.shortcuts import render_to_response
def mi_vista(request):
# ...
return render_to_response('my_template.html', mi_diccionario_de_datos, context_instance=RequestContext(request))
De esta manera hacemos disponibles las variables de contexto en nuestras plantillas. Nota: Las vistas genéricas (generic views) utilizan RequestContext siempre.
Ahora podremos acceder desde nuestras plantillas a la información por ejemplo para mostrar anuncios sólo a los visitantes que provienen de buscadores:
{% if request.search_referrer_engine %}
<div class="anuncios"> ... </div>
{% endif %}
Publicado por Antonio Melé el Lunes 22 d Diciembre d 2008
Compártelo:
| Categorías:
middleware,
snippets
En ocasiones nos interesa trabajar con subdominios en nuestros proyectos Django. Para ello podemos utilizar un sencillo middleware para subdominios que podemos encontrar en ...
Tras ver que la mayoría de los proyectos existentes para generar miniaturas de imágenes aún no funcionan con la API de Storage y que ...
Slughifi es un código que mejora las características de la función slugify de django.template.defaultfilters. Soporta muchos más caracteres internacionales con todo tipo ...
¿Quieres luchar contra el SPAM en tus formularios sin tener que modificarlos? Una forma sencilla de evitar gran parte del SPAM automático son los ...
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas