The target should be to optimise for “users” not “ads” - some of what you are saying sounds a little backwards.
It’s also possible to target multiple ad unit sizes for the same ad slot…
… this way the advert would be optimised for the user based on the ad network’s knowledge.
i.e. what works best for the combination of available adverts, user, target device, display sizes etc.
The only issue here is that the automatically selected ad unit size would need to be catered for / detected by Discourse to ensure vertical scroll position is not messed up.