Skip to content

Get Started

im-matsu06 edited this page Jul 20, 2016 · 21 revisions

1. XcodeによるSDKの設定

1. Xcodeによるプロジェクトの作成

新規に「Single View Application」を作成した場合を例に説明します。

  1. Xcodeを起動し、新規に「Single View Application」を選択し、[Next]をクリックします。
  2. 必須情報とオプション項目を入力します。この例では以下のように入力します。
項目 入力値
Product Name Sample01
Organization Name yourcompany
Company Identifier com.yourcompany
Device Family Universal
![](https://github.com/imobile-maio/maio-iOS-SDK/blob/wiki/doc/images/_2.png)
  1. プロジェクトの作成先として任意のフォルダを作成し、[Create]をクリックし、 プロジェクトを作成します。

2. SDKをプロジェクトに追加する

  1. maioSDKのzipファイルを解凍します。
  2. 解凍後のフォルダ内の「Maio.framework」をFinderからXcode上の[Project Navigator]へドラッグ&ドロップします。
  3. ダイアログが表示されますので、コピーする際は"Destination: Copy items if needed"にチェックを入れ完了します。
  4. ドラッグ&ドロップした位置に、SDKが追加されます。

2. 広告の表示方法

以下は、「1.XcodeによるSDKの設定」の手順が完了していることを前提とします。

コードの実装例

  • 初期化を行うコードを追加します。
// AppDelegate.m

  // Maio.frameworkをインポート
  #import <Maio/Maio.h>

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

    // 広告の配信テスト設定を行います。アプリをリリースする際にはコメントアウトしてください。
    [Maio setAdTestMode: YES];

    // maio SDKのセットアップを開始します。
    // MAIO_MEDIA_ID は、Maio管理画面より割り当てられたメディアIDに差し替えてください。
    [Maio startWithMediaId: @"MAIO_MEDIA_ID" delegate: viewController];
  }
  • デリゲートの宣言を行います。
// viewController.h

  // デリゲートの設定を行います。
  // これによって、SDKからのイベント通知を取得することが可能になります。
  @interface ViewController : UIViewController <MaioDelegate>
  • 再生ボタンの実装と、動画再生後のリワードを付与する処理を宣言します。
// viewController.m

  @implementation viewController

  ... 略 ...

  // ストーリーボード上のこのメソッドに紐付けられたボタンがタップされた際に呼び出されます。
  - (IBAction) onOpenAd : (id) sender {
    // canShowプロパティがYESの場合に、動画広告を表示します。
    if([Maio canShow]) {
      [Maio show];
    }
  }

  // 広告表示完了時に呼び出すデリゲートを設定します。
  // これによって、SDKからのイベント通知を取得することが可能になります。
  // 本メソッドは、ユーザが動画を見終わった直後に呼び出されます。  
  // ”skipped”が”NO”であれば最後まで動画が再生された事を示しますので、  
  // その際にユーザに報酬を付与する事が可能になります。  
  - (void) maioDidFinishAd: (NSString *) zoneId 
                  playtime: (NSInteger) playtime
                   skipped: (BOOL) skipped 
               rewardParam: (NSString *) rewardParam {

  }

  ... 略 ...

  @end

3. デリゲートで各種イベントを受け取る

アプリにデリゲートを設定することで、SDKからのイベント通知を取得することが可能になります。
デリゲートの設定方法に関しては、「2. コードの実装例」をご参照ください。

  • 広告表示準備完了時に呼ばれるメソッド

/**

  • 全てのゾーン(広告スポット)の広告表示準備が完了した際に呼ばれます。 */
  • (void) maioDidInitialize { // 広告表示準備完了時の処理 }

    
    
  • 広告配信可能状態の変更時に呼ばれるメソッド

/**

  • 広告の配信可能状態が変更された際に呼ばれます。
  • @param zoneId NSString 広告の配信可能状態が変更されたゾーンの識別子
  • @param BOOL newValue 変更後のゾーンの状態 ※YESの場合配信可能 */
  • (void) maioDidChangeCanShow: (NSString *) zoneId newValue: (BOOL) newValue { // 変更時の処理 }

    
    
  • 動画広告再生直前に呼ばれるメソッド

/**

  • 動画が再生される直前に呼ばれます。
  • 最初の再生開始の直前にのみ呼びだされ、リプレイ再生の直前には呼ばれません。
  • @param zoneId NSString 広告が表示されるゾーンの識別子 */
  • (void) maioWillStartAd: (NSString *) zoneId { // 再生直前に呼ばれる処理 }

- 広告再生終了時に呼ばれるメソッド

```objective-c
/**
 * 広告の再生が終了したら呼ばれます。
 * 最初の再生終了時にのみ呼ばれ、リプレイ終了時には呼ばれません。
 *
 * @param zoneId NSString 広告を表示したゾーンの識別子
 * @param playtime NSInteger 動画の再生時間(秒)
 * @param skipped BOOL 動画がスキップされているかどうか。されていたらYES,それ以外ではNO
 * @param rewardParam NSString ゾーン(広告枠)の広告タイプがリワード型に設定されている場合、
 *        予め管理画面にて設定してある任意の文字列パラメータが渡されます。
 *        それ以外の場合はnilが渡されます。
 */
- (void) maioDidFinishAd: (NSString *) zoneId 
                playtime: (NSInteger) playtime 
                 skipped: (BOOL) skipped 
             rewardParam: (NSString *) rewardParam {
    // 再生終了時に呼ばれる処理
}
  • 広告がクリックされた際に呼ばれるメソッド

/**

  • 広告がクリックされ、AppStoreや外部リンクへ遷移した際に呼ばれます。
  • @param zoneId NSString 広告がクリックされたゾーンの識別子 */
  • (void) maioDidClickAd: (NSString *) zoneId { // 広告がクリックされた際に呼び出される処理 }

- 広告が閉じられた際に呼ばれるメソッド

```objective-c
/**
 *  広告が閉じられた際に呼び出されます。
 *
 * @param zoneId NSString 広告が閉じられたゾーンの識別子
 */
- (void) maioDidCloseAd: (NSString *) zoneId {
}
  • エラー時に呼ばれるメソッド

/**

  • (void) maioDidFail: (NSString *) zoneId reason: (MaioFailReason) reason { NSLog(@"%d", reason); }

## 4. Q&A

- 広告が表示されません
+ ゾーン(広告枠)の初期化から広告の配信準備が完了するまで、少々時間が必要です。  
また、表示されない原因を特定するためにエラーコードをご参照ください。

- zoneIDについて
+ zoneIDは、広告が表示される枠(ゾーン)の識別子です。  
現状、1アプリにつき1つのzoneIDを付与しております。

- デリゲートメソッドを実装したのに呼ばれない
+ MaioDelegateの設定が完了していない可能性がございます。「2.1.3広告の表示方法 デリゲートの設定」が完了しているかご確認ください。

- 新規のmediaID(zoneID)を発行する
+ 現在管理画面を個別で発行させて頂いており、管理画面より新規のメディアIDが発行可能でございます。  
管理画面を作成させていただくにあたり、弊社担当者に以下情報をお伝えくださいませ。

【必要情報】  
    1. 管理画面ご登録名 ※  
    2. ログイン用メールアドレス ※  
    3. アプリ名  
    4. ストアURL  
    5. URLスキーム  
    ※は必須になります。  
    未リリースの場合は決定している範囲で構いません。
Clone this wiki locally