コンテンツにスキップ

アプリ内メッセージ

アプリ内メッセージと、Braze SDKでの設定方法について説明します。

前提条件

この機能を使用する前に、Web Braze SDKを統合する必要があります。 しかし、追加の設定は必要ない。

メッセージタイプ

すべてのアプリ内メッセージはInAppMessageからプロトタイプを継承しており、すべてのアプリ内メッセージの基本的な動作と特性を定義しています。プロトタイプのサブクラスにはSlideUpMessage、ModalMessage、FullScreenMessage、およびHtmlMessageがあります。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたってカスタマイズできます。

SlideUpアプリ内メッセージは、従来モバイルプラットフォームで画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。Braze Web SDKでは、これらのメッセージはWebの主流パラダイムに合わせて、GrowlまたはToastスタイルの通知として表示されます。画面の一部のみを覆い、効果的で邪魔にならないメッセージング機能を提供します。

電話画面の下部からスライドするアプリ内メッセージ。「Humans are complicated. Custom engagement shouldn't be.」と表示されています。背景にはWebページの下隅に表示された同じアプリ内メッセージが見えます。

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

電話画面の中央に表示されたモーダルアプリ内メッセージ。「Humans are complicated. Custom engagement shouldn't be.」と表示されています。背景にはWebページの中央に表示された同じアプリ内メッセージが見えます。

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

電話画面全体に表示されたフルスクリーンアプリ内メッセージ。「Humans are complicated. Custom engagement shouldn't be.」と表示されています。背景にはWebページの中央に大きく表示された同じアプリ内メッセージが見えます。

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

以下の例は、ページ分割されたHTMLアプリ内メッセージを示しています。

コンテンツのカルーセルとインタラクティブボタンを備えたHTMLアプリ内メッセージ。

前提条件

この機能を使用する前に、Android Braze SDKを統合する必要があります。 アプリ内メッセージもイネーブルメントする必要がある。

メッセージの種類

Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。

これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」するため、このような名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

slideupアプリ内メッセージオブジェクトはInAppMessageBaseを拡張します。

携帯電話の画面下部からスライドして表示されるアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの右下隅に表示される同じアプリ内メッセージがあります。

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

このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

携帯電話の画面全体に表示されるフルスクリーンアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの中央付近に大きく表示された同じアプリ内メッセージがあります。

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

このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。

コンテンツのカルーセルとインタラクティブなボタンを備えた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で使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。

Slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

スマートフォン画面の下部と上部に表示されるスライドアップアプリ内メッセージ。

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

スマートフォン画面の中央に表示されるモーダル画像アプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーンアプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーン画像アプリ内メッセージ。

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

iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。

次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

コンテンツのカルーセルとインタラクティブボタンを備えた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というサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」するため、このような名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

slideupアプリ内メッセージオブジェクトはInAppMessageBaseを拡張します。

携帯電話の画面下部からスライドして表示されるアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの右下隅に表示される同じアプリ内メッセージがあります。

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

このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

携帯電話の画面全体に表示されるフルスクリーンアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの中央付近に大きく表示された同じアプリ内メッセージがあります。

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

このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。

コンテンツのカルーセルとインタラクティブなボタンを備えたHTMLアプリ内メッセージ。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。

以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。

Slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

スマートフォン画面の下部と上部に表示されるスライドアップアプリ内メッセージ。

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

スマートフォン画面の中央に表示されるモーダル画像アプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーンアプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーン画像アプリ内メッセージ。

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

iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。

次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

コンテンツのカルーセルとインタラクティブボタンを備えたHTMLアプリ内メッセージ。

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

Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。

バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。

前提条件

この機能を使用する前に、Flutter Braze SDKの統合を完了する必要があります。

メッセージの種類

Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。

これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」するため、このような名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

slideupアプリ内メッセージオブジェクトはInAppMessageBaseを拡張します。

携帯電話の画面下部からスライドして表示されるアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの右下隅に表示される同じアプリ内メッセージがあります。

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

このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

携帯電話の画面全体に表示されるフルスクリーンアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの中央付近に大きく表示された同じアプリ内メッセージがあります。

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

このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。

コンテンツのカルーセルとインタラクティブなボタンを備えたHTMLアプリ内メッセージ。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。

以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。

Slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

スマートフォン画面の下部と上部に表示されるスライドアップアプリ内メッセージ。

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

スマートフォン画面の中央に表示されるモーダル画像アプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーンアプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーン画像アプリ内メッセージ。

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

iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。

