AppboyKit (Objective-C SDK とも呼ばれます) はサポートされなくなり、Swift SDK. に置き換えられました。新機能、バグ修正、セキュリティ更新、またはテクニカルサポートは受けられなくなりますが、メッセージングと分析は引き続き通常どおり機能します。詳しくは、新しい 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)
ビューコントローラーの例については、ニュースフィードのサンプルアプリをご覧ください。