Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Middleware para detectar visitas desde buscadores

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: Facebook: Twitter: | Categorías: middleware, snippets

Entradas similares

Subdominios con Django

En ocasiones nos interesa trabajar con subdominios en nuestros proyectos Django. Para ello podemos utilizar un sencillo middleware para subdominios que podemos encontrar en ...


Generar miniaturas de imágenes con django-thumbs

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: slugs a prueba de caracteres internacionales

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 ...


Formularios con Django sin SPAM

¿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 ...


 
 

2 comentarios:

El Miércoles 1 de Mayo de 2013 http://xn--jxanabrbc4cmvc4b.net/ dijo:
Thanks
El Jueves 30 de Mayo de 2013 VIP escort dijo:
You can't really say what is beautiful about a place, but the image of the place will remain vividly with you.

Escribe un comentario:

captcha