Websites with ads need to satisfy the ad buyers. This means running a bunch of JavaScript that's adversarial to the website and fingerprints both the website and the browser to determine where and to whom the ad is actually shown. It's like a cloudflare bot challenge is happening behind the scenes. Of course all this stuff doesn't happen on the website's own domain, or the website could manipulate it.
And the ad that's originally delivered might not actually be the ad, but might be a script that fetches the real ad from a different server, if the incentives line up that way. Imagine you have a contract to advertise on a site, but someone else wants to advertise on the same site and pays you to forward their ad. Ad margins are razor thin, you'll do this for $0.00001 profit per impression. And your buyer might be doing the same thing to their customer. It's all a huge mess.