Why does Disney Plus use an entirely different video component when wanting to display ads?
During my making of a browser extension that either manipulates current subtitles or adds new ones to a video on various platforms:
I have to partially reverse engineer how each site is going about the displaying of subtitles and the handling of their video client.
I found myself encountering a random edge case with Disney+ that every 5 - 10 reloads of a video - my extension would break due to the expected elements not being there.
What was happening was that Disney+ would add a completely different video client with completely overwritten HTML5 video element APIs and an arbitrary offset of 20 seconds to the time.
Other video platforms such as YouTube, Netflix etc don't function like this and have a standard video client with adverts working with that standard client.
Is this just bad engineering from Disney Plus's part or part of some type of AB test or is there something more technical I haven't thought about?
Tricky to answer for certain unless you've worked there but I'm interested in the different perspectives.
First off, Disney isn't known for having the best technology. There are great engineers there for sure, but at the end of the day, Disney is a legacy media company, not a tech-first company. I've heard many engineering horror stories about the technical quality there including one from a Taro community member who got in and quit after just 2 weeks.
Why does Disney Plus use an entirely different video component when wanting to display ads?
I actually have a little bit of perspective here as someone who worked on ads at Instagram - Our scenario was a bit different, but I can relate. So for story ads on Instagram Android, we created an entirely separate view controller for the ads logic instead of extending the existing "organic" story view. This suffers a small performance hit from less view recycling alongside a lot of duplicated code, but the idea was to cleanly and safely separate the code:
It looks like Disney took an extreme approach and the bifurcation happens not just in the code but in the product as well. For Instagram stories, you couldn't tell that the codebases were so separate - Going from an organic story to an ad is meant to feel seamless.
If you're curious about what it's like to work on ads, check this out: "What is it like working on ads teams?"
Thank you for the response Alex!
Even the level of logging that the advertising-based video client produces is CRAZY compared to the vanilla one.
I'm a little surprised about the engineering quality due to the sheer success of Disney+ as I can imagine small optimisations would go along way - but maybe it's also a non factor with Disney+ having the monopoly on Disney content haha