Skip to content


アプリ内メッセージ配信

トリガーの種類

アプリ内メッセージ製品を使用すると、次のようなさまざまなイベントタイプの結果としてアプリ内メッセージ表示をトリガーできます: Any PurchaseSpecific PurchaseSession StartCustom Event、および Push Click。さらに、Specific Purchase そして Custom Event トリガーには堅牢なプロパティフィルターが含まれています。

配信セマンティクス

ユーザーが対象になるすべてのアプリ内メッセージは、セッション開始時にユーザーのデバイスに配信されます。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 が特定のイベントに一致するトリガーを検出できない場合、ABKInAppMessageControllerDelegatenoMatchingTriggerForEvent: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)
「このページはどの程度役に立ちましたか?」
New Stuff!