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.

4 comentarios:

Unknown dijo...

hola Damian,

tengo una web en asp.net (no soy programadora ni nada x el estilo). Quiero agregar adsense y me gustaría saber si vos me podes cotizar el trabajo de agregar adsense en algunas paginas????

mi mail es dvaldiviaaguilar@gmail.com

gracias

Damián Bacalov dijo...

Daniela,

La tarea es tan sencilla que me daría un poco de verguenza cobrar por ello.

Pasame la URL de tu sitio para verlo.

Saludos.

Unknown dijo...

Hola Damíán,

He probado tu ejemplo, pero mi pagina es html, y he puesto un iframe con un aspx que llama a tu ejemplo, pero no parece funcionar, creo que es por estar en un iframe, esto es posible?

Damián Bacalov dijo...

Sat,

Lo que puse es ASPX, en particular un UserControl. No te va a funcionar en un HTML.

Y cuando tenes un IFrame, el referer es el de la página que lo contiene. por eso no te funciona.