Supongo que tocará capturar la IP del visitante, guardarla en una tabla de base de datos y luego compararla para ver si ya la visitó o no...
una cosa tipo (solo de ejemplo)
Código PHP:
//IP DEL VISITANTE
$ip = $_SERVER['REMOTE_ADDR'];
//consultamos si es que existe en la base de datos dicha IP
$sql="SELECT ip, TIMEDIFF(NOW(), fecha), fecha FROM contador WHERE ip=’$ip’";
$rs=mysql_query($sql, $conexion);
//contamos los resultados
$num= msql_num_rows($rs);
//Comparamos si es que ya existe la IP
if($num<=0){
//Si no existe, la agregamos a la bd para tener registro y mostramos el anuncio
$in=mysql_query("INSERT INTO contador(ip, fecha) VALUES ($ip, NOW())");
echo "PUEDES VER EL ANUNCIO";
}else{
//en caso que ya exista la IP lo redireccionamos al sitio o no le mostramos el anuncio
echo "YA HAS VISTO EL ANUNCIO";
}
Es solo una idea rápida que se me ocurre al vuelo, muy similar a un contador de visitas, pero en este caso no nos importa cuantas veces ha visitado, si no mas bien si ya lo ha hecho en alguna oportunidad.
Aunque la IP implica una limitacion, ya que puedes estar en una empresa y tu jefe pudo hacer entrado ya y las IP coincidiran... pero es una idea de como deberías tratarlas...
puedes probar con los otros formatos, creo que este puede ayudarte en vez del REMOTE_ADDR, o combinarlos
IP Privada: <?php echo $_SERVER['HTTP_X_FORWARDED_FOR'] ?>
IP Pública: <?php echo $_SERVER['REMOTE_ADDR'] ?>
IP xxxxxxx: <?php echo $_SERVER['HTTP_VIA'] ?>