アプリ内メッセージ
アプリ内メッセージと、Braze SDKでの設定方法について説明します。
前提条件
この機能を使用する前に、Web Braze SDKを統合する必要があります。 しかし、追加の設定は必要ない。
メッセージタイプ
すべてのアプリ内メッセージはInAppMessageからプロトタイプを継承しており、すべてのアプリ内メッセージの基本的な動作と特性を定義しています。プロトタイプのサブクラスにはSlideUpMessage、ModalMessage、FullScreenMessage、およびHtmlMessageがあります。
各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたってカスタマイズできます。
SlideUpアプリ内メッセージは、従来モバイルプラットフォームで画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。Braze Web SDKでは、これらのメッセージはWebの主流パラダイムに合わせて、GrowlまたはToastスタイルの通知として表示されます。画面の一部のみを覆い、効果的で邪魔にならないメッセージング機能を提供します。

Modalアプリ内メッセージは画面の中央に表示され、半透明のパネルで囲まれています。より重要なメッセージングに役立ち、最大2つのクリックアクションおよび分析対応ボタンを装備できます。

Fullアプリ内メッセージは、ユーザーコミュニケーションのコンテンツとインパクトを最大化するのに役立ちます。狭いブラウザウィンドウ(モバイルWebなど)では、fullアプリ内メッセージはブラウザウィンドウ全体を占めます。大きなブラウザウィンドウでは、fullアプリ内メッセージはmodalアプリ内メッセージと同様に表示されます。fullアプリ内メッセージの上半分には画像が含まれ、下半分には最大8行のテキストと、最大2つのクリックアクションおよび分析対応ボタンを表示できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに役立ちます。ユーザー定義のHTMLがiFrame内に表示され、画像、フォント、動画、インタラクティブ要素などのリッチコンテンツを含めることができ、メッセージの外観と機能を完全にコントロールできます。これらはJavaScript brazeBridgeインターフェイスをサポートしており、HTML内からBraze Web SDKのメソッドを呼び出すことができます。詳細についてはベストプラクティスを参照してください。

Web SDKを通じてHTMLアプリ内メッセージを有効にするには、BrazeにallowUserSuppliedJavascript初期化オプションを指定する必要があります。例:braze.initialize('YOUR-API_KEY', {allowUserSuppliedJavascript: true})。これはセキュリティ上の理由によるものです。HTMLアプリ内メッセージはJavaScriptを実行できるため、サイト管理者が有効化する必要があります。
以下の例は、ページ分割されたHTMLアプリ内メッセージを示しています。

前提条件
この機能を使用する前に、Android Braze SDKを統合する必要があります。 アプリ内メッセージもイネーブルメントする必要がある。
メッセージの種類
Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。
これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

ボタンを含むアプリ内メッセージでは、ボタンテキストを追加する前にクリックアクションを追加した場合、clickActionメッセージが最終的なペイロードに含まれる点にご注意ください。
modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに適しており、2つのクリックアクションと分析対応ボタンを装備できます。
このメッセージタイプはInAppMessageImmersiveBaseのサブクラスです。この抽象クラスはIInAppMessageImmersiveを実装しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

fullアプリ内メッセージは、ユーザーコミュニケーションのコンテンツとインパクトを最大化するのに役立ちます。fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つのクリックアクションおよび分析対応ボタンが表示されます。
このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLアプリ内メッセージコンテンツはWebViewに表示され、必要に応じて画像やフォントなどのリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidでは、カスタムHTMLアプリ内メッセージでtarget="_blank"が設定されたリンクは、デバイスのデフォルトのWebブラウザで開きます。
Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。


現在、iOSおよびAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートされていません。

アプリ内メッセージを有効にする
ステップ 1: 登録する BrazeInAppMessageManager
アプリ内メッセージ表示は BrazeInAppMessageManager クラスによって管理されまs。アプリ内のすべてのアクティビティを BrazeInAppMessageManager に登録して、アプリ内メッセージビューをビュー階層に追加できるようにする必要があります。これを行うには次の 2 つの方法があります。
アクティビティライフサイクルコールバック統合はアプリ内メッセージ登録を自動的に処理するため、追加の統合は不要です。アプリ内メッセージ登録の処理には、この方法が推奨される。

