I am playing video in exoplayer. I know that i can show pre,mid and post ads in exoplayer which is I'm using ExoPlayer (AndroidX Media3) with the IMA extension in my Android app. Standard linear ads like pre-roll and mid-roll work fine because ExoPlayer and the IMA SDK handle them for me.
Now I want to support two newer ad formats that Google describes in its Ads Developer Blog post on Server-Guided Ad Insertion (SGAI):
Squeezeback ads: the content video shrinks into a smaller frame while the ad plays alongside it.
L-shaped ads (L-banners): the content shrinks toward one corner and the ad fills an "L" shape along two edges of the screen.
Blog post: <http://ads-developers.googleblog.com/2025/04/unlock-premium-ad-experiences-for.html>
From the post, my understanding is that with SGAI client-side ad stitching, the client app is responsible for arranging content and ad playback at the same time to create these formats.
What I want:
When an ad break starts, the content player should automatically shrink to make space for the ad, then return to full size when the break ends. Ideally ExoPlayer, or the IMA/DAI integration, would handle this resizing itself.
My questions:
Does ExoPlayer / Media3 (or the IMA DAI extension) have any built-in support for squeezeback or L-shaped ad layouts?
If not, what is the recommended approach? For example:
Using two ExoPlayer instances (one for content, one for the ad pod manifest) and animating the content PlayerView / SurfaceView size myself?
Listening for SCTE-35 or timed metadata (or HLS interstitials) to detect when the ad break starts and ends?
Is there any official sample or reference implementation for SGAI on Android?