本章では、アプリに広告を表示し、広告の効果を測定するための手順を説明します。
詳細な仕様については、3.プログラミングガイドをご参照ください。
ここで説明する広告は UITableView
の利用を前提としています。 UIView
などを利用することも可能です。
インストールガイドに従って、SDKをアプリにインストールしてください。
管理画面からMedia ID と広告枠ID (adSpotId
) を取得してください。
(現段階では担当者にお問い合わせください)
Media ID はアプリの識別に利用します。
広告枠IDは広告枠を一意に定義したIDです。
広告枠IDの詳細は広告枠ID の取得をご確認ください。
上記で取得した 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] となります。
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秒以上連続して上記ピクセルが表示される |
詳しくはJIAA(日本語),またはIAB/MRC(英語)をご確認ください。