AppboyKit (Objective-C SDK とも呼ばれます) はサポートされなくなり、Swift SDK. に置き換えられました。新機能、バグ修正、セキュリティ更新、またはテクニカルサポートは受けられなくなりますが、メッセージングと分析は引き続き通常どおり機能します。詳しくは、新しい Braze Swift SDK の紹介. を参照してください。
ニュースフィード統合
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.
ニュースフィードデータモデル
データを取得する
ニュースフィードデータモデルにアクセスするには、ニュースフィード更新イベントを購読してください。
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 |
カードに割り当てられたカテゴリの一覧、カテゴリなしのカードs には、ABKCardCategoryNoCategory が割り当てられます。利用可能なカテゴリー: - ABKCardCategoryNoCategory - ABKCardCategoryNews - ABKCardCategoryAdvertising - ABKCardCategoryAnnouncements - ABKCardCategorySocial - ABKCardCategoryAll |
extras |
NSString 値のオプションの NSDictionary 。 |
バナー画像カードのプロパティ
プロパティ | 説明 | |
---|---|---|
image |
(必須) このプロパティはカードの画像の URL です。 | |
URL |
(オプション) カードをクリックした後に開封されるURL。HTTP (S) URL でもプロトコル URL でもかまいません。 | |
domain |
(オプション) @”blog.braze.com” のようなプロパティ URL のリンクテキスト。カードのユーザーインターフェイスに表示され、カードをクリックするアクションと方向を示すことができますが、デフォルト Brazeのニュースフィードには表示されません。 |
キャプション付き画像カードのプロパティ
プロパティ | 説明 | |
---|---|---|
image |
(必須) このプロパティはカードの画像の URL です。 | |
title |
(必須) カードのタイトルテキスト。 | |
description (必須) カードの本文。 |
||
URL |
(オプション) カードをクリックした後に開封されるURL。HTTP (S) URL でもプロトコル URL でもかまいません。 | |
domain |
(オプション) @”blog.braze.com” のようなプロパティ URL のリンクテキスト。カードの UI に表示して、カードをクリックしたときのアクションと方向を示すことができます。 |
テキスト通知カード (画像なしのキャプション付き画像) のプロパティ
プロパティ | 説明 | |
---|---|---|
title |
(必須) カードのタイトルテキスト。 | |
description |
(必須) カードの本文。 | |
url |
(オプション) カードをクリックした後に開封されるURL。HTTP (S) URL でもプロトコル URL でもかまいません。 | |
domain |
(オプション) @”blog.braze.com” のようなプロパティ URL のリンクテキスト。カードの UI に表示して、カードをクリックしたときのアクションと方向を示すことができます。 |
クラシックカードのプロパティ
プロパティ | 説明 | |
---|---|---|
image |
(必須) このプロパティはカードの画像の URL です。 | |
title |
(オプション) カードのタイトルテキスト。 | |
description |
(必須) カードの本文。 | |
URL |
(オプション) カードをクリックした後に開封されるURL。HTTP (S) URL でもプロトコル URL でもかまいません。 | |
domain |
(オプション) @”blog.braze.com” のようなプロパティ URL のリンクテキスト。カードの UI に表示して、カードをクリックしたときのアクションと方向を示すことができます。 |
カードメソッド
方法 | 説明 |
---|---|
logCardImpression |
特定のカードのインプレッションを手動でBrazeに記録する。 |
logCardClicked |
特定のカードのクリックを Braze に手動で記録します。SDK は、カードに有効な値の url プロパティがある場合にのみカードクリックを記録します。ABKCard のすべてのサブクラスにはurl プロパティがあります。 |
フィード表示を記録する
独自のユーザーインターフェイスでニュースフィードを表示する場合、- (void)logFeedDisplayed;
を使用してニュースフィードのインプレッションを手動で記録できます。以下に例を示します。
1
[[Appboy sharedInstance] logFeedDisplayed];
1
Appboy.sharedInstance()?.logFeedDisplayed()
ニュースフィードビューコントローラーの統合
ビューコントローラー ABKNewsFeedViewController
を統合すると、Braze ニュースフィードが表示されます。
ビューコントローラーの表示方法は非常に柔軟に選択できます。ビューコントローラーには、さまざまなナビゲーション構造に対応するさまざまなバージョンがあります。
アプリ内メッセージクリックのデフォルト動作で呼び出されるニュースフィードでは、ニュースフィードに設定したデリゲートは尊重されません。尊重したい場合は、ABKInAppMessageUIController
でデリゲートを設定し、ABKInAppMessageUIDelegate
デリゲートメソッド onInAppMessageClicked:
を実装する必要があります。
ニュースフィードは、ナビゲーションまたはモーダルの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
インスタンスの navigationItem
の title
プロパティを設定します。
デリゲートが設定されていない場合、[完了] ボタンをクリックすると、モーダルビューが閉じます。デリゲートが設定されている場合、[完了] ボタンをクリックするとデリゲートが呼び出され、デリゲート自体によってビューが閉じられます。
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)
ビューコントローラーの例については、ニュースフィードのサンプルアプリをご覧ください。