Skip to content

アプリ内メッセージング統合

このリファレンス記事では、Unityプラットフォームのアプリ内メッセージング構成ガイドラインについて説明する。

デフォルトのアプリ内メッセージの動作を設定する

Androidでは、Brazeからのアプリ内メッセージが自動的にネイティブ表示される。この機能を無効にするには、Brazeコンフィギュレーションエディターで「アプリ内メッセージを自動的に表示する」の選択を解除する。

代わりに、Unity プロジェクトの braze.xmlcom_braze_inapp_show_inapp_messages_automaticallyfalse に設定することもできます。

アプリ内メッセージの初期表示動作は、Braze 設定の「アプリ内メッセージマネージャー初期表示動作」で設定できます。

iOSでは、Brazeからのアプリ内メッセージは自動的にネイティブ表示される。この機能を無効にするには、Braze 設定エディターでゲームオブジェクトリスナーを設定し、[Braze でアプリ内メッセージを表示する] が選択されていないことを確認します。

アプリ内メッセージの初期表示動作は、Braze 設定の「アプリ内メッセージマネージャー初期表示動作」で設定できます。

アプリ内メッセージの表示動作を設定する

オプションで、アプリ内メッセージの表示動作を実行時に以下の方法で変更することができます。

1
2
3
4
5
6
7
8
// Sets in-app messages to display immediately when triggered.
Appboy.AppboyBinding.SetInAppMessageDisplayAction(BrazeUnityInAppMessageDisplayActionType.IAM_DISPLAY_NOW);

// Sets in-app messages to display at a later time and be saved in a stack.
Appboy.AppboyBinding.SetInAppMessageDisplayAction(BrazeUnityInAppMessageDisplayActionType.IAM_DISPLAY_LATER);

// Sets in-app messages to be discarded after being triggered.
Appboy.AppboyBinding.SetInAppMessageDisplayAction(BrazeUnityInAppMessageDisplayActionType.IAM_DISCARD);

アプリ内メッセージをオンデマンドで表示する

DisplayNextInAppMessage() メソッドを使って、スタック内の次に利用可能なアプリ内メッセージを表示できます。アプリ内メッセージ表示アクションとしてDISPLAY_LATER またはBrazeUnityInAppMessageDisplayActionType.IAM_DISPLAY_LATER が選択された場合、メッセージはこの保存されたメッセージのスタックに追加される。

1
Appboy.AppboyBinding.DisplayNextInAppMessage();

Unityでアプリ内メッセージデータを受信する

Unity ゲームオブジェクトを登録して、アプリ内メッセージの受信について通知を受けることができます。Brazeコンフィギュレーションエディターからゲームオブジェクトリスナーを設定することを推奨する。コンフィギュレーション・エディターでは、リスナーをAndroidとiOSで別々に設定する必要がある。

ゲームオブジェクトのリスナーを実行時に設定する必要がある場合は、AppboyBinding.ConfigureListener() を使用し、BrazeUnityMessageType.IN_APP_MESSAGE を指定します。

アプリ内メッセージを解析する

アプリ内メッセージゲームオブジェクトのコールバックで受け取った受信 string メッセージは、便宜上、事前に提供されているモデルオブジェクトに解析できます。

InAppMessageFactory.BuildInAppMessage() を使ってアプリ内メッセージを解析しよう。結果として得られるオブジェクトはそのタイプに応じて IInAppMessage.cs または IInAppMessageImmersive.cs のインスタンスになります。

アプリ内メッセージのコールバック例

1
2
3
4
5
6
7
8
9
10
// Automatically logs a button click, if present.
void InAppMessageReceivedCallback(string message) {
  IInAppMessage inApp = InAppMessageFactory.BuildInAppMessage(message);
  if (inApp is IInAppMessageImmersive) {
    IInAppMessageImmersive inAppImmersive = inApp as IInAppMessageImmersive;
    if (inAppImmersive.Buttons != null && inAppImmersive.Buttons.Count > 0) {
      inAppImmersive.LogButtonClicked(inAppImmersive.Buttons[0].ButtonID);
    }
  }
}

GIFサポート

ネイティブのBraze Android SDKを使って、アプリ内メッセージにアニメーションGIFを追加できる。デフォルトでは、Android SDK は HTML アプリ内メッセージを使用して GIF を表示します。

その他のアプリ内メッセージの場合は、カスタム画像ライブラリを使用する必要がある。詳しくは、Androidアプリ内メッセージを参照のこと:GIF.

ネイティブのBraze Swift SDKを使って、アプリ内メッセージにアニメーションGIFTを追加できる。デフォルトでは、すべてのBrazeアプリ内メッセージはGIFをサポートしている。完全なチュートリアルについては、チュートリアル:Swiftアプリ内メッセージのGIFサポートを参照してください。

分析

Brazeが直接表示しないアプリ内メッセージについては、クリック数とインプレッション数を手動で記録する必要がある。

IInAppMessageLogClicked()LogImpression() を使用して、メッセージのクリック数とインプレッション数をログに記録します。

IInAppMessageImmersiveLogButtonClicked(int buttonID) を使用して、ボタンのクリック数をログに記録します。ボタンは InAppMessageButton インスタンスのリストとして表され、各インスタンスには ButtonID が含まれます。

カスタム・アクション・リスナー

ユーザーがアプリ内メッセージを操作する方法をより細かくコントロールする必要がある場合は、BrazeInAppMessageListener を使用してそれを Appboy.AppboyBinding.inAppMessageListener に割り当てます。使用しないデリゲートについては、単に null のままにしておくことができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
BrazeInAppMessageListener listener = new BrazeInAppMessageListener() {
  BeforeInAppMessageDisplayed = BeforeInAppMessageDisplayed,
  OnInAppMessageButtonClicked = OnInAppMessageButtonClicked,
  OnInAppMessageClicked       = OnInAppMessageClicked,
  OnInAppMessageHTMLClicked   = OnInAppMessageHTMLClicked,
  OnInAppMessageDismissed     = OnInAppMessageDismissed,
};
Appboy.AppboyBinding.inAppMessageListener = listener;

public void BeforeInAppMessageDisplayed(IInAppMessage inAppMessage) {
  // Executed before an in-app message is displayed.
}

public void OnInAppMessageButtonClicked(IInAppMessage inAppMessage, InAppMessageButton inAppMessageButton) {
  // Executed whenever an in-app message button is clicked.
}

public void OnInAppMessageClicked(IInAppMessage inAppMessage) {
  // Executed whenever an in-app message is clicked.
}

public void OnInAppMessageHTMLClicked(IInAppMessage inAppMessage, Uri uri) {
  // Executed whenever an HTML in-app message is clicked.
}

public void OnInAppMessageDismissed(IInAppMessage inAppMessage) {
  // Executed whenever an in-app message is dismissed without a click.
}
「このページはどの程度役に立ちましたか?」
New Stuff!