Creación de un algoritmo de intercambio de banners para rotar anuncios

Estoy trabajando en la construcción de un script de rotación de banner de anunciosbasado en impresiones que muestra anuncios de manera uniforme durante todo el mes. Los cálculos se realizarán cada vez que se solicite la publicación del anuncio. Así que esto se hará sobre la marcha. Los anuncios deben aparecer rotando, uno tras otro, y no solo mostrar un anuncio por 1000 impresiones, luego el otro anuncio por 1000 impresiones. En su mayor parte, debe mostrarse para 1 impresión, luego cambiar los anuncios (a menos que, por supuesto, un anuncio tenga muchas más impresiones que el otro para agotar).

Digamos que tengo 5 anuncios y cada uno tiene un número diferente de impresiones que se compraron,¿Cuál sería la fórmula / cómo se sirven los anuncios? Estoy buscando hacer esto en PHP.

Anuncio # 1: 1,000 impresiones compradas

Anuncio # 2: 12,000 impresiones compradas

Anuncio # 3: 3,000 impresiones compradas

Anuncio # 4: 20,000 impresiones compradas

Anuncio # 5: 10,000 impresiones compradas

Si hay varios anuncios que compraron 1000 impresiones para el mismo período de tiempo, debería aparecer uno tras otro hasta que se utilicen las impresiones. Sin embargo, creo que podría ser bueno que si una persona comprara 1000 impresiones por un corto período de tiempo, debería tenerlo en cuenta y mostrarlas a un ritmo más rápido. Estoy abierto a sugerencias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta