Proposal: VAST for dynamic ad insertion (that doesn't break timestamps) #556
Replies: 1 comment 4 replies
-
I really like the idea of looking at a way to get transcripts to work with DAI. VAST is already used by the podcast industry when stitching ads together, so its use is rather elegant here. I guess two questions:
Not so long ago, RedCircle’s Mike Kadin was on the Podcasting 2.0 podcast ep 133 with I seem to remember a pretty good solution for it. Here it is… Yeah. So I think, going back to what you said before, right, each individual download where the listener hits play is unique to that specific listener at that time, right for that episode, right. And that is unique to them. But the transcript URL and the chapter URL is at the feed level right? Now, like I said, before, we do like store or cache, a configuration that says like, we serve this IP address and user agent, this audio file at this time, so that if they come back five minutes later and download the second half of it, everything remains in sync, right? So we do have some concept, it's temporary and time of like, you know, if you asked me like, What did i What did I stitch together? In this episode from this IP address five minutes ago? I can answer that question. Right. So theoretically, right, then, like, if you asked me for a transcript, I can use that same configuration and stitch the transcript together, right? Same thing for the chapters, right. So I think the only thing that's missing with our current setup is just kind of like a specification that details how those URLs for the transcript and the chapters should be requested. They have to be from the client, they have to be close within time for when the download was requested. And they have to be, you know, from the same IP address, same user agent, everything else is same. So we can identify that and say, Alright, that's the same thing that just downloaded this podcast five minutes ago, now I can give you the transcript. If they download the transcript on the server side, that's not going to work. It's going to come from the server's IP, if they download the transcripts, like when the RSS feed updates, but then the listener downloads the podcast two days later, those are going to be out of sync, right. So like, either that's one option is to just kind of specify what the client's behavior should be with respect to downloading those things. Right? That's one option. I don't like it as much, but that's an easier option. Dave Jones Mike Kadin Dave Jones Mike Kadin Dave Jones Mike Kadin Dave Jones Mike Kadin Dave Jones Mike Kadin Dave Jones Mike Kadin Dave Jones Mike Kadin Dave Jones Mike Kadin |
Beta Was this translation helpful? Give feedback.
-
Background
Dynamic ad insertion results in a well-known problem for Podcasting 2.0: it invalidates the timestamps in transcript and chapter files. A common approach to dynamic ad insertion is to serve the stitched audio file and the corresponding stitched transcript and chapters files at the same time, so that a transcripts or chapters file is only valid for the audio file that was downloaded at the same time.
However, this approach does not work with timestamp-based search engines which download and index transcript files during the crawl stage, and then serve search results at some later point in time when those timestamps will no longer match with the audio. More generally, this approach presents a problem for any Podcasting 2.0 application that needs to do one-time processing of transcript or chapter files, typically in cases where that processing is large scale or intensive.
Proposal
The VAST specification: https://www.iab.com/wp-content/uploads/2015/06/VASTv3_0.pdf
VAST is a standard for client-side ad insertion, providing cues for ad insertion points, and an endpoint for dynamically fetching the ad to insert. The response from the ad server is an XML document that specifies the type of ad, one or more media files that constitute the ad to be inserted, and other elements that are specific to video ads (such as instructions on what to do when the user clicks on the ad). We can use just the subset that is relevant to audio ads, which includes the insertion times, the ad durations, and the media files associated with the ad, which we can use to include 1) the audio file for the ad, and 2) the transcript file for the ad.
VAST has open source implementations for different client side platforms lending themselves well to adaptation to Podcasting 2.0:
The key benefit of VAST is that it preserves timestamps regardless of what ad duration is inserted.
Companies currently offering dynamic ad insertion on the server side may naturally be cautious about whether they can trust apps to implement this. However:
Beta Was this translation helpful? Give feedback.
All reactions