The Pod Serving API provides access to adaptive-bitrate video ad pods prepared in such a way that they can be stitched directly into a user-facing HLS media playlist.
This API is intended for advanced publishers and video technology partners. Using this API at scale requires design and implementation of a sophisticated media serving workflow which is outside the scope of this documentation.
There are three components that make up any implementation of the Pod Serving API: Google Ad Manager, a Client Video Player, and a Manifest Manipulation Server.
Google Ad Manager
Google Ad Manager is responsible for delivering ads to the user. Google provides this service, which is managed via the AdManager SDK and User Interface. This component has three primary responsibilities:
- Receiving stream requests from the client video player, decisioning ads and providing renditions to match your content encoding profiles.
- Responding to ad segment requests from the client video player and providing the appropriate portion of the ad pod for the given user.
- Receiving and processing tracking pings from the client video player.
Client video player
The client video player is the app or website that clients will use to play the resulting video stream. This component has four primary responsibilities:
- The app initializes a stream resource from Google Ad Manager, and is provided with a stream object that represents a single playback session of a specific video asset.
- The app requests a stream manifest from the manifest manipulation server, and begins playback.
- The app periodically requests ad pod metadata from Google Ad Manager, that describes the ad events embedded in the stream's ad segments.
- The app listens for timed metadata events raised by the player that contain ad media IDs. Upon encountering these events, the player forwards them to Google Ad Manager, to verify that ad events have successfully occurred.
To learn more about proper implementation of the client video player, see the pod serving guides for the Interactive Media Ads SDK for HTML5, Android, iOS, or tvOS, or for custom implementations, see our pod serving client guide for the DAI API.
Manifest manipulation server
The manifest manipulation server is the server in charge of hosting the stream manifest provided to the client video player. This component has three primary responsibilities:
- Handle manifest delivery to the client video player.
- Insert Google Ad Manager-hosted ad segment URLs into the video stream manifest during ad breaks.
- Serve the modified manifest to the client video player.
Tolearn more about implementing a custom manifest manipulator server see the manifest manipulation guide.
- Stream object - An object that represents a single playback session of a specific video asset. Notable properties include the stream ID and the media verification URL.
- Ad pod - Grouping of ad videos shown in an ad break
- Ad segments - Media segment files for the ad break
- Ad pod metadata - Metadata for the ad break used to render ad UI on the client (e.g. hide seek buttons during ad)
- Ad media ID - Metadata encoded as ID3 tags within ad segment files. This metadata is used to identify when specific ad-related events have occurred during playback (e.g. ad start, midpoint, etc)