自動登録のためにアクティビティのライフサイクルコールバックを使用している場合、このステップを完了してはならない。
お前のApplication.onCreate()、呼び出すensureSubscribedToInAppMessageEvents():
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context);
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context)
アプリ内メッセージを表示できるすべてのアクティビティにおいて、そのアクティビティの onResume(): をregisterInAppMessageManager()呼び出す。
@Override
public void onResume() {
super.onResume();
// Registers the BrazeInAppMessageManager for the current Activity. This Activity will now listen for
// in-app messages from Braze.
BrazeInAppMessageManager.getInstance().registerInAppMessageManager(activity);
}
public override fun onResume() {
super.onResume()
// Registers the BrazeInAppMessageManager for the current Activity. This Activity will now listen for
// in-app messages from Braze.
BrazeInAppMessageManager.getInstance().registerInAppMessageManager(this)
}
呼び出されたregisterInAppMessageManager()すべてのアクティビティにおいて、そのアクティビティのunregisterInAppMessageManager()内でonPause()呼び出す:
@Override
public void onPause() {
super.onPause();
// Unregisters the BrazeInAppMessageManager for the current Activity.
BrazeInAppMessageManager.getInstance().unregisterInAppMessageManager(activity);
}
public override fun onPause() {
super.onPause()
// Unregisters the BrazeInAppMessageManager.
BrazeInAppMessageManager.getInstance().unregisterInAppMessageManager(this)
}
ステップ 2:マネージャーのブロックリストを更新する(任意)
統合では、アプリ内の特定のアクティビティにアプリ内メッセージを表示しないようにする必要が生じる場合があります。アクティビティライフサイクルコールバックの統合により、これを簡単に実現できます。
次のサンプルコードでは、アプリ内メッセージ登録禁止リストに SplashActivity と SettingsActivity という 2 つのアクティビティを追加します。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Set<Class> inAppMessageBlocklist = new HashSet<>();
inAppMessageBlocklist.add(SplashActivity.class);
inAppMessageBlocklist.add(SettingsActivity.class);
registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist));
}
}
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val inAppMessageBlocklist = HashSet<Class<*>>()
inAppMessageBlocklist.add(SplashActivity::class.java)
inAppMessageBlocklist.add(SettingsActivity::class.java)
registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist))
}
}
前提条件
この機能を使用する前に、Swift Braze SDKの統合を完了する必要があります。 アプリ内メッセージも有効にする必要がある。
メッセージの種類
各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。
以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。
Modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Modal Imageアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。これらのメッセージは、ヘッダーやメッセージテキストがないことを除けば、Modalタイプに似ています。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Fullアプリ内メッセージは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つの分析対応ボタンが表示されます。

Full Imageアプリ内メッセージは、ヘッダーやメッセージテキストがないことを除けば、Fullアプリ内メッセージと似ています。このメッセージタイプは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Full Imageアプリ内メッセージには画面全体に広がる画像が含まれ、オプションで最大2つの分析対応ボタンを表示できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLフルアプリ内メッセージコンテンツはWKWebViewに表示され、必要に応じて画像やフォントなどの他のリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。
次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

現在、iOSとAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートしていません。
Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。
バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。
アプリ内メッセージを有効にする
ステップ 1: の実装を作成する。 BrazeInAppMessagePresenter
Brazeにアプリ内メッセージを表示させるには、BrazeInAppMessagePresenter プロトコルの実装を作成し、BrazeインスタンスのオプションinAppMessagePresenter に割り当てる。BrazeInAppMessageUI オブジェクトをインスタンス化することで、デフォルトの Braze UI プレゼンターを使用することもできます。
BrazeInAppMessageUI クラスにアクセスするには、BrazeUI ライブラリーをインポートする必要があることに注意してください。
AppDelegate.braze?.inAppMessagePresenter = BrazeInAppMessageUI()
AppDelegate.braze.inAppMessagePresenter = [[BrazeInAppMessageUI alloc] init];
ステップ 2:一致するトリガーはない
実装する BrazeDelegate.(_:noMatchingTriggerForEvent)を関連するBrazeDelegate クラス内に実装する。Brazeは、特定のイベントに一致するトリガーが見つからない場合、自動的にこのメソッドを呼び出す。
前提条件
この機能を使用する前に、Android Braze SDKを統合する必要があります。
TVとOTTのサポートについて
Android Braze SDKは、Android TVやFire StickのようなOTTデバイスでのアプリ内メッセージ表示をネイティブにサポートしている。しかし、Androidネイティブとアプリ内メッセージにはいくつかの重要な違いがある。OTT デバイスの場合:
- スライドアップなどのタッチモードを必要とするアプリ内メッセージは、OTT で無効になります。
- 閉じるボタンなど、現在選択されている項目またはフォーカスされている項目がハイライト表示されます。
- ボタン上ではなく、アプリ内メッセージ自体の本文をクリックすることはサポートされていません。
前提条件
この機能を使用する前に、Cordova Braze SDKを統合する必要があります。
メッセージの種類
Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。
これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

ボタンを含むアプリ内メッセージでは、ボタンテキストを追加する前にクリックアクションを追加した場合、clickActionメッセージが最終的なペイロードに含まれる点にご注意ください。
modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに適しており、2つのクリックアクションと分析対応ボタンを装備できます。
このメッセージタイプはInAppMessageImmersiveBaseのサブクラスです。この抽象クラスはIInAppMessageImmersiveを実装しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

fullアプリ内メッセージは、ユーザーコミュニケーションのコンテンツとインパクトを最大化するのに役立ちます。fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つのクリックアクションおよび分析対応ボタンが表示されます。
このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLアプリ内メッセージコンテンツはWebViewに表示され、必要に応じて画像やフォントなどのリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidでは、カスタムHTMLアプリ内メッセージでtarget="_blank"が設定されたリンクは、デバイスのデフォルトのWebブラウザで開きます。
Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。


現在、iOSおよびAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートされていません。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。
以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。
Modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Modal Imageアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。これらのメッセージは、ヘッダーやメッセージテキストがないことを除けば、Modalタイプに似ています。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Fullアプリ内メッセージは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つの分析対応ボタンが表示されます。

