Как сделать, чтобы периодически на странице появлялась модульное окно?
Из лояльности к пользователям, специально не подскажу, как это сделать.
Ненавижу эти тупые модалы.
Т.к сайт не SPA прием с setTimeout не поможет, необходимо при первой загрузке страницы писать текущее время (timeFromCookie = Date.now() - например), в куку или localStorage - чтобы затем брать это время и сравнивать его с текущим, и смотреть сколько прошло:  (Date.now()- timeFromCookie) / (1000 * 60 * 30) > 1 - если выражение true, тогда прошло более получаса. Чтобы сравнивать можно написать функцию с помощью setInterval, которая скажем раз в минуту будет проверять текущее время и время из хранилища. И запускать ее сразу при загрузке страницы.