動画リワード実装方法 - glossom-dev/AdfurikunSDK-iOS GitHub Wiki
Swift
import ADFMovieReward
Objective-C
#import <ADFMovieReward/ADFmyMovieReward.h>
ADFmyMovieReward
クラスのinitializeWithAppID:
メソッドを呼び出して初期化を行います。
“アドフリくん管理画面で発行された広告枠 ID” を引数に指定して下さい。
Swift
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
ADFmyMovieReward.initialize(withAppID: 広告枠ID)
}
}
Objective-C
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[ADFmyMovieReward initializeWithAppID:広告枠ID];
}
ADFmyMovieReward
クラスのgetInstance:delegate:
メソッド(static)を呼び出し、ADFmyMovieReward
クラスのインスタンスを受けとります。
load
メソッドを呼ぶことでロードが開始されます。
ロードの成功、失敗の結果はADFmyMovieRewardDelegate
デリゲートコールバックで確認できます。
Swift
class ViewController: UIViewController {
private var movieReward: ADFmyMovieReward?
override func viewDidLoad() {
super.viewDidLoad()
movieReward = ADFmyMovieReward.getInstance(広告枠ID, delegate: self)
movieReward?.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) ADFmyMovieReward *reward;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.reward = [ADFmyMovieReward getInstance:広告枠ID delegate:self];
[self.reward load];
}
- (void)AdsFetchCompleted:(NSString *)appID isTestMode:(BOOL)isTestMode_inApp {
//広告取得成功時に呼ばれます
}
- (void)AdsFetchFailed:(NSString *)appID error:(NSError *)error adnetworkError:(NSArray<AdnetworkError *> *)adnetworkError {
//広告取得失敗時に呼ばれます
}
@end
デリゲートで広告ロード成功通知を受け取った後、動画再生開始メソッドを呼びます。
Swift
if movieReward.isPrepared() {
movieReward.play(withPresenting: self)
}
Objective-C
if ([self.reward isPrepared]) {
[self.reward 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 {
}
報酬の付与は、ADFmyMovieRewardDelegateの
- (void)AdsDidHide:(NSString *)appID;
関数が呼ばれた際にユーザーへ報酬を付与する事を推奨します。
一部アドネットワークは新しくUIWindowを生成して広告を再生しています。そのため、アプリケーションで広告再生後UIWindowのKeyWindow設定を変更する場合、動画が見れず音だけ再生されるケースも発生します。ですので、広告再生から広告完了の間ではKeyWindowの設定を変更しないような実装をしてください。