Cómo mostrar AdSense solo a los que vengan de buscadores y RRSS

adsense buscadores

Al final he caído.

Dentro de nada esta santa casa cumple un lustro de vida, y me ha parecido el momento perfecto para tantear ese negocio del que tanto es despotricado por aquí: el de la publicidad.

Eso sí, sigo con la misma idea en mente. Tanto que aquí viene lo gracioso: PabloYglesias tiene publicidad desde hace casi dos semanas, y seguramente no te hayas enterado.

¿Cómo es esto posible? ¡Si no hay nada más molesto que la publicidad!

Porque he decidido hacerlo de la manera que bajo mi humilde opinión es más adecuada para un portal como éste: monetizando únicamente el tráfico orgánico y parte del social, esto es, el tráfico que proviene de buscadores y algunas redes sociales.

Algunos datos a considerar

A principios de año publicaba, como viene siendo habitual, algunos de los datos analíticos curiosos que tenía respecto a las mismas fechas del año pasado. Y entre ellos volvía a sorprenderme que por otro año consecutivo el mayor crecimiento se debía a las búsquedas de Google. Un nada despreciable 61,5% de las visitas diarias (53% anteriormente) se deben a artículos ya escritos que están enlazados en el buscador.

Es algo que ya he comentado que no me gusta, y por ende, no hago nada por optimizarlo más que lo básico y necesario en WordPress. Lo acepto (mejor eso que perder visitas), pero desde el punto de vista puramente de negocio, son visitas que casi sólo me aportan carga en el servidor, a diferencia de lo que ocurre en algunos referrals de redes sociales y otras webs. Sin olvidarme de todos a aquellos que venís de enlaces compartidos en la newsletter de la Comunidad y/o que tenéis el valor de entrar directamente en esta página para informaros.

En todos estos casos el porcentaje de interacción (tanto por comentarios, como por suscripciones a la Comunidad o contactos vía formulario) es considerablemente mayor que en el de los paracaidistas de Google (es así como solemos llamar a aquellos que entran mediante una búsqueda en Internet, encuentra lo que buscaban, y se van para nunca volver). Que por supuesto que hay algunos que se acaban quedando en la familia, pero vaya, que el porcentaje es tan bajo que llega a ser despreciable.

Así, teniendo esto en mente, y aplicando esa máxima que tanto me gusta (anteponer la Comunidad al negocio), se me ha ocurrido implementar AdSense, pero que sea únicamente visible para aquellos que provengan de búsquedas en Internet, Facebook y Menéame. Los tres principales vectores de visitas de esta página, y también los que menos porcentaje de conversión y más tasa de rebote tienen. Google+ entra en el saco también, más que nada porque no me apetece pararme a pensar cómo bloquearlo en Google+ sin hacerlo en Google (hasta donde sé el referral es el mismo). Los que no quería meter era Twitter (me consta que algunos lo utilizáis como gestor de información) y LinkedIn (de por sí el tráfico de esta plataforma ya está cualificado).

Esto quiere decir que realmente paso a monetizar ese 61,5% del tráfico (realmente menos, como explicaré en profundidad más adelante), perdiéndome parte de ese 38,5% restante (Twitter, LinkedIn, otros referral, entradas directas…). Justo el que conformáis aquellos que habitualmente venís a informaros a esta página o formáis parte de la Comunidad. A los que me interesa mimar, a fin de cuentas :).

Cómo implementar Google AdSense en WordPress

Aquí viene la parte chula.

Sigo pensando que la publicidad no es ni de lejos el mejor modelo de negocio para un blog personal. Aunque implementemos publicidad sana (aquella que no es invasiva), supone un aumento del tiempo de carga, ero más ancho de banda consumido en contenido que no suele ser de valor para el lector.

El crowdfunding, los artículos patrocinados, o la venta de infoproductos se postulan como claros ganadores. Y con el aumento periódico de usuarios que utilizan bloqueadores de publicidad (ya vamos por más de un tercio en el ámbito generalista, imagínese en nuestro sector…), la cosa debería estar más que clara. Pero vaya, que puede ser una ayuda pasiva que no requiere hacer nada por mi parte, y que ni siquiera vamos a tener que sufrir ninguno de nosotros (yo tampoco la veo).

Me decanté por AdSense. Por dos motivos, principalmente:

  • Primero, porque es líder indiscutible del sector: No es el que mejor paga, pero (y es lo que más me importa) lleva muy a rajatabla eso de mostrar únicamente publicidad considerada adecuada, y bajo formatos que no son invasivos (nada de intersticiales ni vídeos que se reproducen automáticamente con sonido).
  • Segundo, por su parametrización: En AdSense puedes dejar que sea Google quien decida dónde coloca la publicidad y con qué formatos (QuickStart), o ser tú quien lo controla mediante los bloques de anuncios. Un servidor se decantó por esto último.

He creado cinco bloques de anuncios (uno para el header, otro para el footer, otro para el sidebar, otro para la sidebar que muestro en los artículos cuando se visualizan desde el escritorio y otro para colocarlo justo encima de la sección de comentarios). Para cada uno Google te da un código que deberías pegar donde corresponda, y tres más para la versión AMP de la página (a fin de cuentas esta versión solo se suministra cuando se realiza una búsqueda desde móvil), que controlo mediante dos plugins de AMP.

