クイックスタート

本章では、アプリに広告を表示し、広告の効果を測定するための手順を説明します。
詳細な仕様については、3.プログラミングガイドをご参照ください。

ここで説明する広告は UITableView の利用を前提としています。 UIView などを利用することも可能です。

前提条件

  • インストールガイドに従って、SDKをアプリにインストールしてください。

  • 管理画面からMedia ID と広告枠ID (adSpotId) を取得してください。 (現段階では担当者にお問い合わせください)

Media ID はアプリの識別に利用します。
広告枠IDは広告枠を一意に定義したIDです。 広告枠IDの詳細は広告枠ID の取得をご確認ください。

SDKの初期化

上記で取得した Media ID を引数に、 RFP を初期化します。特別な理由が無い限り、

UIApplicationDelegate application(_:didFinishLaunchingWithOptions:)

に記述して下さい。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    RFP.rfpInitMedia("your_media_id")

    return true
}

この 初期化を行わない限り、後述する広告の取得全般を行う事ができません ので注意して下さい。

広告を取得する

広告を取得するには、rfpLoadAdを呼び出します。 下記3つの引数を指定してください。

引数 用途
adSpotId 広告枠を一意に定義したIDを指定します
adCount 取得したい広告の件数を指定します
positions 広告の位置を定義した配列を指定します

UITableView の先頭に挿入する場合は positions = [0] 、2番目と5番目に挿入する場合は positions = [1, 4] となります。
リストではない画面レイアウトに一つ広告を挿入する場合は positions = [0] となります。

positions = [1, 4]のイメージ

class YourViewController: UIViewController, RFPInstreamAdLoaderDelegate {

    let instreamAdLoader = RFPInstreamAdLoader.init()
    // 広告枠ID
    let adSpotId = "your_adspot_id"
    // UITableViewにおける2つのcellに広告を表示する
    let positions = [1, 4]

    override func viewDidLoad() {
        super.viewDidLoad()

        // delegateを設定
        instreamAdLoader.delegate = self
        // インフィード広告ロードを呼び出し
        instreamAdLoader.rfpLoadAd(
            withReturn: adSpotId,
            adCount: UInt(positions.count),
            positions: positions
        )
    }
}

広告を表示する

RFPInstreamInfoModelから取り出した情報をもとに、広告を表示します。

// RFPInstreamAdLoaderDelegate methods
// インフィード広告ロードの完了
func rfpInstreamAdLoaderDidFinishLoadingAd(withReturn instreamAdLoader: RFPInstreamAdLoader!, instreamInfoModels: [Any]!) {
    // インフィード広告情報を受け取る
    for model: RFPInstreamInfoModel in instreamInfoModels as! [RFPInstreamInfoModel] {
        if (model.title) {
            // 広告のタイトル
            titleLabel.text = model.title
        }

        if (model.content) {
            // 広告のラベル
            contentLabel.text = model.content
        }
        // 広告の画像
        model.rfpLoadImage(imageView, completion: { error -> Void in
            print("Load Finish.")
            if (error != nil) {
                print("Load Error.", error!)
            } else {
                // 画像のロード完了後にインプレッションを通知
                instreamAdLoader.rfpMeasureImp(model)
            }
        })
    }
    // ... UITableView更新など ...
    tableView.realoadData();
}

画像のロード処理については、SDWebImageなど、アプリ内で共通のImageロードライブラリをご利用頂くことを推奨しております

広告イベントを送信する

広告の効果測定を行うために、広告イベントを送信します。

イベント 通知タイミング
インプレッション 広告表示が完了したら
クリック 広告がクリックされたら

広告のインプレッション通知

広告の表示が完了したら、インプレッションを通知してください。 RFPInstreamAdLoader.rfpMeasureImp(_:)を呼び出してください。

// model: RFPInstreamInfoProtocol!
RFPInstreamAdLoader.rfpMeasureImp(model)

広告のクリック時の遷移処理

広告がクリックされたら、以下のメソッドを呼び出すことで、適切にユーザーを遷移させることができます。 RFPInstreamAdLoader.rfpSendClickEvent(_:)を呼び出してください。

// model: RFPInstreamInfoProtocol!
RFPInstreamAdLoader.rfpSendClickEvent(model)

インプレッション通知のタイミングについて

ユーザーが広告を視認可能にすることを保証するため、本SDKはViewable Impressionを推奨します。
Viewable Impressionはアプリで実装する必要があります。サポートライブラリとして RFPVisibilityTracker も提供しています。詳しくはViewable Impressionライブラリーの提供をご参照ください。

Viewable Impressionはインプレッションの条件を満たした上で、以下の条件を満たす必要があります。

広告種類 条件
静止画 条件1. 広告ピクセルの50%以上がビューアブルなスペースに表示される
条件2. 1秒以上連続して上記ピクセルが表示される
動画 条件1. 広告ピクセルの50%以上がビューアブルなスペースに表示される
条件2. 2秒以上連続して上記ピクセルが表示される

Viewable Impressionのイメージ

詳しくはJIAA(日本語),またはIAB/MRC(英語)をご確認ください。