Skip to content


アプリ内メッセージ配信

トリガーの種類

アプリ内メッセージ製品を使用すると、Any PurchaseSpecific PurchaseSession StartCustom EventPush Click など、さまざまなイベントタイプの結果としてアプリ内メッセージの表示をトリガーできます。さらに、Specific PurchaseCustom 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!