Full Imageアプリ内メッセージは、ヘッダーやメッセージテキストがないことを除けば、Fullアプリ内メッセージと似ています。このメッセージタイプは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Full Imageアプリ内メッセージには画面全体に広がる画像が含まれ、オプションで最大2つの分析対応ボタンを表示できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLフルアプリ内メッセージコンテンツはWKWebViewに表示され、必要に応じて画像やフォントなどの他のリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。
次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

現在、iOSとAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートしていません。
Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。
バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。
前提条件
この機能を使用する前に、Flutter Braze SDKの統合を完了する必要があります。
メッセージの種類
Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。
これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

ボタンを含むアプリ内メッセージでは、ボタンテキストを追加する前にクリックアクションを追加した場合、clickActionメッセージが最終的なペイロードに含まれる点にご注意ください。
modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに適しており、2つのクリックアクションと分析対応ボタンを装備できます。
このメッセージタイプはInAppMessageImmersiveBaseのサブクラスです。この抽象クラスはIInAppMessageImmersiveを実装しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

fullアプリ内メッセージは、ユーザーコミュニケーションのコンテンツとインパクトを最大化するのに役立ちます。fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つのクリックアクションおよび分析対応ボタンが表示されます。
このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLアプリ内メッセージコンテンツはWebViewに表示され、必要に応じて画像やフォントなどのリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidでは、カスタムHTMLアプリ内メッセージでtarget="_blank"が設定されたリンクは、デバイスのデフォルトのWebブラウザで開きます。
Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。


現在、iOSおよびAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートされていません。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。
以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。
Modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Modal Imageアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。これらのメッセージは、ヘッダーやメッセージテキストがないことを除けば、Modalタイプに似ています。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Fullアプリ内メッセージは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つの分析対応ボタンが表示されます。

Full Imageアプリ内メッセージは、ヘッダーやメッセージテキストがないことを除けば、Fullアプリ内メッセージと似ています。このメッセージタイプは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Full Imageアプリ内メッセージには画面全体に広がる画像が含まれ、オプションで最大2つの分析対応ボタンを表示できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLフルアプリ内メッセージコンテンツはWKWebViewに表示され、必要に応じて画像やフォントなどの他のリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。
次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

現在、iOSとAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートしていません。
Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。
バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。
アプリ内メッセージを有効にする
Braze Flutter SDK は、Android と iOS の両方でデフォルトのアプリ内メッセージプレゼンターを自動的に設定します。アプリ内メッセージは、追加の設定なしで表示され、Dart レイヤーに転送されます。
iOS でのアプリ内メッセージプレゼンターのカスタマイズ
iOS でデフォルトのアプリ内メッセージプレゼンターをオーバーライドするには、BrazePlugin.configure(_:postInitialization:) の postInitialization クロージャを使用します。カスタムプレゼンターは、アプリ内メッセージデータを Dart レイヤーに転送するために BrazePlugin.processInAppMessage(message) を呼び出す必要があります。
import BrazeUI
BrazePlugin.configure(
{ configuration in
// Set non-API-key configurations here.
},
postInitialization: { braze in
let customPresenter = CustomInAppMessagePresenter()
braze.inAppMessagePresenter = customPresenter
}
)
カスタムプレゼンタークラスでは、BrazePlugin.processInAppMessage(message) と super.present(message: message) を呼び出して、データを Dart に転送し、デフォルトの UI を表示します。
class CustomInAppMessagePresenter: BrazeInAppMessageUI {
override func present(message: Braze.InAppMessage) {
BrazePlugin.processInAppMessage(message)
super.present(message: message)
}
}

このステップは iOS 専用です。Android では、アプリ内メッセージのデフォルト実装は既に設定済みです。
iOS でアプリ内メッセージのデフォルトプレゼンターを設定するには、BrazeInAppMessagePresenter プロトコルの実装を作成し、それを Braze インスタンスのオプションの inAppMessagePresenter に割り当てます。BrazeInAppMessageUI オブジェクトをインスタンス化することで、デフォルトの Braze UI プレゼンターを使用することもできます。
BrazeInAppMessageUI クラスにアクセスするには、BrazeUI ライブラリーをインポートする必要があります。
import BrazeUI
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
...
let braze = BrazePlugin.initBraze(configuration)
braze.inAppMessagePresenter = BrazeInAppMessageUI()
AppDelegate.braze = braze
return true
}
@import BrazeUI;
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
Braze *braze = [BrazePlugin initBraze:configuration];
braze.inAppMessagePresenter = [[BrazeInAppMessageUI alloc] init];
AppDelegate.braze = braze;
[self.window makeKeyAndVisible];
return YES;
}
アプリ内メッセージデータへのアクセスの詳細については、アプリ内メッセージデータのログ記録を参照してください。
この機能を使う前に、React Native Braze SDKを統合する必要があります。
メッセージタイプ
Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。
これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

ボタンを含むアプリ内メッセージでは、ボタンテキストを追加する前にクリックアクションを追加した場合、clickActionメッセージが最終的なペイロードに含まれる点にご注意ください。
modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに適しており、2つのクリックアクションと分析対応ボタンを装備できます。
このメッセージタイプはInAppMessageImmersiveBaseのサブクラスです。この抽象クラスはIInAppMessageImmersiveを実装しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

