Tengo un banner de una red publicitaria que se ejecuta a través de un código JavaScript. Como esto:
<script src="........."</script>Pero tengo demasiadas opiniones repetidas.
Entonces me gustaría mostrar el banner solo en el 10% de las veces que se carga la página.
¿Hay una solución simple para esto? No tengo conocimiento de JavaScript.
Puede crear un número aleatorio y verificar si es más pequeño que el 10% del rango, por ejemplo
if (Math.random() <= 0.1) { showAds(); }Prueba
let runs = 0; let ads = 0; function showAds() { ++ads; } for (let i = 0; i < 1e6; ++i) { ++runs; if (Math.random() <= 0.1) { showAds(); } } console.log(`Runs: ${runs}`); console.log(`Ads were shown: ${ads}`); console.log(`${ads/runs * 100} %`);Puede crear un contador que se guarde en el almacenamiento local (en el navegador web, para que se mantenga incluso después de recargar la página).
Puede comenzar en 0 y luego aumentar en 1 cada vez que recarga, hasta que se reinicia después de llegar a 9.
Y puede configurarlo para que solo ejecute el banner si el contador está en 0.
<script type="text/javascript"> let counter = localStorage.getItem("counter") ?? 0; if (counter == 0) { // code placed here will run only on the first of every 10 pageloads } if (counter >= 0) { newCount = (counter == 9) ? 0 : ++counter; localStorage.setItem("counter", newCount); } </script>