AppboyKit (Objective-C SDK とも呼ばれます) はサポートされなくなり、Swift SDK. に置き換えられました。新機能、バグ修正、セキュリティ更新、またはテクニカルサポートは受けられなくなりますが、メッセージングと分析は引き続き通常どおり機能します。詳しくは、新しい Braze Swift SDK の紹介. を参照してください。
アプリ内メッセージ配信
トリガーの種類
アプリ内メッセージ製品を使用すると、次のようなさまざまなイベントタイプの結果としてアプリ内メッセージ表示をトリガーできます: Any Purchase
、Specific Purchase
、Session Start
、Custom Event
、および Push Click
。さらに、Specific Purchase
そして Custom Event
トリガーには堅牢なプロパティフィルターが含まれています。
トリガーされたアプリ内メッセージは、Braze SDK を通じて記録されたカスタムイベントでのみ機能します。アプリ内メッセージは、API または API イベント (購入イベントなど) によってトリガーすることはできません。iOS を使用している場合は、カスタムイベントの追跡に関する記事を参照して詳細を確認してください。
配信セマンティクス
ユーザーが対象になるすべてのアプリ内メッセージは、セッション開始時にユーザーのデバイスに配信されます。1つのイベントによって2つのアプリ内メッセージがトリガーされた場合、優先度の高いアプリ内メッセージが表示されます。SDK のセッション開始セマンティクスの詳細については、セッションライフサイクルに関する記事をお読みください。配信時に、SDK はアセットをプリフェッチしてトリガー時にすぐに利用できるようにし、表示遅延を最小限に抑えます。
トリガーイベントに複数の適格なアプリ内メッセージが関連付けられている場合、最も優先度の高いアプリ内メッセージのみが配信されます。
アセットがプリフェッチされていないため、配信 (セッション開始、プッシュクリック) 時にすぐに表示されるアプリ内メッセージには多少の遅延が発生する可能性があります。
トリガー間の最小時間間隔
デフォルトでは、質の高いユーザー体験を促進するため、アプリ内メッセージは30秒に1回にレート制限している。
この値は、startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions:
に渡された appboyOptions
パラメーター内の ABKMinimumTriggerTimeIntervalKey
を使用してオーバーライドできます。ABKMinimumTriggerTimeIntervalKey
を、アプリ内メッセージ間の最小時間 (秒) として使用する整数値に設定します。
1
2
3
4
5
// Sets the minimum trigger time interval to 5 seconds
[Appboy startWithApiKey:@"YOUR-API-KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKMinimumTriggerTimeIntervalKey : @(5) }];
1
Appboy.start(withApiKey: "YOUR-API-KEY", in:application, withLaunchOptions:launchOptions, withAppboyOptions:[ABKMinimumTriggerTimeIntervalKey : 5])
一致するトリガーが見つからない
Braze が特定のイベントに一致するトリガーを検出できない場合、ABKInAppMessageControllerDelegate
の noMatchingTriggerForEvent:name: メソッドを呼び出します。このシナリオを処理するには、デリゲートプロトコルを採用するクラスにこのメソッドを実装します。
ローカルのアプリ内メッセージ配信
アプリ内メッセージスタック
アプリ内メッセージの表示
ユーザーがアプリ内メッセージを受信する資格がある場合、ABKInAppMessageController
には、アプリ内メッセージスタックから最新のアプリ内メッセージが提供されます。スタックはメモリに保存されたアプリ内メッセージのみを保持し、一時停止モードからアプリを起動するまでの間にクリアされます。
キーボードが画面に表示されているときは、レンダリングが定義されていないため、アプリ内メッセージを表示しないでください。
アプリ内メッセージをスタックに追加する
ユーザーは、次の状況でアプリ内メッセージを受信できます。
- アプリ内メッセージトリガーイベントが発生する
- セッション開始イベント
- プッシュ通知からアプリを開く
トリガーされたアプリ内メッセージは、トリガーイベントが発生するとスタックに配置されます。複数のアプリ内メッセージがスタック内にあり、表示を待機している場合、Braze は最後に受信したアプリ内メッセージを最初に表示します (後入れ先出し)。
アプリ内メッセージをスタックに返す
トリガーされたアプリ内メッセージは、次の状況でスタックに返されることがあります。
- アプリがバックグラウンドにあるときに、アプリ内メッセージがトリガーされた。
- 別のアプリ内メッセージが現在表示されている。
- 非推奨の
beforeInAppMessageDisplayed:withKeyboardIsUp:
UI デリゲートメソッドは実装されておらず、キーボードが現在表示されています。 beforeInAppMessageDisplayed:
デリゲートメソッドまたは非推奨のbeforeInAppMessageDisplayed:withKeyboardIsUp:
UI デリゲートメソッドがABKDisplayInAppMessageLater
を返しました。
アプリ内メッセージの破棄
トリガーされたアプリ内メッセージは、次の状況では破棄されます。
beforeInAppMessageDisplayed:
デリゲートメソッドまたは非推奨のbeforeInAppMessageDisplayed:withKeyboardIsUp:
UI デリゲートメソッドがABKDiscardInAppMessage
を返しました。- アプリ内メッセージのアセット (画像または ZIP ファイル) のダウンロードに失敗しました。
- アプリ内メッセージを表示する準備ができていますが、タイムアウト時間が経過しました。
- デバイスの向きが、トリガーされたアプリ内メッセージの向きと一致しません。
- アプリ内メッセージは完全なアプリ内メッセージですが、画像はありません。
- アプリ内メッセージは画像のみのモーダルアプリ内メッセージですが、画像はありません。
アプリ内メッセージ表示を手動でキューに入れる
アプリ内で別の時点でアプリ内メッセージを表示したい場合は、次のメソッドを呼び出してスタックの最上位のアプリ内メッセージを手動で表示できます。
1
[[Appboy sharedInstance].inAppMessageController displayNextInAppMessage];
1
Appboy.sharedInstance()!.inAppMessageController.displayNextInAppMessage()
リアルタイムのアプリ内メッセージの作成と表示
アプリ内メッセージはアプリ内でローカルに作成し、Braze 経由で表示することもできます。これは、アプリ内でトリガーしたいメッセージをリアルタイムで表示する場合に特に便利です。Braze は、ローカルで作成されたアプリ内メッセージの分析をサポートしていません。
1
2
3
4
5
ABKInAppMessageSlideup *customInAppMessage = [[ABKInAppMessageSlideup alloc] init];
customInAppMessage.message = @"YOUR_CUSTOM_SLIDEUP_MESSAGE";
customInAppMessage.duration = 2.5;
customInAppMessage.extras = @{@"key" : @"value"};
[[Appboy sharedInstance].inAppMessageController addInAppMessage:customInAppMessage];
1
2
3
4
5
let customInAppMessage = ABKInAppMessageSlideup.init()
customInAppMessage.message = "YOUR_CUSTOM_SLIDEUP_MESSAGE"
customInAppMessage.duration = 2.5
customInAppMessage.extras = ["key": "value"]
Appboy.sharedInstance()!.inAppMessageController.add(customInAppMessage)