fullアプリ内メッセージは、ユーザーコミュニケーションのコンテンツとインパクトを最大化するのに役立ちます。fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つのクリックアクションおよび分析対応ボタンが表示されます。
このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLアプリ内メッセージコンテンツはWebViewに表示され、必要に応じて画像やフォントなどのリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidでは、カスタムHTMLアプリ内メッセージでtarget="_blank"が設定されたリンクは、デバイスのデフォルトのWebブラウザで開きます。
Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。


現在、iOSおよびAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートされていません。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。
以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。
Modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Modal Imageアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。これらのメッセージは、ヘッダーやメッセージテキストがないことを除けば、Modalタイプに似ています。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Fullアプリ内メッセージは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つの分析対応ボタンが表示されます。

Full Imageアプリ内メッセージは、ヘッダーやメッセージテキストがないことを除けば、Fullアプリ内メッセージと似ています。このメッセージタイプは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Full Imageアプリ内メッセージには画面全体に広がる画像が含まれ、オプションで最大2つの分析対応ボタンを表示できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLフルアプリ内メッセージコンテンツはWKWebViewに表示され、必要に応じて画像やフォントなどの他のリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。
次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

現在、iOSとAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートしていません。
Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。
バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。
データモデル
アプリ内メッセージモデルはReact Native SDKで利用できます。Brazeには、同じデータモデルを共有する4つのアプリ内メッセージタイプ(スライドアップ、モーダル、フル、HTMLフル)があります。
メッセージ
アプリ内メッセージモデルは、すべてのアプリ内メッセージのベースを提供します。
| プロパティ | 説明 |
|---|---|
inAppMessageJsonString |
メッセージのJSON表現。 |
message |
メッセージテキスト。 |
header |
メッセージのヘッダー。 |
uri |
ボタンクリックアクションに関連付けられたURI。 |
imageUrl |
メッセージ画像のURL。 |
zippedAssetsUrl |
HTMLコンテンツを表示するために準備されたzip圧縮アセット。 |
useWebView |
ボタンクリックアクションがWebビューを使用してリダイレクトするかどうかを示します。 |
duration |
メッセージの表示時間。 |
clickAction |
ボタンクリックアクションのタイプ。タイプはURIおよびNONEです。 |
dismissType |
メッセージのクローズタイプ。2つのタイプはSWIPEおよびAUTO_DISMISSです。 |
messageType |
SDKがサポートするアプリ内メッセージタイプ。4つのタイプはSLIDEUP、MODAL、FULLおよびHTML_FULLです。 |
extras |
メッセージのエクストラ辞書。デフォルト値:[:]。 |
buttons |
アプリ内メッセージのボタン一覧。 |
toString() |
文字列表現としてのメッセージ。 |
アプリ内メッセージモデルの完全なリファレンスについては、AndroidおよびiOSのドキュメントを参照してください。
ボタン
アプリ内メッセージにボタンを追加して、アクションを実行したり、分析をログに記録したりできます。ボタンモデルは、すべてのアプリ内メッセージボタンのベースを提供します。
| プロパティ | 説明 |
|---|---|
text |
ボタンのテキスト。 |
uri |
ボタンクリックアクションに関連付けられたURI。 |
useWebView |
ボタンクリックアクションがWebビューを使用してリダイレクトするかどうかを示します。 |
clickAction |
ユーザーがボタンをクリックしたときに処理されるクリックアクションのタイプ。タイプはURIおよびNONEです。 |
id |
メッセージのボタンID。 |
toString() |
文字列表現としてのボタン。 |
前提条件
この機能を使用するには、Roku Braze SDKを統合する必要があります。 また、アプリ内メッセージは、最低限サポートされているSDKバージョンを実行しているRokuデバイスにのみ送信されます。
メッセージタイプ
Roku SDKは、モーダルアプリ内メッセージのみをサポートしています。
表示方法の選択
Roku SDK 2.3.0以降では、SDKがアプリ内メッセージを表示できます。独自のUIでレンダリングを続けることもできます。
| 方法 | 説明 |
|---|---|
| デフォルトUI | SDKがモーダルアプリ内メッセージを表示し、インプレッションとクリックを記録します。この機能はデフォルトでオフになっています。 |
| カスタムUI | アプリがBrazeTask.BrazeInAppMessageを監視してメッセージをレンダリングし、インプレッションとクリックを記録します。これは以前のSDKバージョンでのアプリ内メッセージの動作方法です。 |
| カスタムオーバーライド付きのデフォルトUI | SDKがモーダルアプリ内メッセージを表示し、特定のメッセージについてはScene が独自のUIでレンダリングします。 |
アップグレード中で、すでにカスタムUIを使用している場合は、Roku SDK 2.3.0へのアップグレードを参照してください。デフォルトUIをオンにしない限り、カスタムUIは引き続き動作します。
デフォルトUIの使用