Todo cuenta con tutoriales, así que no me voy a detener en explicar esto.

Cómo mostrar publicidad de AdSense solo a los visitantes que vengan de buscadores y/o redes sociales

Pero lo que me a mi me interesa es que el anuncio solo se muestre a aquellos que provienen de una búsqueda en Internet o de una plataforma de descubrimiento, por lo que después de probar varias opciones (utilizar cookies, monitorizar la sesión del visitante…), la que he visto (EN) menos invasiva (no guardo nada) y que además es compatible con mi doble sistema de cacheado de páginas (WP Super Cache más uno a nivel de servidor que me ofrece SiteGround) es la siguiente.

Creamos un fichero adsense.js en la ruta del template con el siguiente código:

 var ref = document.referrer;
 var sevisitor;
 var SE = new Array('web.info.com', 'search.', 'soso.com', '.yahoo.', '/url', '/search', '.google.', '.ask.', '.baidu.', '.bing.', '.aol.', '.answers.', '.facebook.', '.meneame.');
 for (var source in SE) {
    var match = ref.indexOf(SE[source]);
    if (match != -1) {
        sevisitor = true;
    }
 }

Con esto estamos definiendo que toda visita que venga referida de alguno de los esos sitios (entre ellos buscadores como Google, Bing y Yahoo, y redes como Facebook y Menéame) tengan una variable sevisitor activa.

Justo debajo colocamos la función o funciones que necesitemos para cada bloque de anuncios. Si solo vamos a utilizar uno, solo necesitaremos una:

 function adsenseTop() {
    if (sevisitor) {
        var large = '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> \n\
                <ins class="adsbygoogle" \n\
                    style="display:block" \n\
                    data-ad-client="EL CÓDIGO QUE CORRESPONDA EN CADA CASO" \n\
                    data-ad-slot="EL CÓDIGO QUE CORRESPONDA EN CADA CASO" \n\
                    data-ad-format="auto"></ins> \n\
                <script> \n\
                (adsbygoogle = window.adsbygoogle || []).push({}); \n\
                </script> \n\
                ';
        document.write(large);
    }
 }

Por supuesto, cada nueva función debe llamarse de forma distinta (adsenseTop, adsenseBottom,…). De esta manera pintamos el anuncio únicamente si sevisitor está activo (es decir, el visitante proviene de una de las páginas anteriormente señaladas).

Falta que incluyamos en el header.php (o en la sección header de nuestro template) la llamada a este archivo:

 <script type="text/javascript" src="/wp-content/themes/"EL NOMBRE DE LA PLANTILLA QUE CORRESPONDA EN CADA CASO"/adsense.js"></script>

Y donde queramos que se muestre cada anuncio, la función oportuna:

 <script type="text/javascript">adsenseTop();</script>

Con esto ya estaría todo funcionando, pero hay algunos matices que me parece adecuado mencionar:

  • Como se habrá percatado, esto no guarda cookies ni sesiones: Lo que significa que si ese paracaidista entra en otra página de nuestra web, ya no se le mostrará publicidad. En mi caso lo prefiero así (por lo menos se ha dignado a ver otro contenido), pero en caso negativo, tenemos que tirarnos sí o sí a hacerlo mediante cookies o sesiones. Algo, bajo mi punto de vista, más invasivo (aunque el lector no provenga de una búsqueda lo estaríamos monitorizando igualmente).
  • Con este sistema se muestra publicidad en todas las páginas: Y esto sí que no quería. Está genial que se muestre en la home, en las entradas, e incluso en las categorías, pero no tanto que se muestre en las páginas de contacto o aquellas en las que explicamos lo que ofrecemos a ese potencial cliente (sería gracioso ver que en mi página de consultoría sale publicidad de otros consultores, ¿verdad? :P). Y por mucha tontería que parezca, es lo que más tiempo me ha llevado configurar (no he encontrado nada semejante por la red). Además, al tener que ser compatible con el plugin de cacheado, el código tiene que estar escrito en JavaScript, y el código de WordPress que me permite controlar dónde se muestra es PHP. Al final, y tras darle muchas vueltas, he incluido la siguiente pieza justo antes de la primera llamada a la función adsenseTop() (en mi caso, el banner superior):
 <?php if (is_page()) {?>
    <script>sevisitor = false;</script>
 <?php } ?>

No es todo lo elegante que me gustaría, pero funciona.

Con esto evito que se muestre publicidad en cualquier página de mi site, pero también podríamos definir en qué páginas en específico queremos que no se muestre colocándole valores a la función is_page(). Por ejemplo, is_page(“contacto”)).

Y hasta aquí estos apuntes rápidos sobre el desembarco de AdSense en PabloYglesias.com. Lo dejaré un tiempo a ver qué tal funciona, seguramente haré algunas pruebas de optimización más, y según el retorno que perciba estudiaré si tiene o no sentido.

Por supuesto, iré contándole dichos devaneos conforme vayan saliendo, siempre y cuando crea que son interesantes para la audiencia.

¿Dudas? ¿Consultas? ¿Críticas? ¿Sugerencias? Ahora es el momento :).