This guide explains how to to take action based on ad buffering state.
Using buffer events in your app
You can use the following delegate methods on IMAAdsManagerDelegate
to add an
activity indicator to your app when ads pause to buffer:
- (void)adsManagerAdDidStartBuffering(IMAAdsManager *)adsManager
: Called when an ad that already started playing has stopped to buffer.- (void)adsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime
: Called as an ad buffers. This method is called repeatedly as long as an ad is buffering.- (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager
: Called when the current ad is sufficiently buffered such that ad playback is not likely to outrun the buffer.
Example
All additions are based on the IMA SDK Advanced Sample (for both iOS and tvOS):
@interface VideoViewController () <IMAAdsManagerDelegate,...> ... @end @implementation VideoViewController ... - (void)adsManagerAdDidStartBuffering:(IMAAdsManager *)adsManager { // Show your activity indicator above the video player - ad playback has // stopped to buffer. } - (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager { // Hide your activity indicator - as playback resumes. }
FAQ
Can I show an activity indicator before my ad starts playing?
Yes, but we recommend relying on different delegate methods for that
use case. You can show the activity indicator when you call [adsManager start]
,
and hide the activity indicator when you catch kIMAAdEvent_STARTED
in
- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event
.