デフォルトUIには、Roku SDK 2.3.0以降が必要です。
ステップ1: デフォルトUIファイルを追加する
Braze Roku SDKリポジトリのsdk_files/componentsディレクトリから、以下のファイルをアプリのcomponentsディレクトリに追加します。
BrazeDefaultInAppMessage.brsBrazeDefaultInAppMessage.xmlBrazeDefaultInAppMessageStyles.brs
これらのファイルがない場合、SDKはBrazeDefaultInAppMessage component not foundをログに記録し、メッセージを表示しません。
ステップ2: デフォルトUIをオンにする
main.brsで、Braze設定のautomatic_iam_displayをtrueに設定します。
config[config_fields.AUTOMATIC_IAM_DISPLAY] = true
globalNode.addFields({brazeConfig: config})
ステップ3: SceneからBrazeを初期化する
SceneコンポーネントからgetBrazeInstance()を呼び出します。たとえばinit()内で呼び出します。
sub init()
m.BrazeTask = CreateObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
end sub

他のコンポーネントからgetBrazeInstance()を呼び出すと、SDKはオーバーレイをSceneにアタッチできず、メッセージは失われます。
デフォルトのメッセージについては、BrazeTask.BrazeInAppMessageを監視したり、UIを作成したりする必要はありません。
デフォルトUIの仕組み
サポートされるメッセージ
デフォルトUIは MODAL のアプリ内メッセージのみを表示します。その他のタイプはSDKによって破棄され、エラーがログに記録されます。
デフォルトUIは次のフィールドを使用し、それ以外のフィールドは無視します。
| フィールド | デフォルトUIでの使用方法 |
|---|---|
image_url |
メッセージ上部の画像。 |
header |
ヘッダーテキスト。 |
message |
本文テキスト。 |
text_align |
ヘッダーと本文の配置: "START"、"CENTER"、または "END"。 |
bg_color |
メッセージの背景色。 |
frame_color |
メッセージの背後に表示される全画面オーバーレイの色。 |
header_text_color |
ヘッダーテキストの色。 |
message_text_color |
本文テキストの色。 |
close_button_color |
× 閉じるボタンの色。 |
buttons |
最大2つのボタン。各ボタンは text、bg_color、text_color を使用します。 |
表示と閉じる動作
モーダルメッセージごとに、SDKは次の処理を行います。
display_delayが設定されている場合は、その秒数だけ待機します。- 全画面の
BrazeDefaultInAppMessageオーバーレイをシーンに追加し、フォーカスを与えます。 - インプレッションをログに記録します。
BrazeTask.BrazeInAppMessageをクリアします。- メッセージが閉じられると、オーバーレイを削除してフォーカスを元に戻します。
dismiss_type が AUTO_DISMISS の場合、メッセージは duration ミリ秒後に閉じられ、クリックはログに記録されません。それ以外の場合、メッセージはユーザーが閉じるまで表示されたままになります。
SDKは一度に1つのメッセージのみを表示し、メッセージをキューに入れることはありません。
- 新しいメッセージは、
display_delayの待機中のメッセージをキャンセルします。 - 新しいメッセージは、自身の
display_delayの経過後に表示される時点で、画面上のメッセージを置き換えます。 - 破棄されたメッセージ (
MODALではないもの、またはmessageの値がないもの) は、何もキャンセルしたり置き換えたりしません。
リモコン操作
| キー | 結果 |
|---|---|
| 左と右 | ボタン間を切り替えます (最大2つ)。 |
| 上と下 | × 閉じるボタンへの移動と、そこからの移動を行います。 |
| ボタン上でOK | ボタンクリックをログに記録し、メッセージを閉じて、brazeHandleInAppMessageClick を呼び出します。 |
| ボタンがない状態でOK | 本文クリックをログに記録し、メッセージを閉じて、brazeHandleInAppMessageClick を呼び出します。 |
| × 閉じるボタン上でOK | メッセージを閉じます。クリックはログに記録されず、brazeHandleInAppMessageClick も呼び出されません。 |
| 戻る | メッセージを閉じます。クリックはログに記録されず、brazeHandleInAppMessageClick も呼び出されません。 |
| その他のキー | 無視されます。オーバーレイがすべてのキーイベントを取得します。 |
フォーカス
オーバーレイの表示中に、コンテンツの読み込み、画面の切り替え、動画の再生などでアプリが setFocus を呼び出した場合、オーバーレイがフォーカスを取り戻します。メッセージが閉じられると、アプリが最後にフォーカスしたノードにフォーカスが戻ります。
オーバーレイの表示中にアプリがシーンの dialog を開いた場合、そのダイアログは閉じられるまでフォーカスを保持します。
クリックとディープリンクの処理
SDKはURIを開きません。メッセージのclick_actionとuriを処理するには、SceneにbrazeHandleInAppMessageClick(event)を実装し、Sceneの<interface>で宣言します。宣言されていない場合、SDKはこの関数を呼び出しません。
<component name="MainScene" extends="Scene">
<interface>
<function name="brazeHandleInAppMessageClick" />
</interface>
...
</component>
eventパラメーターの構造は次のとおりです。
{
in_app_message: <message AA>,
button: <button AA, or invalid for a body click>,
button_index: <0 or 1, or -1 for a body click>
}
次の点に注意してください。
- SDKはオーバーレイを削除してフォーカスを復元した後にこの関数を呼び出すため、この関数から新しい画面を開くことができます。
click_actionが"NONE"のボタンもこの関数を呼び出します。アクションを実行する前にclick_actionを確認してください。- SDKは戻り値を無視します。
- ユーザーが×の閉じるボタン、戻る、または
AUTO_DISMISSでメッセージを閉じた場合、SDKはこの関数を呼び出しません。 brazeHandleCustomInAppMessageでレンダリングするメッセージに対しては、SDKはこの関数を呼び出しません。
例:ディープリンクのルーティング
- Brazeダッシュボードで、メッセージまたはボタンのクリック時の動作を、
myapp://details/123のようなアプリが解釈できるURIを持つディープリンクに設定します。SDKはこれをclick_action = "URI"として配信し、URIはuriに格納されます。 brazeHandleInAppMessageClickでURIを解析し、対応する画面にルーティングします。
function brazeHandleInAppMessageClick(event as object) as boolean
target = event.button
if target = invalid then target = event.in_app_message
if target.click_action <> "URI" then return false
if target.uri = invalid then return false
uri = target.uri.ToStr()
prefix = "myapp://details/"
if Left(uri, Len(prefix)) = prefix
' ShowDetailsScreen is a function in your app.
ShowDetailsScreen(Mid(uri, Len(prefix) + 1))
return true
end if
return false
end function

