IMAAdsManager.h
1 //
2 // IMAAdsManager.h
3 // GoogleIMA3
4 //
5 // Copyright (c) 2013 Google Inc. All rights reserved.
6 //
7 // Declares IMAAdsManager interface that manages ad playback.
8 // The interface represents an abstract API. There can be one or more ads
9 // managed by a single ads manager.
10 // The implementing code should respond to the callbacks as defined in
11 // IMAAdsManagerDelegate.
12 //
13 // A typical ad playback session:
14 // 1. Ads manager is retrieved. Delegate is set.
15 // 2. [adsManager initialize...]; - ad is initialized and loads.
16 // 3. delegate.didReceiveAdEvent is called with a kIMAAdEventLoaded event.
17 // 4. [adsManager start];
18 // 5. delegate.adsManagerDidRequestContentPause: is called. The content
19 // playback should pause now.
20 // 6. Ad display container master view is unhidden and playback starts.
21 // 7. delegate.didReceiveAdEvent is called with ad events.
22 // 8. Ad finishes.
23 // 9. delegate.adsManagerDidRequestContentResume: is called. The content
24 // playback should resume now.
25 // 10. delegate.didReceiveAdEvent: is called with the
26 // kIMAAdEvent_ALL_ADS_COMPLETED event.
27 // It is possible to detach the delegate and destroy the ads manager.
28 //
29 // If multiple ads are managed by the ads manager, steps 5-9 may repeat several
30 // times. Step 5 will happen at times predetermined by the ads server.
31 // The implementing code should listen to callbacks until
32 // kIMAAdEvent_ALL_ADS_COMPLETED is received.
33 
34 #import <Foundation/Foundation.h>
35 
37 @class IMAAdError;
38 @class IMAAdEvent;
40 
41 #import "IMAAdPlaybackInfo.h"
42 #import "IMAContentPlayhead.h"
43 
44 @class IMAAdsManager;
45 
46 #pragma mark IMAAdsManagerDelegate
47 
52 
59 - (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event;
60 
68 - (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdError:(IMAAdError *)error;
69 
77 - (void)adsManagerDidRequestContentPause:(IMAAdsManager *)adsManager;
78 
85 - (void)adsManagerDidRequestContentResume:(IMAAdsManager *)adsManager;
86 
87 @optional
88 
96 - (void)adsManager:(IMAAdsManager *)adsManager
97  adDidProgressToTime:(NSTimeInterval)mediaTime
98  totalTime:(NSTimeInterval)totalTime;
99 
106 - (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager;
107 
113 - (void)adsManagerAdDidStartBuffering:(IMAAdsManager *)adsManager;
114 
121 - (void)adsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime;
122 
123 @end
124 
125 #pragma mark - IMAAdsManager
126 
130 @interface IMAAdsManager : NSObject
131 
135 @property(nonatomic, weak) NSObject<IMAAdsManagerDelegate> *delegate;
136 
142 @property(nonatomic, copy, readonly) NSArray *adCuePoints;
143 
147 @property(nonatomic, strong, readonly) id<IMAAdPlaybackInfo> adPlaybackInfo;
148 
153 @property(nonatomic, assign) float volume;
154 
161 - (void)initializeWithAdsRenderingSettings:(IMAAdsRenderingSettings *)adsRenderingSettings;
162 
166 - (instancetype)init NS_UNAVAILABLE;
167 
171 - (void)start;
172 
176 - (void)pause;
177 
181 - (void)resume;
182 
186 - (void)skip;
187 
193 - (void)clicked;
194 
198 - (void)destroy;
199 
204 - (void)discardAdBreak;
205 
206 @end
void discardAdBreak()
If an ad break is currently playing, discard it and resume content.
void destroy()
Causes the ads manager to stop the ad and clean its internal state.
Set of properties that influence how ads are rendered.
Definition: IMAAdsRenderingSettings.h:69
The IMAAdDisplayContainer is responsible for managing the ad container view and companion ad slots us...
Definition: IMAAdDisplayContainer.h:16
void pause()
Pauses advertisement.
void resume()
Resumes the advertisement.
instancetype NS_UNAVAILABLE()
:nodoc:
Simple data class used to transport ad playback information.
Definition: IMAAdEvent.h:113
NSArray * adCuePoints
List of content time offsets at which ad breaks are scheduled.
Definition: IMAAdsManager.h:142
NSObject< IMAAdsManagerDelegate > * delegate
The IMAAdsManagerDelegate to notify with events during ad playback.
Definition: IMAAdsManager.h:135
The IMAAdsManager class is responsible for playing ads.
Definition: IMAAdsManager.h:130
float volume
Set and get the volume for the current ad.
Definition: IMAAdsManager.h:153
A callback protocol for IMAAdsManager.
Definition: IMAAdsManager.h:51
void start()
Starts advertisement playback.
void skip()
Skips the advertisement if the ad is skippable and the skip offset has been reached.
void clicked()
Performs a clickthrough on the advertisement if the UI was successfully disabled via AdsRenderingSett...
Surfaces an error that occurred during ad loading or playing.
Definition: IMAAdError.h:151
id< IMAAdPlaybackInfo > adPlaybackInfo
Groups various properties about the linear ad playback.
Definition: IMAAdsManager.h:147