User chooses when to play ads
Streamers that play ads often try to do so in a non-disruptive fashion, playing ads when the stream is least interesting to the viewers. However, interest is subjective. Why not add the ability for viewers to trigger ads beforehand, whenever they feel the stream is boring to them and they are receptive to ads.
Let the viewers watch the ad on their own at the desired timing and remove the ad
I have a slightly unorthodox idea for how to handle ads. Let's say a user is watching a streamer for some time. Instead of an ad running for all users, interrupting the stream, it will add it to an personal "ad queue" for each user. Then whenever the user feels like an ad wouldn't interrupt the stream during some down time, or the user doesn't mind the ad running, they can run it for themselves, and only themselves. If they don't run it before another ad runs, then another is added to the queue. I feel like these should also be shorter ads (5-15 seconds). Also the user can choose how many ads are run if there are many in queue.
Then lets say the user closes Twitch without running their ads, the next time they open a stream, they have to watch all the ads in queue. This gives some incentive to watch ads during the stream. The punishment for not watching ads is missing stream, rather than missing stream being the default. Maybe these can be longer ads, but I'm not sure.
The feedback that I have seen about automatic mid-roll ads has been entirely negative, which is not surprising to me at all. No one likes being forced into situations even when it could be good for them.
I've seen lots of posts from streamers saying they don't like the loss of control and viewers saying that you should fix ads for bits, which says to me that the issue is not ads, it is how the ads are being presented.
The entire platform is built around the idea of interactive entertainment, so why are the ads being treated differently?
My suggestion is to give the viewers the controls.
If they have to watch ads, make it transparent how often ads need to be played and give them the option of when to play them so it isn't going to interrupt an important scene.
Make the ads interactive in some way. Enable voting on the sorts of ads that they like/dislike, encourage advertisers to make gamified ads.
Offer incentives for watching the ads. Make ads temporarily unlock exclusive emotes, watch enough ads to get a subscription to a random channel.
The implementation of ads at the moment seems very old, heavy handed and not at all on brand. You should take the parts that people like about Twitch and apply it so that ads become an experience that people can enjoy, not something that they just have to deal with to get to what they actually want.