-
Notifications
You must be signed in to change notification settings - Fork 2
複数メディアIDの実装ガイド
moe-ichihara edited this page Nov 21, 2019
·
2 revisions
2つ以上のメディアID を使用する場合は、startWithNonDefaultMediaId:delegate:
で初期化します。
以下は、2つのメディアID を使用するサンプルコードです。
-
startWithMediaId:delegate:
とstartWithNonDefaultMediaId:delegate:
は一緒に使用できます。(startWithMediaId:delegate:
のサンプルコードはこちら) -
startWithNonDefaultMediaId:delegate:
は複数使用できますが、startWithMediaId:delegate:
は複数使用できません。
ゾーンを複数使用する場合は、再生時やデリゲート使用時にゾーンIDを確認して実装するようにしてください。
この例では1つの ViewController が MaioDelegateの通知を受け、2つの MaioInstance を保持します。
// ViewController.h
#import <Maio/Maio.h>
@interface ViewController : UIViewController <MaioDelegate>
// MaioInstanceを保持するためのプロパティを宣言します
@property (nonatomic) MaioInstance *maioInstance;
@property (nonatomic) MaioInstance *maioInstance2;
@end
初期化を行うコードを追加します。
// AppDelegate.m
#import <Maio/Maio.h>
@implementation AppDelegate
// maio から発行されるメディアIDに差し替えてください
NSString * const MAIO_MEDIA_ID = @"DemoPublisherMedia";
NSString * const MAIO_MEDIA_ID2 = @"DemoPublisherMedia2";
- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {
ViewController *viewController = (ViewController *)self.window.rootViewController;
// Maio の初期化を開始します
viewController.maioInstance = [Maio startWithNonDefaultMediaId:MAIO_MEDIA_ID delegate:viewController];
viewController.maioInstance2 = [Maio startWithNonDefaultMediaId:MAIO_MEDIA_ID2 delegate:viewController];
}
@end
再生ボタンの実装と、動画再生後のリワードを付与する処理を実装します。
// ViewController.m
@implementation ViewController
// ... 略 ...
// maio から発行されるゾーンIDに差し替えてください
NSString * const MAIO_ZONE_ID = @"DemoPublisherZone";
NSString * const MAIO_ZONE_ID2 = @"DemoPublisherZone3";
// ストーリーボード上のこのメソッドに紐付けられたボタンがタップされた際に呼び出されます
- (IBAction) startButton : (id) sender {
// canShowプロパティがYESの場合に、動画広告を表示します
if([self.maioInstance canShowAtZoneId:MAIO_ZONE_ID]) {
[self.maioInstance showAtZoneId:MAIO_ZONE_ID vc:self];
}
}
- (IBAction) start2Button : (id) sender {
// canShowプロパティがYESの場合に、動画広告を表示します
if([self.maioInstance2 canShowAtZoneId:MAIO_ZONE_ID2]) {
[self.maioInstance2 showAtZoneId:MAIO_ZONE_ID2 vc:self];
}
}
// 広告表示完了時に呼び出すデリゲートを設定します
// これによって、maio SDK からのイベント通知を取得することが可能になります
// 本メソッドは、ユーザが動画を見終わった直後に呼び出されます
// ”skipped”が”NO”であれば最後まで動画が再生された事を示しますので、
// その際にユーザに報酬を付与する事が可能になります
- (void) maioDidFinishAd: (NSString *) zoneId
playtime: (NSInteger) playtime
skipped: (BOOL) skipped
rewardParam: (NSString *) rewardParam {
// ユーザへのリワード付与処理
}
/**
* 広告の配信可能状態が変更された際に呼ばれます
*
* @param zoneId NSString 広告の配信可能状態が変更されたゾーンの識別子
* @param BOOL newValue 変更後のゾーンの状態 ※YESの場合配信可能
*/
- (void) maioDidChangeCanShow: (NSString *) zoneId newValue: (BOOL) newValue {
// 広告が表示可能ならトリガーを有効化
if ([MAIO_ZONE_ID isEqualToString:zoneId]) {
self.startButton.enabled = newValue;
}
else if ([MAIO_ZONE_ID2 isEqualToString:zoneId]) {
self.start2Button.enabled = newValue;
}
}
// ... 略 ...
@end
デリゲート使用時はゾーンIDを確認して、正しく実装を行ってください。
デリゲートの設定方法に関しては、こちらを参照ください。