インタースティシャル実装方法 - glossom-dev/AdfurikunSDK-iOS GitHub Wiki

インタースティシャル広告

アドフリくんSDKのインポート

Swift
import ADFMovieReward
Objective-C
#import <ADFMovieReward/ADFmyInterstitial.h>

インタースティシャル広告の初期化

ADFmyInterstitialクラスのinitializeWithAppID:メソッドを呼び出して初期化を行います。
“アドフリくん管理画面で発行された広告枠 ID” を引数に指定して下さい。

Swift
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        ADFmyInterstitial.initialize(withAppID: 広告枠ID)
    }
}
Objective-C
@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [ADFmyInterstitial initializeWithAppID:広告枠ID];
}

インタースティシャル広告のロード

ADFmyInterstitialクラスのgetInstance:delegate:メソッド(static)を呼び出し、ADFmyInterstitialクラスのインスタンスを受けとります。 loadメソッドを呼ぶことでロードが開始されます。 ロードの成功、失敗の結果はADFmyMovieRewardDelegateデリゲートコールバックで確認できます。

Swift
class ViewController: UIViewController {

    private var interstitial: ADFmyInterstitial?

    override func viewDidLoad() {
        super.viewDidLoad()

        interstitial = ADFmyInterstitial.getInstance(広告枠ID, delegate: self)
        interstitial?.load()
    }
}

extension ViewController: ADFmyMovieRewardDelegate {
    func adsFetchCompleted(_ appID: String, isTestMode isTestMode_inApp: Bool) {
        //広告ロード成功
    }

    func adsFetchFailed(_ appID: String, error: Error, adnetworkError: [AdnetworkError]) {
        //広告ロード失敗
    }
}
Objective-C
@interface ViewController () <ADFmyMovieRewardDelegate>
@property (nonatomic) ADFmyInterstitial *interstitial;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.interstitial = [ADFmyInterstitial getInstance:広告枠ID delegate:self];
    [self.interstitial load];
}

- (void)AdsFetchCompleted:(NSString *)appID isTestMode:(BOOL)isTestMode_inApp {
    //広告取得成功時に呼ばれます
}

- (void)AdsFetchFailed:(NSString *)appID error:(NSError *)error adnetworkError:(NSArray<AdnetworkError *> *)adnetworkError {
    //広告取得失敗時に呼ばれます
}

@end

インタースティシャル広告の表示

デリゲートで広告ロード成功通知を受け取った後、動画再生開始メソッドを呼びます。

Swift
if interstitial.isPrepared() {
    interstitial.play(withPresenting: self)
}
Objective-C
if ([self.interstitial isPrepared]) {
    [self.interstitial playWithPresentingViewController:self];
}

デリゲートメソッドを実装する

Swift
extension ViewController: ADFmyMovieRewardDelegate {
    //広告ロード成功時に呼ばれます。
    func adsFetchCompleted(_ appID: String, isTestMode isTestMode_inApp: Bool) {
    }
    //広告ロード失敗時に呼ばれます。
    func adsFetchFailed(_ appID: String, error: Error, adnetworkError: [AdnetworkError]) {
    }
    //広告表示開始時に呼ばれます。
    func adsDidShow(_ appID: String, adNetworkKey: String!) {
    }
    //広告表示失敗時に呼ばれます。
    func adsPlayFailed(_ appID: String) {
    }
    //広告を最後まで視聴した時に呼ばれます。
    func adsDidCompleteShow(_ appID: String) {
    }
    //広告を閉じた時に呼ばれます。
    func adsDidHide(_ appID: String) {
    }
}
Objective-C
//広告ロード成功時に呼ばれます。
- (void)AdsFetchCompleted:(NSString *)appID isTestMode:(BOOL)isTestMode_inApp {
}
//広告ロード失敗時に呼ばれます。
- (void)AdsFetchFailed:(NSString *)appID error:(NSError *)error adnetworkError:(NSArray<AdnetworkError *> *)adnetworkError {
}
//広告表示開始時に呼ばれます。
- (void)AdsDidShow:(NSString *)appID adNetworkKey:(NSString *)adNetworkKey {
}
//広告表示失敗時に呼ばれます。
- (void)AdsPlayFailed:(NSString *)appID {
}
//広告を最後まで視聴した時に呼ばれます。
- (void)AdsDidCompleteShow:(NSString *)appID {
}
//広告を閉じた時に呼ばれます。
- (void)AdsDidHide:(NSString *)appID {
}

広告を最後まで視聴したかの判定

インタースティシャル広告では広告スキップ機能がある為、広告を最後まで視聴したかの判定には以下のような実装が必要です。

var isAdsDidCompleteShow = false

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

  func adsDidCompleteShow(_ appID: String!) {
    isAdsDidCompleteShow = true
  }

  func adsDidHide(_ appID: String!) {
    if isAdsDidCompleteShow == true {
      //広告を最後まで視聴した
    }
  }

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
⚠️ **GitHub.com Fallback** ⚠️