Skip to content

maioを複数経路で実装するガイド

moe-ichihara edited this page Nov 21, 2019 · 2 revisions

maio 使用パターン

  1. AdMobメディエーション(maio) × maio 実装
  2. SSP(maio) × maio 実装
  3. SSP(maio) × AdMobメディエーション(maio) 実装
  4. SSP1(maio) × SSP2(maio) 実装

1-1. maio SDK の導入

AdMobメディエーション導入済みプロジェクトで maio を直接利用する場合

maio と AdMobメディエーションの統合 の "Step 3: Import the maio SDK and adapter" にて maio SDK とアダプターを導入済みの場合、追加で maio SDK の導入は不要です。

maio 導入済みプロジェクトに AdMobメディエーションを追加する場合

AdMobメディエーションに maio を導入する方法は以下のガイドをご利用ください。

1-2. 広告の表示方法

以下は、動画リワードで AdMobメディエーション、動画インタースティシャルで maio を表示するサンプルコードです。
※AdMobメディエーションと maio を併用する場合、maio SDK v1.3.0 以降、メディアID を分けずに使用できます。(※iOSのみ)

ゾーンを複数使用する場合は、再生時やデリゲート使用時にゾーンIDを確認して実装するようにしてください。

この例では ViewController が MaioDelegateの通知を受け、MaioInstance を保持します。

// ViewController.h

#import <Maio/Maio.h>
#import <GoogleMobileAds/GoogleMobileAds.h>

@interface ViewController : UIViewController <MaioDelegate>

// MaioInstanceを保持するためのプロパティを宣言します
@property (nonatomic) MaioInstance *maioInstance;

@end

初期化を行うコードを追加します。

// AppDelegate.m

#import <Maio/Maio.h>
#import <GoogleMobileAds/GoogleMobileAds.h>

@implementation AppDelegate

// maio から発行されるメディアIDに差し替えてください
// maio SDK v1.3.0 以降、メディアID は AdMobメディエーションで使用しているID と同じものを使用できます
NSString * const MAIO_MEDIA_ID = @"DemoPublisherMedia";
// AdMob から発行される App ID に差し替えてください
NSString * const ADMOB_APP_ID = @"ca-app-pub-3940256099942544~1458002511";

- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {
    ViewController *viewController = (ViewController *)self.window.rootViewController;

    // AdMob を初期化します
    [GADMobileAds configureWithApplicationID:ADMOB_APP_ID];
    
    // Maio を初期化します
    viewController.maioInstance = [Maio startWithNonDefaultMediaId:MAIO_MEDIA_ID delegate:viewController];

}

@end

再生ボタンの実装と、動画再生後のリワードを付与する処理を実装します。

// ViewController.m

@implementation ViewController

// ... 略 ...

// maio から発行されるゾーンID に差し替えてください
// ゾーンID は AdMobメディエーションで使用しているID とは別に新しく作成してください
NSString * const MAIO_ZONE_ID = @"DemoPublisherZone";
// AdMob から発行される広告ユニットID に差し替えてください
NSString * const ADMOB_AD_UNIT_ID = @"ca-app-pub-3940256099942544/1712485313";

- (void)viewDidLoad {
    [super viewDidLoad];

    // AdMob のイベント通知の設定
    [GADRewardBasedVideoAd sharedInstance].delegate = self;
    // 動画リワード広告をリクエストする
    [[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request] withAdUnitID:ADMOB_AD_UNIT_ID];
}

// AdMob を表示する
- (IBAction) startAdMobButton : (id) sender {
    // isReady プロパティがYESの場合に、動画広告を表示します
    if ([[GADRewardBasedVideoAd sharedInstance] isReady]) {
        [[GADRewardBasedVideoAd sharedInstance] presentFromRootViewController:self];
    }
}

// maio を表示する
- (IBAction) startmaioButton : (id) sender {
    // canShowAtZoneId プロパティがYESの場合に、動画広告を表示します
    if([self.maioInstance canShowAtZoneId:MAIO_ZONE_ID]) {
        [self.maioInstance showAtZoneId:MAIO_ZONE_ID vc:self];
    }
}

// AdMob のデリゲート定義
- (void)rewardBasedVideoAdDidReceiveAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  // 広告が表示可能ならトリガーを有効化
}

// 広告表示完了時に呼び出すデリゲートを設定します
// これによって、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 {
    // 広告が表示可能ならトリガーを有効化
}

// ... 略 ...

@end

このガイドでは、前提として、既に SSP で maio を配信している方を対象とします。

2-1. maio SDK の導入

maio SDK は SSP で導入されたものを使います。新しく追加する必要はありません。

2-2. 広告の表示方法

maio を実装する際は startWithMediaId:delegate: ではなく startWithNonDefaultMediaId:delegate: を使用して SDK を初期化します。
実装方法については以下を参考にしてください。
SSP と maio の直接利用でメディアIDは別のIDを使用してください。

SSP と AdMobメディエーションでメディアIDは別のIDを使用してください。
その他の実装方法、注意事項等につきましては AdMobメディエーション、各 SSP の実装ガイドに従ってください。

どちらか片方の SSP が 複数メディアIDの実装 に対応している場合、実装が可能です。
お使いの SSP が 対応しているかどうかにつきましては各 SSP へお問い合わせください。

デリゲートについて

デリゲート使用時はゾーンIDを確認して、正しく実装を行ってください。
デリゲートの設定方法に関しては、こちらを参照ください。