ニュースフィード統合
このリファレンス記事では、さまざまなニュースフィードカードの種類、利用可能なカード固有のプロパティ、Android または FireOS アプリケーションのカスタム統合例について説明します。
ニュースフィードは非推奨になります。Braze では、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()
を呼び出します。