Skip to content


ニュースフィード統合

ニュースフィードデータモデル

データを取得する

ニュースフィードデータモデルにアクセスするには、ニュースフィード更新イベントを購読してください。

1
2
3
4
5
6
// Subscribe to feed updates
// Note: you should remove the observer where appropriate
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(feedUpdated:)
                                             name:ABKFeedUpdatedNotification
                                           object:nil];
1
2
3
4
5
6
// Called when the feed is refreshed (via `requestFeedRefresh`)
- (void)feedUpdated:(NSNotification *)notification {
  BOOL updateIsSuccessful = [notification.userInfo[ABKFeedUpdatedIsSuccessfulKey] boolValue];
  // check for success
  // get the cards using [[Appboy sharedInstance].feedController getCardsInCategories:ABKCardCategoryAll];
}
1
2
3
4
5
// Subscribe to feed updates
// Note: you should remove the observer where appropriate
NotificationCenter.default.addObserver(self, selector:
  #selector(feedUpdated),
  name:NSNotification.Name.ABKFeedUpdated, object: nil)
1
2
3
4
5
6
7
// Called when the feed is refreshed (via `requestFeedRefresh`)
private func feedUpdated(_ notification: Notification) {
  if let updateSuccessful = notification.userInfo?[ABKFeedUpdatedIsSuccessfulKey] as? Bool {
    // check for success
    // get the cards using Appboy.sharedInstance()?.feedController.getCardsInCategories(.all);      
  }
}

Braze から送信された後にカードデータを変更したい場合は、カードデータをローカルに保存 (ディープコピー) して更新し、自身で表示することをおすすめします。カードには ABKFeedController 経由でアクセスできます。

ニュースフィードモデル

Braze には、バナー画像、キャプション付き画像、テキストアナウンス、クラシックの5種類のユニークなカードタイプがあります。各タイプはベースモデルから共通のプロパティを継承し、次の追加プロパティを持ちます。

ベースカードモデルのプロパティ

プロパティ 説明
idString (読み取り専用) Braze によって設定されたカードの ID。
viewed このプロパティは、ユーザーがカードを読んだか、それとも未読かを反映します。
created (読み取り専用) このプロパティは Braze ダッシュボードからのカード作成時刻の UNIX タイムスタンプです。
updated (読み取り専用) このプロパティは、Braze ダッシュボードからのカードの最新更新時刻の UNIX タイムスタンプです。
categories カードに割り当てられているカテゴリーのリスト、カテゴリーのないカードは ABKCardCategoryNoCategory が割り当てられます。

利用可能なカテゴリー:
- ABKCardCategoryNoCategory
- ABKCardCategoryNews
- ABKCardCategoryAdvertising
- ABKCardCategoryAnnouncements
- ABKCardCategorySocial
- ABKCardCategoryAll
extras NSString 値のオプションの NSDictionary

バナー画像カードのプロパティ

プロパティ 説明
image (必須) このプロパティはカードの画像の URL です。
URL (オプション) カードをクリックした後に開かれる URL。HTTP (S) URL でもプロトコル URL でもかまいません。
domain (オプション) プロパティ URL のリンクテキスト (@”blog.braze.com” など)。カードの UI に表示して、カードをクリックしたときのアクションと方向を示すことができますが、デフォルトの Braze ニュースフィードでは非表示になっています。

キャプション付き画像カードのプロパティ

プロパティ 説明
image (必須) このプロパティはカードの画像の URL です。
title (必須) カードのタイトルテキスト。
description (必須) カードの本文テキスト。  
URL (オプション) カードをクリックした後に開かれる URL。HTTP (S) URL でもプロトコル URL でもかまいません。
domain (オプション) プロパティ URL のリンクテキスト (@”blog.braze.com” など)。カードの UI に表示して、カードをクリックしたときのアクションと方向を示すことができます。

テキスト通知カード (画像なしのキャプション付き画像) のプロパティ

プロパティ 説明
title (必須) カードのタイトルテキスト。
description (必須) カードの本文テキスト。
url (オプション) カードをクリックした後に開かれる URL。HTTP (S) URL でもプロトコル URL でもかまいません。
domain (オプション) プロパティ URL のリンクテキスト (@”blog.braze.com” など)。カードの UI に表示して、カードをクリックしたときのアクションと方向を示すことができます。

クラシックカードのプロパティ

プロパティ 説明
image (必須) このプロパティはカードの画像の URL です。
title (オプション) カードのタイトルテキスト。
description (必須) カードの本文テキスト。
URL (オプション) カードをクリックした後に開かれる URL。HTTP (S) URL でもプロトコル URL でもかまいません。
domain (オプション) プロパティ URL のリンクテキスト (@”blog.braze.com” など)。カードの UI に表示して、カードをクリックしたときのアクションと方向を示すことができます。

カードメソッド

メソッド 説明
logCardImpression 特定のカードのインプレッションを Braze に手動で記録します。
logCardClicked 特定のカードのクリックを Braze に手動で記録します。SDK は、カードに有効な値の url プロパティがある場合にのみカードクリックを記録します。ABKCard のすべてのサブクラスには url プロパティがあります。

フィード表示を記録する

独自のユーザーインターフェイスでニュースフィードを表示する場合、- (void)logFeedDisplayed; を使用してニュースフィードのインプレッションを手動で記録できます。例:

1
[[Appboy sharedInstance] logFeedDisplayed];
1
Appboy.sharedInstance()?.logFeedDisplayed()

ニュースフィードビューコントローラーの統合

ビューコントローラー ABKNewsFeedViewController を統合すると、Braze ニュースフィードが表示されます。

ビューコントローラーの表示方法は非常に柔軟に選択できます。ビューコントローラーには、さまざまなナビゲーション構造に対応するさまざまなバージョンがあります。

ニュースフィードは、ナビゲーションまたはモーダルの2つのビューコントローラーコンテキストと統合できます。

ナビゲーションコンテキスト - ABKFeedViewコントローラーのナビゲーションコンテキスト

1
2
ABKNewsFeedTableViewController *newsFeed = [[ABKNewsFeedTableViewController alloc] init];
[self.navigationController pushViewController:newsFeed animated:YES];
1
2
let newsFeed = ABKNewsFeedTableViewController()
self.navigationController?.pushViewController(newsFeed, animated: true)

ナビゲーションバーの title をカスタマイズするには、ABKNewsFeedTableViewController インスタンスの navigationItem のタイトルプロパティを設定します。

モーダルコンテキスト - AbkFeedView コントローラーモーダルコンテキスト

このモーダルは、ビューコントローラをモーダルビューで表示するために使用され、上部にナビゲーションバーがあり、バーの右側に [完了] ボタンがあります。モーダルのタイトルをカスタマイズするには、ABKNewsFeedTableViewController インスタンスの navigationItemtitle プロパティを設定します。

デリゲートが設定されていない場合、[完了] ボタンをクリックすると、モーダルビューが閉じます。デリゲートが設定されている場合、[完了] ボタンをクリックするとデリゲートが呼び出され、デリゲート自体によってビューが閉じられます。

1
2
ABKNewsFeedViewController *newsFeed = [[ABKNewsFeedViewController alloc] init];
[self presentViewController:newsFeed animated:YES completion:nil];
1
2
let newsFeed = ABKNewsFeedViewController()
self.present(newsFeed, animated: true, completion: nil)

ビューコントローラーの例については、ニュースフィードのサンプルアプリをご覧ください。

「このページはどの程度役に立ちましたか?」
New Stuff!