iOS_Type B_Feed(広告リストページ表示)

BuzzAd-Benefit SDK: Type B - Feed

本ドキュメントは BuzzAd-Benefit SDKのType B(広告リストページの表示)を実装する際に必要な技術情報をまとめた文書です。リストには複数件のネイティブ広告が表示されます。

※ 注意事項

  1. Feedタイプの実装を行う前に、導入ガイドの内容がすべて適用されているかどうかを確認してください。

  2. カスタマイズ可能な項目: 上段のツールバー・広告リスト領域・ヘッダー

index


基本設定 Basic Usage

BABFeedConfig および BABFeedHandler の設定

  1. Feed unit idを挿入し BABFeedConfigを設定します。

  2. BABFeedConfig オブジェクトを使用して BABFeedHandlerを生成します。

  3. populateViewControllerを呼び出し BABFeedViewControllerを生成します。

  4. 生成された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することができます。

 

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をカスタマイズし、広告インベントリーに対するコールバックを登録することができます。

  1. BABAdViewHolderを引き継ぐclassを作成します。

  2. Interface builderまたはコードを通じてviewを構成します。

    • 留意事項 v1.2.6 以上のバージョンでは以前feed itemの上下左右に設定されていた基本マージンがなくなりました。 以前のバージョンからアップグレートする場合カスタマイズしたAdViewHolder内の上下左右マージンを直接設定する必要があります。

  3. renderAdを作成し view componentと ad property를 bind 합니다. 유저가 적립을 받은지 시간이 얼마 지나지 않아서 리워드가 부여되지 않거나 또는 원래 광고 자체가 리워드를 가지고 있지 않은 경우가 있을 수 있습니다. 따라서 광고 레이아웃 및 바인딩 로직 구성시 rewardText에 대해서 ad.reward > 0 인지 체크해서 리워드를 보여줄지 말지 결정하는 로직이 필요합니다.

  4. (オプション) BABNativeAdViewDelegateを作成し、広告のインプレション・クリック・リワードリクエスト・リワード付与結果・参加完了についてのイベントコールバックを受け取ることができます。(コールバックの定義及び動作は本文書を参照)

 

  1. BABFeedConfigを通じてadViewHolderClassを指定します。

ツールバーのカスタマイズ

Feed上段のツールバーをカスタマイズするには下記内容を参照してください。

  1. BABFeedHeaderViewを引き継ぐclassを生成します。

    1. Interface builder またはコードを通じてviewを構成します。

    2. desiredHeightをoverrideしてheaderViewの高さを指定します。

 

  1. BABFeedConfigを通じて headerViewClassを指定します。

フィードアイテム間の区切り(Separator)のカスタマイズ

フィードアイテム間の区切り(Separator)のカラー・高さ・ horizontalMarginを設定することができます。

フィードへのコンテンツ表示

フィードリストに広告以外のコンテンツ(Buzzvil配信のコンテンツまたは貴社の自社コンテンツ)を表示したい場合は BABFeedConfigを通じて次の通り設定します。