если у приложения более 1 млн одновременных соединений, то есть общее кол-во одновременных запросов на показ блоков рекламы от пользователей?
Если считать реально - только горизонтальное шардирование.
Если "по-воробьям" - одновременно 1 млн соединений - это фантастика!
В целом:
1. статику кладём в оперативку Opcache, или микросервис на C, или грузим в Redis и оттуда - уже отдаём.
2. в JS-коде виджета- только AJAXобращение к сервису на запрос ID-шника баннера.
Вот на этом можно сделать статику по ID-шникам из базы:
webd.is