Помогла бы некоторая фактическая разметка, но если я правильно читаю вас, у вас чаще всего есть пустой div, а затем иногда есть iframe или вложенные iframes или что-то подобное ужасающе.
Итак, я бы использовал два параллельных решения: во-первых, самое простое решение jQuery было бы:
$("#ad-container div:empty").hide();
(замените #ad-container div
тем, что вы используете.)
Между тем, для случаев, когда это не сработает (неприятные фреймы и прочее), используйте CSS, чтобы создать резервную копию фонового изображения, возможно, рекламируя себя или просто делая пространство лучше. Просто базовый, вот так:
#ad-container { background-image: url(...);background-repeat:none; }
Когда будет показано объявление, изображение будет закрыто. Когда это не так, резервная копия будет там для вас.