(EN) iOS_Swift Rewarded Video - adxcorp/ADXLibrary_Integration GitHub Wiki
AdMob Rewarded Video Ad Integration
Loading Rewarded Video Ads take some time. It is recommended that you pre-load it before using it.
- Configure
ADMobileAds
using App ID - Add
GADRewardBasedVideoAd
delegate - Create
GADRequest
and add Vungle placements ID as extra if you have one - Call
GADRewardBasedVideoAd
'sloadRequest: withAdUnitID:
to load ad rewardBasedVideoAdDidReceiveAd:
gets called when ad has been loaded- Check if ad is available by calling
GADRewardBasedVideoAd
'sisReady
then callpresentFromRootViewController:
to show rewarded video ad - When rewarded video ad has finished playing,
rewardBasedVideoAd: didRewardUserWithReward:
gets called. Once the callback gets called, then you may proceed to reward the user.
AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.configure(withApplicationID: "<YOUR_APP_ID>")
return true
}
MyViewController.m
import GoogleMobileAds
import VungleAdapter
class ADXAdMobRewardViewController: UIViewController, GADRewardBasedVideoAdDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
GADRewardBasedVideoAd.sharedInstance().delegate = self
}
@IBAction func selectShowAd(_ sender: Any) {
if(GADRewardBasedVideoAd.sharedInstance().isReady) {
GADRewardBasedVideoAd.sharedInstance().present(fromRootViewController: self)
} else {
let request = GADRequest()
let extras = VungleAdNetworkExtras.init()
let placements = NSArray.init(objects: "<VUNGLE PLACEMENT ID>", "<VUNGLE PLACEMENT ID>")
let placementsArray = placements as NSArray as! [String]
extras.allPlacements = placementsArray
request.register(extras)
request.testDevices = ["e527e0336ebd9354411d932aa50910ca"]
GADRewardBasedVideoAd.sharedInstance().load(request, withAdUnitID: "<YOUR_ADUNIT_ID_HERE>")
}
}
// MARK: - GADRewardBasedVideoAdDelegate
func rewardBasedVideoAdDidOpen(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("rewardBasedVideoAdDidOpen")
}
func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("rewardBasedVideoAdDidClose")
}
func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("rewardBasedVideoAdDidReceive")
}
func rewardBasedVideoAdDidStartPlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("rewardBasedVideoAdDidStartPlaying")
}
func rewardBasedVideoAdWillLeaveApplication(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("rewardBasedVideoAdWillLeaveApplication")
}
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didFailToLoadWithError error: Error) {
print("rewardBasedVideoAd")
print("error :", error)
}
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) {
print("rewardBasedVideoAd")
}
MoPub Rewarded Video Ad Integration
Loading Rewarded Video Ads take some time. It is recommended that you pre-load it before using it.
- Add delegate
- Call
MPRewardedVideo
'sloadAdWithAdUnitID:
to load ad rewardedVideoAdDidLoadForAdUnitID:
gets called when ad has been loaded- Call
MPRewardedVideo
'shasAdAvailableForAdUnitID:
to make sure there is an ad to display then callpresentAdForAdUnitID:
to show rewarded video ad - When rewarded video ad has finished playing,
rewardedVideoAdShouldRewardForAdUnitID:reward:
gets called. Once the callback gets called, then you may proceed to reward the user.
MyViewController.m
import MoPub
class ADXRewardViewController: UIViewController, MPRewardedVideoDelegate {
override func viewDidLoad() {
super.viewDidLoad()
MoPub.sharedInstance().initializeRewardedVideo(withGlobalMediationSettings: nil, delegate: self)
MPRewardedVideo.loadAd(withAdUnitID: <YOUR_ADUNIT_ID_HERE>, withMediationSettings: nil)
}
@IBAction func selectShowAd(_ sender: Any) {
if (MPRewardedVideo.hasAdAvailable(forAdUnitID: <YOUR_ADUNIT_ID_HERE>) == true) {
MPRewardedVideo.presentAd(forAdUnitID: <YOUR_ADUNIT_ID_HERE>, from: self, with: nil)
} else {
MPRewardedVideo.loadAd(withAdUnitID: <YOUR_ADUNIT_ID_HERE>, withMediationSettings: nil)
}
}
// MARK: - MPRewardedVideoDelegate
func rewardedVideoAdDidLoad(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdDidLoad :", adUnitID)
}
func rewardedVideoAdDidAppear(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdDidAppear :", adUnitID)
}
func rewardedVideoAdDidExpire(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdDidExpire :", adUnitID)
}
func rewardedVideoAdWillAppear(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdWillAppear :", adUnitID)
}
func rewardedVideoAdDidDisappear(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdDidDisappear :", adUnitID)
}
func rewardedVideoAdWillDisappear(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdWillDisappear :", adUnitID)
}
func rewardedVideoAdDidReceiveTapEvent(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdDidReceiveTapEvent :", adUnitID)
}
func rewardedVideoAdWillLeaveApplication(forAdUnitID adUnitID: String!) {
print("rewardedVideoAdWillLeaveApplication :", adUnitID)
}
func rewardedVideoAdDidFailToLoad(forAdUnitID adUnitID: String!, error: Error!) {
print("rewardedVideoAdDidFailToLoad :", adUnitID)
print("error :", error)
}
func rewardedVideoAdDidFailToPlay(forAdUnitID adUnitID: String!, error: Error!) {
print("rewardedVideoAdDidFailToPlay :", adUnitID)
print("error :", error)
}
func rewardedVideoAdShouldReward(forAdUnitID adUnitID: String!, reward: MPRewardedVideoReward!) {
print("rewardedVideoAdShouldReward :", adUnitID)
print("reward :", reward.currencyType)
}