domingo, marzo 29, 2009

Mostrar AdSense sólo cuando el usuario viene de Google en ASP.NET

Es bastante común hoy en día encontrarnos con sitios que muestran publicidad de AdSense sólo a los usuarios que llegan a través de Google.

Por eso se me ocurrió hacer esto mismo pero de la forma más sencilla posible. Nada de estilo refinado en este caso, simplemente lo más fácil de implementar.

Así nació este User WebControl llamado refererAdSense contenido todo en un solo archivo .ascx. Seguramente el código puede ser mejorado o escrito con un poco más de estilo, sin embargo esto es lo que hice:

El WebControl comienza con una propiedad “AdPosition” que usaremos para identificar el código de AdSense que se debe mostrar. Un método booleano “UserFromGoogle” que devuelve true si encuentra la cadena “.google.” en el referer del request.

Por último, un simple SWITCH donde pondremos todos los códigos AdSense de nuestro sitio.

Para poder usar este User WebControl, simplemente lo copiamos en una carpeta (por ejemplo “/controls”) y, donde queremos la publicidad ponemos el tag “register” al principio de la página:

<%@ Register Src="~/controls/refererAdSense.ascx" TagName="refererAdSense" TagPrefix="rad" %>

Y finalmente ponemos el TAG correspondiente donde queremos la publicidad de AdSense:

<rad:refererAdSense AdPosition="topBanner" runat="server" />

Como valor de la propiedad “AdPosition” ponemos el nombre que identifica al bloque de AdSense del archivo .ascx.

Les dejo el refererAdSense.asxc para que lo bajen.