Common sense fixes:
- Never allow dynamic ad content! Ads should be individually approved by publishers and not subject to change after approval.
- Ban user tracking and targeting. It's a red queen's race and no one benefits. Everyone is better off once it's illegal.
- Pay for ad time slots, not user impressions. Instead of selling by CPM, publishers should say "independent analyst X says we have traffic Y on an average Sunday. You can buy placement for next Sunday for $Z." This is how all offline ads are sold, and it's much healthier for everyone than CPM. It essentially kills the motivation for the Reddit fraud discussed here.
- Use anti-trust to prevent link aggregators from being advertisers. This is a bigger issue, but putting ads on the aggregators creates perverse incentives to promote bad content and not actually pay for it. Why would you pay to put an ad on publisher A which may or may not have traffic when you can put the ad on aggregator B which will definitely have traffic? The problem is this means A cannot pay writers and the whole system breaks down.