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 では、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)
ビューコントローラーの例については、ニュースフィードのサンプルアプリをご覧ください。