Как реализовать iAd Preroll Video в Swift и iOS 9?
Я пытаюсь воспроизвести видео PreAd iAd в своей игре, не выпуская потом видео, как я вижу, это делается во всех примерах, которые я видел. Когда я начинаю играть в Preroll iAd, отображается AV View Controller, но ничего не воспроизводится, и я попадаю в свой случай ошибки, как показано ниже, говоря, что он не может воспроизводиться. То, что я собираюсь сделать, сделано в играх типа "Pop The Lock", когда у вас есть второй шанс, если вы посмотрите видеообъявление.
В моем AppDelegate.swift у меня есть следующий код для подготовки видео iAd.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
// Override point for customization after application launch.
AVPlayerViewController.preparePrerollAds()
return true
}
Тогда в моем ViewController у меня есть следующее, чтобы воспроизвести объявление...
import AVFoundation
import iAd
//this is declared at the top
let adPlayerController = AVPlayerViewController()
//this gets called inside of a function
adPlayerController.playPrerollAdWithCompletionHandler({ (error) -> Void in
if error != nil
{
print(error)
print("Ad could not be loaded")
}
else
{
print("Ad loaded")
}
})
1 ответ
Я хотел сделать то же самое и потерпел неудачу с видео до ролика. Теперь у меня есть iAd для моего bannerView, и я использую AdMob для видеорекламы, чтобы получить второй шанс.
Просто скачайте AdMob и вставьте в свое приложение. Затем импортировать
import GoogleMobileAds
создать переменную
var interstitial: GADInterstitial!
Затем создайте функцию, которая будет загружать и показывать видеообъявление.
func loadAd() {
self.interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
let request = GADRequest()
// Requests test ads on test devices.
request.testDevices = ["e23db0f2cf8d82b7b4f23ede7df2f928"]
interstitial.delegate = self
self.interstitial.loadRequest(request)
}
func showAd() {
if self.interstitial.isReady {
let vc = self.view!.window?.rootViewController
self.interstitial.presentFromRootViewController(vc)
}
}
func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) {
print("Video Ad did not load")
}
func interstitialDidDismissScreen(ad: GADInterstitial!) {
}
func interstitialDidReceiveAd(ad: GADInterstitial!) {
}
func interstitialWillLeaveApplication(ad: GADInterstitial!) {
}
func interstitialWillPresentScreen(ad: GADInterstitial!) {
}
func interstitialWillDismissScreen(ad: GADInterstitial!) {
}