(v2.9.1以上で利用可能)
RFP iOS SDK ではViewable ImpressionをサポートするAPI RFPVisibilityTracker
を提供しています。
この機能をご利用になるには、
RFPVisibilityTracker.init(startTrackingAdView: UIView, infoModel: RFPInstreamInfoModel)
に
広告を表示するUIView
のインスタンス および広告情報を持つRFPInstreamInfoModel
のインスタンスを引数としてインプレッションのトラッカーを初期化してください。
トラッカーがViewable Impressionの条件を満たした場合に対象広告のインプレッションをSDKから通知します。
RFPVisibilityTracker
の内部にNSTimerを利用しているので、破棄時にメモリ解放をしてください。
class YourViewController: UIViewController, RFPInstreamAdLoaderDelegate {
//for tracking adView's visibility impression
var visibilityTracker: RFPVisibilityTracker?
//a uiview for displaying ad's contents
var adView: UIView
//Ad's data for displaying
var infoModel: RFPInstreamInfoModel
//Add ad's uiview to your view hierarchy
func addAdView() {
self.view.addSubview(adView)
}
.
.
.
//Add ad's uiview and data to track ad's view's visibility
func startToTrackAdView() {
self.visiblilityTracker = RFPVisbilityTracker.init(startTrackingAdView: yourAdView, infoModel: yourAdInfoModel)
}
//Must set tracker to nil when stop tracking
deinit {
self.visiblilityTracker = nil
}
}
インプレッションの通知結果がRFPVisibilityTrackerDelegate
を経由して受信する事が出来ます。
override func viewDidLoad() {
super.viewDidLoad()
// (1) set delegate
visibilityTracker.delegate = self
}
// (2) called when imp sent finished
func rfpVisibilityTrackerDidSentImp() {
}
// (3) called when imp sent failed
func rfpVisibilityTrackerFailedToSendImpWithError(_ error: Error!) {
}