uriの値は、ダッシュボードの値が数値である場合など、数値として届くことがあります。解析する前にToStr()で変換してください。
カスタムUIで特定のメッセージをレンダリングする
一部のメッセージを独自のUIでレンダリングし、残りのメッセージにはデフォルトUIを使用するには、SceneにbrazeHandleCustomInAppMessage(in_app_message)を実装し、Sceneの<interface>で宣言します。
SDKは、display_delayの経過後、MODALメッセージごとにこの関数を呼び出します。メッセージをレンダリングした場合はtrueを返します。デフォルトUIで表示する場合はfalseを返します。
<interface>
<function name="brazeHandleCustomInAppMessage" />
<function name="brazeHandleInAppMessageClick" />
</interface>
function brazeHandleCustomInAppMessage(in_app_message as object) as boolean
if in_app_message.extras <> invalid and in_app_message.extras.msgtype = "sidebyside"
' getDeepestFocusedNode is a helper in the sample app's MainScene.brs.
m.oldFocus = getDeepestFocusedNode(m.top.focusedChild)
m.customMsg = CreateObject("roSGNode", "CustomSideBySideInAppMessage")
m.top.appendChild(m.customMsg)
m.customMsg.BrazeTask = m.BrazeTask
m.customMsg.inappmessage = in_app_message
m.customMsg.setFocus(true)
m.customMsg.ObserveField("isClosed", "reclaimFocus")
return true
end if
return false
end function
sub reclaimFocus()
m.top.removeChild(m.customMsg)
m.customMsg = invalid
if m.oldFocus <> invalid then m.oldFocus.setFocus(true)
end sub
完全なカスタムコンポーネントについては、Braze Roku SDKリポジトリにあるtorchietvサンプルアプリのCustomSideBySideInAppMessageを参照してください。
以下の点に注意してください。
- SDKがこの関数を呼び出すのは、
automatic_iam_displayがtrueで、デフォルトUIファイルがアプリに含まれている場合のみです。 - この関数に渡されるのは
MODALメッセージのみです。 - カスタムUIは、インプレッション、クリック、ボタンクリックのログ記録、自身のノードの削除、フォーカスの復元を担当します。
- SDKは
BrazeTask.BrazeInAppMessageのクリアとdisplay_delayの適用を自動で行うため、これらを自分で処理しないでください。 - 新しいメッセージが届くと、SDKはこの関数を呼び出す前にデフォルトのオーバーレイを削除します。ただし、以前にレンダリングしたカスタムレイアウトは削除できないため、Scene側で削除してください。
すべてのメッセージにカスタムUIを使用する
automatic_iam_display を未設定のままにすると、アプリがすべてのアプリ内メッセージを処理します。オブザーバー、UI、およびログ記録は、すべてのメッセージタイプについてRoku SDK 2.3.0より前と同様に動作します。
ステップ1: オブザーバーを追加する
アプリ内メッセージを処理するには、BrazeTask.BrazeInAppMessage にオブザーバーを追加します。
m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")
ステップ2: トリガーされたメッセージにアクセスする
次に、ハンドラー内で、キャンペーンによってトリガーされた最も優先度の高いアプリ内メッセージにアクセスできます。
sub onInAppMessageReceived()
in_app_message = m.BrazeTask.BrazeInAppMessage
...
end sub
Roku SDK 2.3.0へのアップグレード
Roku SDK 2.3.0では、デフォルトUIが追加されています。デフォルトではオフになっているため、アップグレードしてもアプリ内メッセージの表示方法は変わりません。以下のいずれかの方法を選択してください。
カスタムUIを維持する
- 既存のSDKファイルを、2.3.0リリースの
sdk_filesディレクトリにあるファイルに置き換えます。 automatic_iam_displayは未設定のままにします。
オブザーバー、UI、ログ記録は、すべてのメッセージタイプでこれまでどおり動作します。SDKがBrazeDefaultInAppMessageファイルを使用するのはautomatic_iam_displayがtrueの場合のみであるため、sdk_filesのほかのファイルと一緒にコピーしても問題ありません。
デフォルトUIに切り替える
- 既存のSDKファイルを2.3.0リリースの
sdk_filesディレクトリにあるファイルに置き換え、BrazeDefaultInAppMessage.brs、BrazeDefaultInAppMessage.xml、BrazeDefaultInAppMessageStyles.brsの各ファイルをcomponentsに追加します。以前のサンプルBrazeInAppMessageコンポーネントは変更されません。切り替えた後は削除してかまいません。 - デフォルトUIをオンにします。
getBrazeInstance()がSceneから呼び出されていることを確認します。- 既存のアプリ内メッセージ処理を削除します。
- オブザーバー:
m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")とそのハンドラー - アプリ内メッセージノードの作成と追加
LogInAppMessageImpression、LogInAppMessageClick、LogInAppMessageButtonClickの呼び出しm.BrazeTask.BrazeInAppMessage = invalid
- オブザーバー:
- クリックとディープリンクの処理を
brazeHandleInAppMessageClickに移動します。

