AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
ニュースフィード統合
ニュースフィードは非推奨になります。Braze では、ニュースフィードツールを使用しているお客様に、より柔軟でカスタマイズ可能で信頼性の高いコンテンツカードメッセージングチャネルに移行することをお勧めします。詳細については、移行ガイドをご覧ください。
ニュースフィードデータモデル
データを取得する
ニュースフィードデータモデルにアクセスするには、ニュースフィード更新イベントを購読してください。
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 ニュースフィードが表示されます。
ビューコントローラーの表示方法は非常に柔軟に選択できます。ビューコントローラーには、さまざまなナビゲーション構造に対応するさまざまなバージョンがあります。
アプリ内メッセージクリックのデフォルト動作で呼び出されるニュースフィードでは、ニュースフィードに設定したデリゲートは尊重されません。尊重したい場合は、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)
ビューコントローラーの例については、ニュースフィードのサンプルアプリをご覧ください。