ニュースフィード統合
このリファレンス記事では、さまざまなニュースフィードカードの種類、利用可能なカード固有のプロパティ、Android または FireOS アプリケーションのカスタム統合例について説明します。
News Feed is being deprecated. We recommend migrating to our Content Cards messaging channel instead—it’s more flexible, customizable, and reliable. To get started, check out Migrating from News Feed.
Android では、ニュースフィードは Braze Android UI プロジェクトで使用可能なフラグメントとして実装されます。フラグメントをアクティビティに追加する方法については、フラグメントに関するGoogleのドキュメントを参照してください。
BrazeFeedFragment
クラスは、ニュースフィードの内容を自動的に更新して表示し、使用状況分析をログに記録します。ユーザーのニュースフィードカードに表示できるカードは、Braze ダッシュボードで設定されます。
カードのタイプ
Braze には、バナー画像、キャプション付き画像、テキストアナウンス、ショートニュースの 5 種類のユニークなカードタイプがあります。各タイプはベースモデルから共通のプロパティを継承し、次の追加プロパティを持ちます。
ベースカードモデルのプロパティ
ベースカードモデルは、すべてのカードの基本的な動作を規定します。
プロパティ | 説明 |
---|---|
getId() |
Brazeで設定されたカードのID を返します。 |
getViewed() |
カードがユーザーによって読み込まれているか読み込まれていないかを示すブール値を返します。 |
getExtras() |
このカードのキーと値の追加のマップを返します。 |
setViewed(boolean) |
カードの表示フィールドを設定します。 |
getCreated() |
カードの作成日時のBraze ダッシュボード からのユニックスタイムスタンプを返します。 |
getUpdated() |
Braze ダッシュボードでのカードの最終更新時刻の UNIX タイムスタンプを返します。 |
getCategories() |
カードに割り当てられたカテゴリの一覧を返します。カテゴリなしのカードs にはABKCardCategoryNoCategory が割り当てられます。 |
isInCategorySet(EnumSet) |
カードが指定されたカテゴリセットに属する場合に真を返します。 |
バナー画像カードのプロパティ
バナー画像カードは、クリック可能なフルサイズの画像です。
プロパティ | 説明 |
---|---|
getImageUrl() |
カードの画像のURLを返す。 |
getUrl() |
カードがクリックされた後に開かれる URL を返します。HTTP または HTTPS URL、あるいはプロトコル URL の場合もあります。 |
getDomain() |
プロパティ URL のリンクテキストを返します。 |
キャプション付き画像カードのプロパティ
キャプション付き画像カードはクリック可能なフルサイズの画像で、説明文が添えられています。
プロパティ | 説明 |
---|---|
getImageUrl() |
カードの画像のURLを返す。 |
getTitle() |
カードのタイトルテキストを返します。 |
getDescription() |
カードの本文を返します。 |
getUrl() |
カードがクリックされた後に開かれる URL を返します。 HTTP または HTTPS URL、あるいはプロトコル URL の場合もあります。 |
getDomain() |
プロパティ URL のリンクテキストを返す。 |
テキスト通知カード (画像なしのキャプション付き画像) のプロパティ
テキスト通知カードは、説明的なテキストを含んだクリック可能なカードです。
プロパティ | 説明 |
---|---|
getTitle() |
カードのタイトルテキストを返します。 |
getDescription() |
カードの本文を返します。 |
getUrl() |
カードがクリックされた後に開かれる URL を返します。HTTP または HTTPS URL、あるいはプロトコル URL の場合もあります。 |
getDomain() |
プロパティ URL のリンクテキストを返す。 |
ショートニュースカードのプロパティ
ショートニュースカードは、画像とそれに付随する説明文を含むクリック可能なカードです。
プロパティ | 説明 |
---|---|
getImageUrl() |
カードの画像のURLを返す。 |
getTitle() |
カードのタイトルテキストを返します。 |
getDescription() |
カードの本文を返します。 |
getUrl() |
カードがクリックされた後に開かれる URL を返します。HTTP または HTTPS URL、あるいはプロトコル URL の場合もあります。 |
getDomain() |
プロパティ URL のリンクテキストを返す。 |
セッション分析
Android UI フラグメントでは、セッション分析は自動的に追跡されません。セッションが正しく追跡されるようにするには、アプリが開かれたときに IBraze.openSession()
を呼び出します。
リンク
アプリ内メッセージからニュースフィードへのリンクは、AndroidManifest.xml
内でBrazeFeedActivity
を登録することで有効にする必要がある。
カスタムフィードの統合
完全にカスタムの方法でフィードを表示するには、モデルからのデータが入力された独自のビューを使用ます。ニュースフィードモデルを取得するには、ニュースフィードの更新を配信登録し、結果のモデルデータを使用してビューを設定する必要があります。また、ユーザーがビューを操作する際に、モデルオブジェクトの分析をログに記録する必要もあります。
パート 1:フィードの更新の配信登録
まず、カスタムフィードクラスでサブスクライバーを保持するプライベート変数を宣言します。
1
2
// subscriber variable
private IEventSubscriber<FeedUpdatedEvent> mFeedUpdatedSubscriber;
次に、通常はカスタムフィードアクティビティの Activity.onCreate()
内で、以下のコードを追加して、Braze のフィードドの更新を購読します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Remove the old subscription first
Braze.getInstance(context).removeSingleSubscription(mFeedUpdatedSubscriber, FeedUpdatedEvent.class);
mFeedUpdatedSubscriber = new IEventSubscriber<FeedUpdatedEvent>() {
@Override
public void trigger(final FeedUpdatedEvent event) {
// This list of Card objects included in the FeedUpdatedEvent should be used to populate your News Feed views.
List<Card> cards = event.getFeedCards();
// your logic here
}
};
Braze.getInstance(context).subscribeToFeedUpdates(mFeedUpdatedSubscriber);
// Request a refresh of feed data
Braze.getInstance(context).requestFeedRefresh();
また、カスタムフィードアクティビティが表示されなくなったら、配信を停止することをお勧めします。アクティビティのonDestroy()
ライフサイクルメソッドに次のコードを追加します。
1
Braze.getInstance(context).removeSingleSubscription(mFeedUpdatedSubscriber, FeedUpdatedEvent.class);
パート 2:分析のログ記録
カスタムビューを使用する場合、分析は Braze ビューを使用する場合にのみ自動的に処理されるため、分析を手動でログに記録する必要があります。
フィードの表示をログに記録するには、Braze.logFeedDisplayed()
を呼び出します。
インプレッションやカードのクリックをログに記録するには、それぞれ Card.logClick()
または Card.logImpression()
を呼び出します。