次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

コンテンツのカルーセルとインタラクティブボタンを備えた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 でアプリ内メッセージのデフォルトプレゼンターを設定するには、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というサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」するため、このような名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

slideupアプリ内メッセージオブジェクトはInAppMessageBaseを拡張します。

携帯電話の画面下部からスライドして表示されるアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの右下隅に表示される同じアプリ内メッセージがあります。

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

このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

携帯電話の画面全体に表示されるフルスクリーンアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの中央付近に大きく表示された同じアプリ内メッセージがあります。

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

このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。

コンテンツのカルーセルとインタラクティブなボタンを備えたHTMLアプリ内メッセージ。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。

以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。

Slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

スマートフォン画面の下部と上部に表示されるスライドアップアプリ内メッセージ。

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

スマートフォン画面の中央に表示されるモーダル画像アプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーンアプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーン画像アプリ内メッセージ。

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

iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。

次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

コンテンツのカルーセルとインタラクティブボタンを備えた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() 文字列表現としてのボタン。

ボタンモデルの完全なリファレンスについては、AndroidおよびiOSのドキュメントを参照してください。

前提条件

この機能を使用するには、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の使用

ステップ1: デフォルトUIファイルを追加する

Braze Roku SDKリポジトリのsdk_files/componentsディレクトリから、以下のファイルをアプリのcomponentsディレクトリに追加します。

  • BrazeDefaultInAppMessage.brs
  • BrazeDefaultInAppMessage.xml
  • BrazeDefaultInAppMessageStyles.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

デフォルトのメッセージについては、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は次の処理を行います。

  1. display_delay が設定されている場合は、その秒数だけ待機します。
  2. 全画面の BrazeDefaultInAppMessage オーバーレイをシーンに追加し、フォーカスを与えます。
  3. インプレッションをログに記録します。
  4. BrazeTask.BrazeInAppMessage をクリアします。
  5. メッセージが閉じられると、オーバーレイを削除してフォーカスを元に戻します。

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はこの関数を呼び出しません。
  1. Brazeダッシュボードで、メッセージまたはボタンのクリック時の動作を、myapp://details/123のようなアプリが解釈できるURIを持つディープリンクに設定します。SDKはこれをclick_action = "URI"として配信し、URIはuriに格納されます。
  2. 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

カスタム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を維持する

  1. 既存のSDKファイルを、2.3.0リリースのsdk_filesディレクトリにあるファイルに置き換えます。
  2. automatic_iam_displayは未設定のままにします。

オブザーバー、UI、ログ記録は、すべてのメッセージタイプでこれまでどおり動作します。SDKがBrazeDefaultInAppMessageファイルを使用するのはautomatic_iam_displayがtrueの場合のみであるため、sdk_filesのほかのファイルと一緒にコピーしても問題ありません。

デフォルトUIに切り替える

  1. 既存のSDKファイルを2.3.0リリースのsdk_filesディレクトリにあるファイルに置き換え、BrazeDefaultInAppMessage.brs、BrazeDefaultInAppMessage.xml、BrazeDefaultInAppMessageStyles.brsの各ファイルをcomponentsに追加します。以前のサンプルBrazeInAppMessageコンポーネントは変更されません。切り替えた後は削除してかまいません。
  2. デフォルトUIをオンにします。
  3. getBrazeInstance()がSceneから呼び出されていることを確認します。
  4. 既存のアプリ内メッセージ処理を削除します。
    • オブザーバー:m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")とそのハンドラー
    • アプリ内メッセージノードの作成と追加
    • LogInAppMessageImpression、LogInAppMessageClick、LogInAppMessageButtonClickの呼び出し
    • m.BrazeTask.BrazeInAppMessage = invalid
  5. クリックとディープリンクの処理をbrazeHandleInAppMessageClickに移動します。

一部のカスタムレイアウトを維持する

デフォルト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" の場合、このフィールドは必須です。

スタイル設定

ダッシュボードから使用できるさまざまなスタイル設定フィールドもあります。

フィールド 説明
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 Braze SDKの統合を完了する必要があります。

アプリ内メッセージを有効にする

ステップ 1: 新しいiOSアプリを作成する

Braze で、[設定] > [アプリの設定] を選択し、[アプリの追加] を選択します。tvOS アプリの名前を入力し、tvOS ではなく、iOS を選択し、アプリの追加を選択します。

ALT_TEXT.

ステップ2:アプリのAPIキーを取得する

アプリの設定で、新しいtvOSアプリを選択し、アプリのAPIキーをメモする。このキーを使って Xcode でアプリを設定します。

