They watch for window.open calls, especially ones fired without a direct user gesture like a click or keypress, which often signals ads. In contrast, SPA navigation usually uses the History API (pushState/replaceState) and keeps everything in the same tab without spawning windows. Timing matters too: popunders often open immediately or on delayed scripts, while real navigation follows user interaction patterns. Blockers also check if the new window is hidden, off-screen, or loses focus right away. Patterns in known ad scripts and domains help.