moq-wg / moq-transport

draft-ietf-moq-transport
Other
87 stars 22 forks source link

Ad Insertion #527

Open fluffy opened 2 months ago

fluffy commented 2 months ago

How does insertion of advertisements work and do we need any changes in MoQT to support that ?

fluffy commented 2 months ago

@wilaw thoughts ?

ianswett commented 2 months ago

We're at the point this is an important topic to discuss, but I'm not an expert on it. It's possible we don't need to do anything special for MoQ transport to enable this, but I'm not sure.

kixelated commented 2 months ago

I don't have a good answer for this.

HLS makes it "easy" to perform ad insertion because there's a decoupling of the manifest and edge server. You can run a custom manifest server that, on a per segment basis, instructs viewers the URL of the next segment. This doesn't require any cooperation with the CDN that actually serves the segments.

However due to the subscription-based nature of MoQ... it's more complicated. The only idea I have is to create a new track at possible ad insertion points and force the viewer to resubscribe, consulting the ad server for the name of the new track. It's kind of gross but it could work.

wilaw commented 2 months ago

I have though about this a bunch because support for advertising is crucial for the commercial viability of MOQT-based streaming formats. I had a side meeting with Yospace CTO David Springall a few months back to talk through some conceptual ideas. He provided this diagram of how MOQ might integrate into a low latency ad insertion workflow:

PastedGraphic-1

The OTT ad industry is moving towards server-guided ad insertion, a mode of insertion which the client performs the insert but using instructions provided by a server.

There are some key points in all of this:

  1. We need the concept of a playback session. Luckily, we have a good proxy for this with our Wt or QUIC session establishment. We assign this session a random ID and it registers itself, either via HTTP or MOQT (I am in favor of the latter) with an ad backend. This backend will understand the previously registered broadcast and then be able allocate ad placement opportunties to each individual session.
  2. Interstitial ads are VOD content, even when placed into live streams. This means we can FETCH them.
  3. MOQT encoders will need to be SCTE compliant, as those markers are the dominant placement signaling mechanism in use today. In my draft design of a timeline track, I showed how an off-the-shelf SCTE-35 marker could be embedded.
  4. It is important that we are compliant with existing ad inventory. This is almost universally stored as ISOBMFF or TS files. It would be possible to create a proxy gateway to these ad systems which vend MOQT track variants of these assets, including trans-packaging to LOC or other container formats.
  5. We can use catalogs to instruct clients on when to insert ads. In order to provide user-personalized advertising, we need to be able to generate unique catalogs for each user. This must be done at the edge. To enable this, we should introduce the concept of an application layer at the outermost relay server. This app layer will provide functionality similar to the serverless edge compute offered with HTTP today. It will be able to subscribe to a base catalog and then modify it for each connection. It should also be able to modify Objects themselves. We can use this for many customization features (per-session watermarking, codec/format restrictions based on device type, content offering suggestions etc).

MOQT offers some benefits for advertising that we don't have in the HTTP workflow:

  1. Having millions of client report ad playback quartiles during synchronized ad placements means that the ad reporting services need to be highly scalable. Today this is done with separate data collection networks. The directional nature of MOQT connections means that client-side ad reporting can be made though the same distribution network which is serving the media. This affords much richer, reliable and easily scalable reporting.
  2. The parallel nature of MOQT means that more flexible ad displays can be implemented. Overlays are possible MOQT can also carry image assets for advertising, it does not need to be A/V.

Yospace have signaled interest in participating in some early proofs-of-concept to start exploring these ideas.