Viewable Impressionとは、ユーザーが広告を視認したことを保証するためのガイドラインです。
Viewable Impressionはインプレッションの条件を満たした上で、以下の条件を満たす必要があります。
広告種類 | 条件 |
---|---|
静止画 | 1. 広告ピクセルの50%以上がビューアブルなスペースに表示される 2. 1秒以上連続して上記ピクセルが表示される |
動画 | 1. 広告ピクセルの50%以上がビューアブルなスペースに表示される 2. 2秒以上連続して上記ピクセルが表示される |
RFP Android SDKではViewable Impressionをサポートするクラスを提供しています。
アプリ側ですでにViewable判定を行っている場合はそちらをご利用ください。
RFPVisibilityTrackerをインスタンス化します。引数にはActivityが必要です。
val tracker = RFPVisibilityTracker(activity)
RFPVisibilityTracker tracker = new RFPVisibilityTracker(activity);
RFPVisibilityTracker#addView(View, RFPInstreamInfoModel) を使用して広告ユニットの表示状態を監視します。
以下、RecyclerView.Adapterでの実装イメージです。
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val item = getItem(position)
if (item is RFPInstreamInfoModel) {
// ... ...
tracker.addView(holder.itemView, item)
} else {
// ... ...
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
Object item = getItem(position);
if (item instanceof RFPInstreamInfoModel) {
// ... ...
tracker.addView(holder.itemView, (RFPInstreamInfoModel) item)
} else {
// ... ...
}
}
このクラスはオブジェクト位置の監視を行うため ViewTreeObserver
を使用しています。
不要になった時点でこの監視を解くため RFPVisibilityTracker#detach()
を呼ぶ必要があります。
Fragment#onDestroyView()
などで呼び出してください。
override fun onDestroyView() {
super.onDestroyView()
tracker.detach()
}
@Override
public void onDestroyView() {
super.onDestroyView();
tracker.detach();
}
この3つの手順で静止画・動画広告に対応するViewable Impressionを送信することができます。