iOS_Type B_Feed(広告リストページ表示)
BuzzAd-Benefit SDK: Type B - Feed
本ドキュメントは BuzzAd-Benefit SDKのType B(広告リストページの表示)を実装する際に必要な技術情報をまとめた文書です。リストには複数件のネイティブ広告が表示されます。
※ 注意事項
Feedタイプの実装を行う前に、導入ガイドの内容がすべて適用されているかどうかを確認してください。
カスタマイズ可能な項目: 上段のツールバー・広告リスト領域・ヘッダー
index
基本設定 Basic Usage
BABFeedConfig
および BABFeedHandler
の設定
Feed unit idを挿入し
BABFeedConfig
を設定します。BABFeedConfig
オブジェクトを使用してBABFeedHandler
を生成します。populateViewController
を呼び出し BABFeedViewControllerを生成します。生成されたBABFeedViewControllerを画面に表示します。
// Objective-C
BABFeedConfig *config = [[BABFeedConfig alloc] initWithUnitId:YOUR_FEED_UNIT_ID];
config.title = @"ハニーフィード";
BABFeedHandler *feedHandler = [[BABFeedHandler alloc] initWithConfig:config];
BABFeedViewController *feedViewController = [feedHandler populateViewController];
// navigationに push
[self.navigationController pushViewController:feedViewController animated:YES];
// またはmodalに present
// [self presentViewController:feedViewController animated:YES completion:nil];
// Swift
let config = BABFeedConfig(unitId: YOUR_FEED_UNIT_ID)
config.title = "ハニーフィード"
let feedHandler = BABFeedHandler(with: config)
let feedViewController = feedHandler.populateViewController()
// navigationに push
navigationController?.pushViewController(feedViewController, animated: YES)
// または modalに present
// present(feedViewController, animated: YES, completion: nil)
追加事項 : BABFeedViewControllerを他のviewControllerのchildViewControllerに付着して使用したりcustom navigationBarを使用する場合feedの topInsetが正しく設定されない問題が発生することがあります。この場合BABFeedViewControllerの
shouldOverrideTopInset
とtopInset
プロパティを設定してtopInsetを貴社の希望の値でoverrideすることができます。
推奨設定 Recommended Usage
Feedの広告ステータス確認
上記の基本設定(Basic Usage)のように設定を行った場合、すぐにBABFeedViewControllerを生成されフィード(広告リスト)が実行される過程で広告の読み込みが開始されます。しかし場合によってはユーザーに表示できる広告がないこともあり、その場合は空の画面が表示されてしまうことがあります。これを防ぐため、フィード画面が立ち上がる前に preload
を呼び出し、 onSuccess
にてステータスを確認後に広告があることを確認できた場合限りフィード画面に遷移するよう設定することをおすすめします。
feedHandler.adsCount
: リスト上に表示する広告件数feedHandler.availableReward
: 付与可能なポイントの合計金額
// Objective-C
[feedHandler preloadWithOnSuccess:^{
NSUInteger adsCount = feedHandler.adsCount;
double availableReward = feedHandler.availableReward;
} onFailure:^(NSError * _Nonnull error) {
// 広告がない時の処理
}];
留意事項
preloadした
BABFeedHandler
と同一のオブジェクトにてpopulateViewController()
を呼び出さなければなりません。1つの FeedHandler インスタンスにて広告をload/preload した場合、そのインスタンスは引き続き同じ広告を保持します。そのためユーザーがフィード画面から離脱しても再度該当のインスタンスに
populateViewController()
を呼び出す場合、同じ広告リストを表示します。広告リスト遷移のたびに新しい広告のロードを希望する場合は新たなFeedHandler
インスタンスを生成しpopulateViewController()
を呼び出す必要があります。
応用設定 Advanced Usage
Feed広告リストアイテム領域のカスタマイズ
Feedの広告リストアイテムViewをカスタマイズし、広告インベントリーに対するコールバックを登録することができます。
BABAdViewHolder
を引き継ぐclassを作成します。Interface builderまたはコードを通じてviewを構成します。
留意事項 v1.2.6 以上のバージョンでは以前feed itemの上下左右に設定されていた基本マージンがなくなりました。 以前のバージョンからアップグレートする場合カスタマイズしたAdViewHolder内の上下左右マージンを直接設定する必要があります。
renderAd
を作成し view componentと ad property를 bind 합니다. 유저가 적립을 받은지 시간이 얼마 지나지 않아서 리워드가 부여되지 않거나 또는 원래 광고 자체가 리워드를 가지고 있지 않은 경우가 있을 수 있습니다. 따라서 광고 레이아웃 및 바인딩 로직 구성시rewardText
에 대해서 ad.reward > 0 인지 체크해서 리워드를 보여줄지 말지 결정하는 로직이 필요합니다.(オプション) BABNativeAdViewDelegateを作成し、広告のインプレション・クリック・リワードリクエスト・リワード付与結果・参加完了についてのイベントコールバックを受け取ることができます。(コールバックの定義及び動作は本文書を参照)
BABFeedConfig
を通じてadViewHolderClass
を指定します。
ツールバーのカスタマイズ
Feed上段のツールバーをカスタマイズするには下記内容を参照してください。
BABFeedHeaderView
を引き継ぐclassを生成します。Interface builder またはコードを通じてviewを構成します。
desiredHeight
をoverrideしてheaderViewの高さを指定します。
BABFeedConfig
を通じてheaderViewClass
を指定します。
フィードアイテム間の区切り(Separator)のカスタマイズ
フィードアイテム間の区切り(Separator)のカラー・高さ・ horizontalMarginを設定することができます。
フィードへのコンテンツ表示
フィードリストに広告以外のコンテンツ(Buzzvil配信のコンテンツまたは貴社の自社コンテンツ)を表示したい場合は BABFeedConfigを通じて次の通り設定します。