ALT_TEXT

ステップ 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というサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」するため、このような名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

slideupアプリ内メッセージオブジェクトはInAppMessageBaseを拡張します。

携帯電話の画面下部からスライドして表示されるアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの右下隅に表示される同じアプリ内メッセージがあります。

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

このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

携帯電話の画面全体に表示されるフルスクリーンアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの中央付近に大きく表示された同じアプリ内メッセージがあります。

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

このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。

コンテンツのカルーセルとインタラクティブなボタンを備えたHTMLアプリ内メッセージ。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。

以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。

Slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

スマートフォン画面の下部と上部に表示されるスライドアップアプリ内メッセージ。

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

スマートフォン画面の中央に表示されるモーダル画像アプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーンアプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーン画像アプリ内メッセージ。

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

iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。

次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

コンテンツのカルーセルとインタラクティブボタンを備えたHTMLアプリ内メッセージ。

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

Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。

バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。

前提条件

この機能を使用する前に、.NET MAUI Braze SDKの統合を完了する必要があります。

メッセージの種類

Brazeは複数のデフォルトアプリ内メッセージタイプを提供しています。それぞれメッセージ、画像、Font Awesomeアイコン、クリックアクション、分析、カラースキームなどでカスタマイズできます。

これらの基本的な動作と特性は、InAppMessageBaseというサブクラスで定義されるIInAppMessageインターフェイスによって定義されます。IInAppMessageにはIInAppMessageImmersiveというサブインターフェイスも含まれており、閉じるボタン、クリックアクション、分析対応のボタンをアプリに追加できます。

slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」するため、このような名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

slideupアプリ内メッセージオブジェクトはInAppMessageBaseを拡張します。

携帯電話の画面下部からスライドして表示されるアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの右下隅に表示される同じアプリ内メッセージがあります。

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

このメッセージタイプはInAppMessageImmersiveBaseを拡張しており、ローカルで生成されるアプリ内メッセージにカスタム機能を追加できます。

携帯電話の画面全体に表示されるフルスクリーンアプリ内メッセージに「Humans are complicated. Custom engagement shouldn't be.」と表示されています。バックグラウンドには、Webページの中央付近に大きく表示された同じアプリ内メッセージがあります。

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

このメッセージタイプはIInAppMessageHtmlを実装しています。これはIInAppMessageのサブクラスです。

Androidアプリ内メッセージは、HTML内からBraze Android SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細についてはJavaScriptブリッジ のページをご覧ください。

コンテンツのカルーセルとインタラクティブなボタンを備えたHTMLアプリ内メッセージ。

各アプリ内メッセージタイプは、コンテンツ、画像、アイコン、クリックアクション、分析、表示、配信にわたって高度にカスタマイズできます。これらはBraze.InAppMessageの列挙型であり、すべてのアプリ内メッセージの基本的な振る舞いと特性を定義します。アプリ内メッセージのプロパティと使用法の完全な一覧については、InAppMessageクラスを参照してください。

以下は、Brazeで使用可能なアプリ内メッセージタイプと、エンドユーザーにどのように表示されるかを示しています。

Slideupアプリ内メッセージは、画面の上部または下部から「スライドアップ」または「スライドダウン」することからこの名前が付けられています。画面の一部分だけを覆い、効果的で邪魔にならないメッセージング機能を提供します。

スマートフォン画面の下部と上部に表示されるスライドアップアプリ内メッセージ。

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

スマートフォン画面の中央に表示されるモーダル画像アプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーンアプリ内メッセージ。

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

スマートフォン画面全体に表示されるフルスクリーン画像アプリ内メッセージ。

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

iOSアプリ内メッセージは、HTML内からBraze Web SDKのメソッドを呼び出すためのJavaScript brazeBridgeインターフェイスをサポートしています。詳細については、ベストプラクティスを参照してください。

次の例は、ページ分割されたHTMLフルアプリ内メッセージを示しています。

コンテンツのカルーセルとインタラクティブボタンを備えたHTMLアプリ内メッセージ。

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

Controlアプリ内メッセージにはUIコンポーネントは含まれず、主に分析目的で使用されます。このタイプは、コントロールグループに送信されたアプリ内メッセージの受信を確認するために使用されます。

バリアントの自動最適化とコントロールグループについては、BrazeAITMで最適化するを参照してください。

次のステップ

さらに詳しく知りたいですか?以下のステップバイステップのチュートリアルをご覧ください。

New Stuff!