Resumen:
Comenzamos:
Ya SoloNegocios había dado luces con algo así:
http://forobeta.com/tutoriales/2248...ue-llegan-desde-google-y-google-imagenes.html
Por desgracia el código solo mostraba publicidad en el primer post, luego al seguir navegando el Adsense ya no aparecía en los demás. En todo caso, luego de buscar por horas, hacer cambios, optimizaciones, etc. Llegué a esto:
Colocan éste código en su header.php:
PHP:
<?php
session_start();
if (!isset($_SESSION['show_ad'])){
$_SESSION['show_ad'] = 0;
if (preg_match('/q=|search/', $_SERVER['HTTP_REFERER'])||preg_match('/q=|images/', $_SERVER['HTTP_REFERER'])){
$_SESSION['show_ad'] = 1; };
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {
$_SESSION['show_ad'] = 0; };
};
?>
Lo que hace este código es iniciar una sesión para que los visitantes de Google y otros buscadores (Bing, Yahoo son los que he probado) vean la publicidad en todo su recorrido, salvo cierren su navegador y entren directamente (ya que se eliminan las sesiones por ser temporales).
La variable de sesión se llama show_ad. Tomando el aporte de Darkada (a.k.a SoloNegocios) incluí lo de la búsqueda de imágenes. También funciona, lo he probado.
La variable sesión toma el valor de 1 cuando viene de buscador y 0 cuando no viene de buscador, según lo que estamos definiendo. Si la variable no está inicializada, se inicia una nueva sesión.
El código no muestra publicidad al Googlebot, para evitar una carga innecesaria de contenido.
Nota importante (esto no dice en ningún lado): Recomiendo colocar este código justo después del </title>, de lo contrario si es que usan el All in One SEO Pack, que supongo es la mayoría, se ocasionará un error en PHP por variables ya enviadas (solo créanme, sino hagan la prueba y pónganlo al final del header.php o justo antes del </header>).
Listo, ahora falta indicar dónde quieren mostrar la publicidad. Usualmente es el single.php. Algo así:
PHP:
<?php if ($_SESSION['show_ad'] == 1){ ?>
<//.. Aqui colocan su codigo Adsense ..//>
<?php } ?>
Lo que hacemos aquí es mostrar publicidad al que tenga una sesión de publicidad en 1 (que hemos definido así, haciendo analogía al true).
Si tienen dudas, son bienvenidas. Sigo trabajando en el código pues creo que se puede mejorar. Aunque es un poco menos liviano, creo que puede servirle a muchos.
Saludos.
PD: Me tomó mucho rato (son más de las 5 am y no he dormido) así que lo comparto aquí, espero no sea tomado a mal haciendo alusión a que es repetitivo. En fin, que les sirva.