Viewable Impressionライブラリーの提供

(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!) {
}