1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アドフリくん実装方法の紹介

Posted at

アプリに動画リワード広告を導入するにあたって、アドフリくんを導入することになりましたので実装方法について、ご紹介します。

1. インポートの設定

import ADFMovieReward

2. インスタンスの設定

class ViewController: UIViewController {
    var movieAd: ADFmyMovieReward?

    override func viewDidLoad() {
        self.movieAd = ADFmyMovieReward.getInstance("IDを入れる", delegate: self)
    }
}

3.動画の再生

・再生の準備ができているか確認し、再生する。
・動画が再生されたら、カウントを0に戻す。
・読み込みができない際は、1秒待ってから再度トライする。
・20回トライしても広告を読み込めなかった場合は、エラーのアラートを表示してカウントを0に戻す。

    var tryCount = 0 
    
    func movieNow() {
        if !SVProgressHUD.isVisible() {
            SVProgressHUD.show()
        }
        
        if tryCount > 20 {
            SVProgressHUD.dismiss()
            // 20回超えたのでカウントを0に戻す
            tryCount = 0
            AlertControllerHelper.defaultOnly(viewController: self, title: "エラー", message: "動画の読み込みに失敗しました。時間をおいて再度試してみてください。", defaultButtonText: "OK", complication: nil)
            return
        }
        
        if ADFmyMovieReward.isSupportedOSVersion() {
            // 再生の準備ができているか確認し、再生する。
            if let movieAd = self.movieAd {
                if movieAd.isPrepared() {
                    SVProgressHUD.dismiss()
                    // 再生されたらカウントを0に戻す
                    tryCount = 0
                    movieAd.play(withPresenting: self)
                } else {
                    tryCount += 1
                    // 読み込みができない際は、1秒待ってから再度トライする。
                    Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(movieNow), userInfo: nil, repeats: false)
                }
            }
        } else {
            SVProgressHUD.dismiss()
        }
    }

全体のコード

ViewController.swift
import ADFMovieReward

class ViewController: UIViewController {
    var movieAd: ADFmyMovieReward?
    var tryCount = 0

    override func viewDidLoad() {
        self.movieAd = ADFmyMovieReward.getInstance("IDを入れる", delegate: self)
    }
    
    @IBaction func onAdButtonTapped(_ sender: Any) {
        movieNow()
    }

    func movieNow() {
        if !SVProgressHUD.isVisible() {
            SVProgressHUD.show()
        }
        
        if tryCount > 20 {
            SVProgressHUD.dismiss()
            tryCount = 0
            AlertControllerHelper.defaultOnly(viewController: self, title: "エラー", message: "動画の読み込みに失敗しました。時間をおいて再度試してみてください。", defaultButtonText: "OK", complication: nil)
            return
        }
        
        if ADFmyMovieReward.isSupportedOSVersion() {
            if let movieAd = self.movieAd {
                if movieAd.isPrepared() {
                    SVProgressHUD.dismiss()
                    tryCount = 0
                    movieAd.play(withPresenting: self)
                } else {
                    tryCount += 1
                    Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(movieNow), userInfo: nil, repeats: false)
                }
            }
        } else {
            SVProgressHUD.dismiss()
        }
    }
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?