SDKは独自のオブザーバーを追加し、既存のオブザーバーを置き換えることはありません。デフォルトUIをオンにしたときにオブザーバーとログ記録を残したままにすると、メッセージが二重に表示され、インプレッションとクリックも二重に記録される可能性があります。
一部のカスタムレイアウトを維持する
デフォルトUIに切り替えるの手順に従います。その後、以前のハンドラーにあるレンダリングコードをbrazeHandleCustomInAppMessageに移動します。
以前のハンドラーとの違いは次のとおりです。
- インプレッションとクリックのログ記録は残します。
- 独自のノードの削除とフォーカスの復元は引き続き行います。
m.BrazeTask.BrazeInAppMessage = invalidは削除します。SDKがクリアします。- 独自の
display_delay処理は削除します。SDKが適用します。 - この関数に渡されるのは
MODALメッセージのみです。ほかのメッセージタイプをレンダリングする場合は、すべてのメッセージで引き続きカスタムUIを使用してください。
メッセージフィールド
これらのフィールドは、カスタムUIでメッセージをレンダリングする際に in_app_message で使用できます。デフォルトUIでは、これらが自動的に適用されます。
処理
アプリ内メッセージを処理するために必要なフィールドは次のとおりです。
| フィールド | 説明 |
|---|---|
buttons |
ボタンのリスト (空のリストの場合もあります)。 |
click_action |
"URI" または "NONE"。このフィールドを使用して、クリック時にアプリ内メッセージがURIリンクを開くか、メッセージを閉じるかを指定します。ボタンがない場合は、アプリ内メッセージの表示中にユーザーが「OK」をクリックしたときにこの動作が実行されます。 |
dismiss_type |
"AUTO_DISMISS" または "SWIPE"。このフィールドを使用して、アプリ内メッセージを自動的に閉じるか、閉じるためにスワイプを必要とするかを指定します。 |
display_delay |
アプリ内メッセージを表示するまでの待機時間 (秒)。 |
duration |
dismiss_type が "AUTO_DISMISS" に設定されている場合に、メッセージを表示する時間 (ミリ秒)。 |
extras |
キーと値のペア。 |
header |
ヘッダーテキスト。 |
id |
インプレッションまたはクリックのログ記録に使用されるID。 |
image_url |
アプリ内メッセージの画像URL。 |
message |
メッセージ本文のテキスト。 |
uri |
click_action に基づいてユーザーの送信先となるURI。click_action が "URI" の場合、このフィールドは必須です。 |

ボタンを含むアプリ内メッセージでは、ボタンテキストを追加する前にクリックアクションを追加した場合、メッセージの click_action も最終的なペイロードに含まれます。
スタイル設定
ダッシュボードから使用できるさまざまなスタイル設定フィールドもあります。
| フィールド | 説明 |
|---|---|
bg_color |
背景色。 |
close_button_color |
閉じるボタンの色。 |
frame_color |
背景画面のオーバーレイの色。 |
header_text_color |
ヘッダーテキストの色。 |
message_text_color |
メッセージテキストの色。 |
text_align |
“START”、”CENTER”、または “END”。選択したテキストの配置。 |
または、標準パレットを使用して、Rokuアプリケーション内でアプリ内メッセージを実装し、スタイルを設定することもできます。
ボタン
| フィールド | 説明 |
|---|---|
click_action |
"URI" または "NONE"。このフィールドを使用して、クリック時にアプリ内メッセージがURIリンクを開くか、メッセージを閉じるかを指定します。 |
id |
ボタン自体のID値。 |
text |
ボタンに表示するテキスト。 |
uri |
click_action に基づいてユーザーの送信先となるURI。click_action が "URI" の場合、このフィールドは必須です。 |

アプリ内メッセージングはSwift SDKを使ったヘッドレスUIでサポートされており、tvOS用のデフォルトUIやビューは含まれていないため、独自のカスタムUIを実装する必要があることを覚えておこう。
前提条件
この機能を使用する前に、Swift Braze SDKの統合を完了する必要があります。
アプリ内メッセージを有効にする
ステップ 1: 新しいiOSアプリを作成する
Braze で、[設定] > [アプリの設定] を選択し、[アプリの追加] を選択します。tvOS アプリの名前を入力し、tvOS ではなく、iOS を選択し、アプリの追加を選択します。


