Rewarded Video

Integrate rewarded video ads

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.

Create Placement

To create an instance of AATRewardedVideoPlacement, use the following API:

var placement = AATSDK.createRewardedVideoPlacement(name: "<PLACEMENT_NAME>")

Listen to Callbacks (Optional)

Through the use of AATRewardedVideoPlacementDelegate, you can listen to the different placement callbacks.

placement.delegate = self

AATReward

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()

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()

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()

Display Ad

the AATKit can be told to display a rewarded video placement using the following method:

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.

Mute Ad

Some ad networks allow muting rewarded video ads. Use the following API to mute video ads:

AATSDK.setVideoAdsMuted(true)

Has Ad

The rewarded video placement provides an API to check if it has a loaded ad.

let hasAd = 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.
    }
}

Last updated