I want to integrate an iAd Pre-Roll video Ad to my application. When I run this application, it gives me this error:
Domain=ADErrorDomain Code=0 "The operation couldn’t be completed. (ADErrorDomain error 0.)
I want to know if this code is correct or incorrect. Thanks for your help.
import UIKit
import MediaPlayer
import iAd
class ViewController: UIViewController {
var moviePlayer : MPMoviePlayerController!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSBundle.mainBundle().URLForResource("intro", withExtension: "mp4")
moviePlayer = MPMoviePlayerController(contentURL: url)
moviePlayer!.view.frame = view.frame
moviePlayer!.prepareToPlay()
view.addSubview(moviePlayer!.view!)
moviePlayer.playPrerollAdWithCompletionHandler { (error) -> Void in
NSLog("\(error)")
self.moviePlayer.play()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
This is one of my modified App Delegate function:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
MPMoviePlayerController.preparePrerollAds()
return true
}
You're trying to display your Pre-Roll Video Ad before your application has had any time to download it. Fire your
moviePlayer.playPrerollAdWithCompletionHandler
after a few seconds or move the video to a later point in your intro so your application has time to download the ad. Check my example:Tapping the
UIButton
playVideoButton
a few seconds after application launch will play the prerolled video advertisement and then the desired video.Also, If you're testing on your device go to Settings>Developer>Fill Rate> and make sure it is set to 100%.