si lo abres con window.open(url) puedes guardarlo en una variable y verificar si se cierra
Este ejemplo en especifico lo genero la IA
HTML:
<button onclick="abrirVentana()">Abrir ventana</button>
<script>
function abrirVentana() {
let childWindow = window.open('https://example.com', 'childWindow', 'width=600,height=400');
const tiempoEsperado = 10000; // 10 segundos
const tiempoInicio = Date.now();
const checker = setInterval(() => {
if (childWindow && childWindow.closed) {
clearInterval(checker); // Detener el chequeo
const tiempoTranscurrido = Date.now() - tiempoInicio;
if (tiempoTranscurrido < tiempoEsperado) {
alert('La ventana se cerró antes de tiempo');
} else {
console.log('La ventana se cerró después del tiempo esperado');
}
}
}, 500); // Verifica cada 500 ms
}
</script>
Ya lo adaptas a tu uso, eg: si se cierra puedes mostrar un modal que oculte el contenido y con un mensaje que diga que puede desbloquear el contenido haciendo clic en un boton y ocultando la modal luego de que pase el tiempo etc.
Ahora lo que dices sobre hacerlo como baner, puedes hacer pruebas insertandolo como iframe eg:
HTML:
<iframe src="https://example.com" frameborder="0" width="300" height="300" style="background-color:#09f"></iframe>
y agregarlo en una pagina especifica donde puedas monitorear el rendimiento, ademas si la red publicitaria que utilizas te permite filtrar por DIRECT LINK, puedes ver si genera mas o menos ganancias con este metodo,
aunque desconozco si te pueden penalizar de alguna forma por hacerlo asi, por lo que te recomendaria leer bien los TyC/TOS para evitar problemas.