tvOSチェックボックスを選択すると、tvOS用のアプリ内メッセージをカスタマイズできなくなる。
ステップ2:アプリのAPIキーを取得する
アプリの設定で、新しいtvOSアプリを選択し、アプリのAPIキーをメモする。このキーを使って Xcode でアプリを設定します。

ステップ 3:BrazeKitを統合する
アプリの API キーを使用して、Xcode で Braze Swift SDK を tvOS プロジェクトに統合します。Braze Swift SDK から BrazeKit を統合するだけでよいです。
ステップ 4:カスタムUIを作成する
BrazeはtvOS上でアプリ内メッセージのデフォルトUIを提供していないため、自分でカスタマイズする必要がある。完全なチュートリアルについては、ステップ・バイ・ステップのチュートリアルを参照のこと:tvOSのアプリ内メッセージをカスタマイズする。サンプルプロジェクトについては、Braze Swift SDKのサンプルを参照してください。
前提条件
この機能を使用する前に、Unity Braze SDKを統合する必要があります。
メッセージの種類
Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。
これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

ボタンを含むアプリ内メッセージでは、ボタンテキストを追加する前にクリックアクションを追加した場合、clickActionメッセージが最終的なペイロードに含まれる点にご注意ください。
modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに適しており、2つのクリックアクションと分析対応ボタンを装備できます。
このメッセージタイプはInAppMessageImmersiveBaseのサブクラスです。この抽象クラスはIInAppMessageImmersiveを実装しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

fullアプリ内メッセージは、ユーザーコミュニケーションのコンテンツとインパクトを最大化するのに役立ちます。fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つのクリックアクションおよび分析対応ボタンが表示されます。
このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLアプリ内メッセージコンテンツはWebViewに表示され、必要に応じて画像やフォントなどのリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidでは、カスタムHTMLアプリ内メッセージでtarget="_blank"が設定されたリンクは、デバイスのデフォルトのWebブラウザで開きます。
Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。


現在、iOSおよびAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートされていません。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。
以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。
Modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Modal Imageアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。これらのメッセージは、ヘッダーやメッセージテキストがないことを除けば、Modalタイプに似ています。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Fullアプリ内メッセージは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つの分析対応ボタンが表示されます。

Full Imageアプリ内メッセージは、ヘッダーやメッセージテキストがないことを除けば、Fullアプリ内メッセージと似ています。このメッセージタイプは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Full Imageアプリ内メッセージには画面全体に広がる画像が含まれ、オプションで最大2つの分析対応ボタンを表示できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLフルアプリ内メッセージコンテンツはWKWebViewに表示され、必要に応じて画像やフォントなどの他のリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。
次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

現在、iOSとAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートしていません。
Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。
バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。
前提条件
この機能を使用する前に、.NET MAUI Braze SDKの統合を完了する必要があります。
メッセージの種類
Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。
これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

ボタンを含むアプリ内メッセージでは、ボタンテキストを追加する前にクリックアクションを追加した場合、clickActionメッセージが最終的なペイロードに含まれる点にご注意ください。
modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに適しており、2つのクリックアクションと分析対応ボタンを装備できます。
このメッセージタイプはInAppMessageImmersiveBaseのサブクラスです。この抽象クラスはIInAppMessageImmersiveを実装しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

fullアプリ内メッセージは、ユーザーコミュニケーションのコンテンツとインパクトを最大化するのに役立ちます。fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つのクリックアクションおよび分析対応ボタンが表示されます。
このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLアプリ内メッセージコンテンツはWebViewに表示され、必要に応じて画像やフォントなどのリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidでは、カスタムHTMLアプリ内メッセージでtarget="_blank"が設定されたリンクは、デバイスのデフォルトのWebブラウザで開きます。
Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。


現在、iOSおよびAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートされていません。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。
以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。
Modalアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Modal Imageアプリ内メッセージは画面中央に表示され、半透明のパネルに囲まれます。これらのメッセージは、ヘッダーやメッセージテキストがないことを除けば、Modalタイプに似ています。より重要なメッセージングに有用で、最大2つの分析対応ボタンを装備できます。

Fullアプリ内メッセージは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Fullアプリ内メッセージの上半分には画像が含まれ、下半分にはテキストと最大2つの分析対応ボタンが表示されます。

Full Imageアプリ内メッセージは、ヘッダーやメッセージテキストがないことを除けば、Fullアプリ内メッセージと似ています。このメッセージタイプは、ユーザーコミュニケーションの内容とインパクトを最大化するのに有効です。Full Imageアプリ内メッセージには画面全体に広がる画像が含まれ、オプションで最大2つの分析対応ボタンを表示できます。

HTMLアプリ内メッセージは、完全にカスタマイズされたユーザーコンテンツを作成するのに便利です。ユーザー定義のHTMLフルアプリ内メッセージコンテンツはWKWebViewに表示され、必要に応じて画像やフォントなどの他のリッチコンテンツを含めることができます。これにより、メッセージの外観と機能を完全にコントロールできます。
iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。
次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

現在、iOSとAndroidプラットフォームでは、iFrame内でのカスタムHTMLアプリ内メッセージの表示はサポートしていません。
Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。
バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。
次のステップ
さらに詳しく知りたいですか?以下のステップバイステップのチュートリアルをご覧ください。
