In general, rewarded videos are similar to fullscreen ads in the aspect that it covers the whole screen of the device. What rewarded video ads add is the ability to reward the user when he watches the videos.
When the user is rewarded while watching a rewarded video, the placement will notify you through its delegate method: func aatUserEarnedIncentive(placement: AATPlacement, aatReward: AATReward) passing itself and an AATReward instance.
Request Ad
You can load ads for the rewarded video placement either automatically or manually.
Automatic Reload
To automatically load rewarded video Placement:
placement.startAutoReload()
[self.placement startAutoReload];
This way the rewarded video placement will always try to have an ad ready. Please also remember to stop the auto-reload when it is no longer needed:
placement.stopAutoReload()
[self.placement stopAutoReload];
The rewarded video placement fires the aatHaveAd(:) delegate method only once per loaded ad. So, Before starting the auto-reload, you should check for ads from the previous load/auto-reload using the placement has ad API.
Manual Load
To manually load the rewarded video placement:
placement.reload()
[placement reload];
Display Ad
the AATKit can be told to display a rewarded video placement using the following method:
placement.show()
[placement show];
The show() method will return a bool value indicating whether the rewarded video placement could be displayed or not. This means whether the rewarded video placement has a ready-rewarded video ad or not.
Ad Info
After loading a rewarded video, you can access the loaded ad information by accessing the adInfo property of the rewarded video placement:
func aatHaveAd(placement: AATPlacement) {
// The placement has loaded a new ad
let adInfo = self.placement?.adInfo
}
- (void)aatHaveAdWithPlacement:(id<AATPlacement>)placement {
// The placement has loaded a new ad
AATAdInfo *adInfo = self.placement.adInfo;
}
Mute Ad
Some ad networks allow muting rewarded video ads. Use the following API to mute video ads:
AATSDK.setVideoAdsMuted(true)
[AATSDK setVideoAdsMuted:YES];
Has Ad
The rewarded video placement provides an API to check if it has a loaded ad.
let hasAd = placement.hasAd()
BOOL hasAd = [self.placement hasAd];
Complete Code Example
class ViewController: UIViewController {
// Create the placement
var placement = AATSDK.createRewardedVideoPlacement(name: "<PLACEMENT_NAME>")
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// [IMPORTANT] Notify AATKit about the currently active view controller.
AATSDK.controllerViewDidAppear(controller: self)
// Set placement delegate to listen to the callbacks.
placement.delegate = self
// Start autoreloading the placement.
placement.startAutoReload()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// [IMPORTANT] Remove the currently active view controller.
AATSDK.controllerViewWillDisappear()
// [IMPORTANT] Stop placement autoreload.
placement?.stopAutoReload()
}
@IBAction func watchVideo(_ sender: UIButton) {
// An example for showing the rewarded video ad when the user clicks on "watch Video" button.
if placement?.show() == false {
// Show a message to the user telling: "Currently, no video available. Please try again later."
}
}
}
extension ViewController: AATRewardedVideoPlacementDelegate {
func aatUserEarnedIncentive(placement: AATPlacement, aatReward: AATReward) {
// The user has earned an incentive for this placement.
}
func aatHaveAd(placement: AATPlacement) {
// The placement has loaded a new ad.
}
func aatNoAd(placement: AATPlacement) {
// The placement could not load a new ad.
}
func aatAdCurrentlyDisplayed(placement: AATPlacement) {
// Ad has been displayed on the screen
}
func aatResumeAfterAd(placement: AATPlacement) {
// Back to the app.
}
}
@interface ViewController () <AATRewardedVideoPlacementDelegate>
@property id<AATRewardedVideoPlacement> placement;
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// [IMPORTANT] Notify AATKit about the currently active view controller.
[AATSDK controllerViewDidAppearWithController:self];
// Create the placement.
self.placement = [AATSDK createRewardedVideoPlacementWithName:@"<PLACEMENT_NAME>"];
// Set placement delegate to listen to the callbacks.
self.placement.delegate = self;
// Start autoreloading the placement.
[self.placement startAutoReload];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// [IMPORTANT] Remove the currently active view controller.
[AATSDK controllerViewWillDisappear];
// [IMPORTANT] Stop placement autoreload.
[self.placement stopAutoReload];
}
- (IBAction)watchVideo:(UIButton *)sender {
// An example for showing the rewarded video ad when the user clicks on "Watch Video" button.
if (![placement show]) {
// Show an alert box to the user telling: "Currently, no video available. Please try again later."
}
}
#pragma mark - AATRewardedVideoPlacementDelegate
func aatUserEarnedIncentive(placement: AATPlacement, aatReward: AATReward) {
// The user has earned an incentive for this placement.
}
- (void)aatHaveAdWithPlacement:(id<AATPlacement>)placement {
// The placement has loaded a new ad.
}
- (void)aatNoAdWithPlacement:(id<AATPlacement>)placement {
// The placement could not load a new ad.
}
- (void)aatAdCurrentlyDisplayedWithPlacement:(id<AATPlacement>)placement {
// Ad has been displayed on the screen
}
- (void)aatResumeAfterAdWithPlacement:(id<AATPlacement>)placement {
// Back to the app.
}
@end