プッシュ通知をカスタマイズする
Braze SDKのプッシュ通知をカスタマイズする方法を学習。
前提条件
この機能を使用する前に、Android Braze SDKを統合する必要があります。 プッシュ通知の設定も必要です。
プッシュイベント用のコールバックを使用する
Brazeには、プッシュ通知が受信されたとき、開かれたとき、または却下されたときのためのsubscribeToPushNotificationEvents()コールバックが用意されています。アプリケーションが実行されていないときに発生するイベントを見逃さないように、このコールバックをApplication.onCreate()に配置することをお勧めします。

以前にアプリケーションでこの機能にカスタムブロードキャストレシーバーを使用していた場合は、この統合オプションを優先して、レシーバーを安全に削除できます。
Braze.getInstance(context).subscribeToPushNotificationEvents(event -> {
final BrazeNotificationPayload parsedData = event.getNotificationPayload();
//
// The type of notification itself
//
final boolean isPushOpenEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_OPENED;
final boolean isPushReceivedEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_RECEIVED;
// Sent when a user has dismissed a notification
final boolean isPushDeletedEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_DELETED;
//
// Notification data
//
final String pushTitle = parsedData.getTitleText();
final Long pushArrivalTimeMs = parsedData.getNotificationReceivedTimestampMillis();
final String deeplink = parsedData.getDeeplink();
//
// Custom KVP data
//
final String myCustomKvp1 = parsedData.getBrazeExtras().getString("my first kvp");
final String myCustomKvp2 = parsedData.getBrazeExtras().getString("my second kvp");
});
Braze.getInstance(context).subscribeToPushNotificationEvents { event ->
val parsedData = event.notificationPayload
//
// The type of notification itself
//
val isPushOpenEvent = event.eventType == BrazePushEventType.NOTIFICATION_OPENED
val isPushReceivedEvent = event.eventType == BrazePushEventType.NOTIFICATION_RECEIVED
// Sent when a user has dismissed a notification
val isPushDeletedEvent = event.eventType == BrazePushEventType.NOTIFICATION_DELETED
//
// Notification data
//
val pushTitle = parsedData.titleText
val pushArrivalTimeMs = parsedData.notificationReceivedTimestampMillis
val deeplink = parsedData.deeplink
//
// Custom KVP data
//
val myCustomKvp1 = parsedData.brazeExtras.getString("my first kvp")
val myCustomKvp2 = parsedData.brazeExtras.getString("my second kvp")
}

通知アクションボタンを使用すると、opens appまたはdeep linkアクションを持つボタンがクリックされたときにBRAZE_PUSH_INTENT_NOTIFICATION_OPENEDインテントが起動します。ディープリンクとエクストラの処理は変わりません。closeアクション付きのボタンはBRAZE_PUSH_INTENT_NOTIFICATION_OPENEDインテントを起動せず、通知を自動的に閉じます。

Application.onCreateでプッシュ通知リスナーを作成し、アプリが終了状態にある間にエンドユーザーが通知をタップした場合でもリスナーがトリガーされるようにしてください。
通知表示のカスタマイズ
ステップ1:カスタム通知ファクトリーを作成する
サーバー側では面倒な方法や利用できない方法でプッシュ通知をカスタマイズしたい場合があります。通知表示を完全に制御できるように、独自のIBrazeNotificationFactoryを定義してBrazeで表示する通知オブジェクトを作成する機能が追加されました。
カスタムのIBrazeNotificationFactoryが設定されている場合、ユーザーに通知が表示される前に、プッシュ受信時にBrazeがファクトリーのcreateNotification()メソッドを呼び出します。Brazeは、Brazeプッシュデータを含むBundleと、ダッシュボードまたはメッセージングAPI経由で送信されたカスタムのキーと値のペアを含む別のBundleを渡します。
Brazeは、Brazeプッシュ通知からのデータを含むBrazeNotificationPayloadを渡します。
// Factory method implemented in your custom IBrazeNotificationFactory
@Override
public Notification createNotification(BrazeNotificationPayload brazeNotificationPayload) {
// Example of getting notification title
String title = brazeNotificationPayload.getTitleText();
// Example of retrieving a custom KVP ("my_key" -> "my_value")
String customKvp = brazeNotificationPayload.getBrazeExtras().getString("my_key");
}
// Factory method implemented in your custom IBrazeNotificationFactory
override fun createNotification(brazeNotificationPayload: BrazeNotificationPayload): Notification {
// Example of getting notification title
val title = brazeNotificationPayload.getTitleText()
// Example of retrieving a custom KVP ("my_key" -> "my_value")
val customKvp = brazeNotificationPayload.getBrazeExtras().getString("my_key")
}
カスタムのcreateNotification()メソッドからnullを返して通知をまったく表示しないことも、BrazeNotificationFactory.getInstance().createNotification()を使用してそのデータのデフォルトのnotificationオブジェクトを取得し、表示前に変更することも、完全に別個のnotificationオブジェクトを生成して表示することもできます。

ステップ2:カスタム通知ファクトリーを設定する
Brazeにカスタム通知ファクトリーを使用するように指示するには、setCustomBrazeNotificationFactoryメソッドを使用してIBrazeNotificationFactoryを設定します。
setCustomBrazeNotificationFactory(IBrazeNotificationFactory brazeNotificationFactory);
setCustomBrazeNotificationFactory(brazeNotificationFactory: IBrazeNotificationFactory)
カスタムIBrazeNotificationFactoryを設定する場所として推奨されるのは、Application.onCreate()アプリケーションライフサイクルメソッド(アクティビティではない)です。これにより、アプリプロセスがアクティブなときはいつでも通知ファクトリーが正しく設定されます。

ゼロから独自の通知を作成するのは高度なユースケースであり、十分なテストとBrazeのプッシュ機能に対する深い理解がある場合にのみ行うべきです。たとえば、通知がプッシュ開封を正しくログに記録することを確認する必要があります。
カスタムIBrazeNotificationFactoryの設定を解除し、プッシュのデフォルトのBraze処理に戻すには、カスタム通知ファクトリーセッターにnullを渡します。
setCustomBrazeNotificationFactory(null);
setCustomBrazeNotificationFactory(null)
マルチカラーテキストのレンダリング
Braze SDKバージョン3.1.1では、HTMLをデバイスに送信してプッシュ通知でマルチカラーテキストをレンダリングできます。

この例は、以下のHTMLでレンダリングされています。
<p><span style="color: #99cc00;">M</span>u<span style="color: #008080;">lti</span>Colo<span style="color: #ff6600;">r</span> <span style="color: #000080;">P</span><span style="color: #00ccff;">u</span><span style="color: #ff0000;">s</span><span style="color: #808080;">h</span></p>
<p><em>test</em> <span style="text-decoration: underline; background-color: #ff6600;"><strong>message</strong></span></p>
Androidでは、プッシュ通知で使用できるHTML要素とタグに制限があることに注意してください。たとえば、marquee は使用できません。

マルチカラーテキストのレンダリングはデバイスに依存しており、Androidデバイスやバージョンによっては表示されない場合があります。
プッシュ通知でマルチカラーテキストをレンダリングするには、braze.xml または BrazeConfig を更新します。
braze.xml に以下を追加します。
<bool translatable="false" name="com_braze_push_notification_html_rendering_enabled">true</bool>
BrazeConfig に以下を追加します。
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build();
Braze.configure(this, brazeConfig);
val brazeConfig = BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build()
Braze.configure(this, brazeConfig)
サポートされているHTMLタグ
現在、GoogleはAndroid向けのサポートされているHTMLタグをドキュメントに直接記載していません—この情報はGitリポジトリのHtml.javaファイルでのみ確認できます。以下の表を参照する際はこの点に留意してください。この情報は上記ファイルから取得したものであり、サポートされているHTMLタグは変更される可能性があります。
| カテゴリ | HTMLタグ | 説明 |
|---|---|---|
| 基本テキストスタイル | <b>, <strong> |
太字テキスト |
<i>, <em> |
イタリックテキスト | |
<u> |
下線テキスト | |
<s>, <strike>, <del> |
取り消し線テキスト | |
<sup> |
上付きテキスト | |
<sub> |
下付きテキスト | |
<tt> |
等幅テキスト | |
| サイズ/フォント | <big>, <small> |
相対的なテキストサイズの変更 |
<font color="..."> |
前景色の設定 | |
<span>(インラインCSS使用) |
インラインスタイル(色、背景など) | |
| 段落 & ブロック | <p>, <div> |
ブロックレベルセクション |
<br> |
改行 | |
<blockquote> |
引用ブロック | |
<ul> + <li> |
箇条書きリスト | |
| 見出し | <h1> - <h6> |
見出し(各種サイズ) |
| リンク & 画像 | <a href="..."> |
クリック可能なリンク |
<img src="..."> |
インライン画像 | |
| その他のインライン | <em>, <strong>, <dfn>, <cite> |
イタリックまたは太字の同義タグ |
インライン画像のレンダリング
仕組み
Androidプッシュ通知でインライン画像プッシュを使用すると、より大きな画像を表示できます。このデザインでは、ユーザーが画像を拡大するためにプッシュ通知を手動で展開する必要がありません。通常のAndroidプッシュ通知とは異なり、インライン画像プッシュの画像は3:2のアスペクト比で表示されます。

互換性
インライン画像はどのデバイスにも送信できますが、最小バージョンの要件を満たさないデバイスやSDKでは、標準の画像が代わりに表示されます。インライン画像を正しく表示するには、Android Braze SDK v10.0.0以降と、Android M以降を搭載したデバイスの両方が必要です。また、画像をレンダリングするにはSDKが有効になっている必要があります。

Android 12を搭載したデバイスでは、カスタムプッシュ通知スタイルの変更により、レンダリングが異なります。
インライン画像プッシュを送信する
Androidプッシュメッセージを作成する際、この機能は通知タイプドロップダウンで利用できます。

設定
Brazeダッシュボードから送信されるAndroidプッシュ通知には、多くの高度な設定があります。この記事では、これらの機能と正しい使い方について説明します。

通知ID
通知IDは、選択したメッセージカテゴリの一意の識別子で、メッセージングサービスにそのIDからの最新のメッセージのみを尊重するよう指示します。通知IDを設定すると、古くなった無関係なメッセージの山ではなく、最新で関連性の高いメッセージのみを送信できます。
重複する通知による上書きを防止する
デフォルトでは、プッシュ通知のタイトルと本文が同一の場合、Androidはタイトルと本文の文字列をハッシュ化して同じ通知IDを生成します。これにより、2番目の通知が最初の通知を上書きし、通知トレイには1つの通知しか表示されなくなります。
同一の通知が互いに上書きされるのを防ぐには、Androidプッシュ通知設定で一意の通知ID値を指定できます。いくつかのオプションがあります。
- タイムスタンプを使用したLiquidテンプレート: 現在の時刻に基づいて一意の値を生成します。
{% assign random_number = 'now' | date: '%s' | plus: 1000000 %}
{{random_number}}
- サーバーサイド生成: 真にランダムな値を得るには、サーバーで通知IDを生成し、Liquidを通じて渡します。これにより各通知に固有の識別子が付与され、複数の通知を同時に表示できます。
Firebase Messagingの配信優先度
Firebase Messagingの配信優先度フィールドでは、プッシュをFirebase Cloud Messagingに「通常」または「高」優先度で送信するかどうかを制御できます。
有効期限(TTL)
有効期限(TTL)フィールドでは、プッシュメッセージングサービスにメッセージを保存するカスタムの期間を設定できます。デフォルト値はFCMが4週間、ADMが31日間です。
サマリーテキスト
サマリーテキストを使用すると、展開された通知ビューに追加テキストを設定できます。画像付き通知のキャプションとしても機能します。

サマリーテキストは、展開ビューでメッセージ本文の下に表示されます。

画像を含むプッシュ通知では、折りたたみビューにメッセージテキストが表示され、通知を展開するとサマリーテキストが画像キャプションとして表示されます。
カスタムURI
カスタムURI機能を使用すると、通知がクリックされたときに移動するWeb URLまたはAndroidリソースを指定できます。カスタムURIが指定されていない場合、通知をクリックするとユーザーはアプリに移動します。カスタムURIを使用してアプリ内のディープリンクを設定したり、アプリ外のリソースにユーザーを誘導したりできます。これはメッセージングAPIまたはダッシュボードのプッシュコンポーザーの高度な設定から指定できます(下図参照)。

通知表示の優先度

プッシュ通知の優先度レベルは、通知トレイ内で他の通知と比較して通知がどのように表示されるかに影響します。また、配信の速度と方法にも影響を与える場合があります。通常および低優先度のメッセージはバッテリー寿命を維持するためにやや高いレイテンシで送信されたりバッチ処理されたりすることがありますが、高優先度のメッセージは常に即座に送信されます。
Android Oでは、通知の優先度は通知チャネルのプロパティになりました。開発者と協力してチャネルの設定時に優先度を定義し、通知サウンドを送信する際にダッシュボードで適切なチャネルを選択する必要があります。Android O以前のバージョンを実行しているデバイスでは、BrazeダッシュボードおよびメッセージングAPIを通じてAndroid通知の優先度レベルを指定できます。
特定の優先度でユーザー群全体にメッセージを送信するには、通知チャネルの設定を通じて間接的に優先度を指定し(O以降のデバイス向け)、かつダッシュボードから個別の優先度を送信する(<Oのデバイス向け)ことをお勧めします。
AndroidまたはFire OSプッシュ通知に設定できる優先度レベルは次のとおりです。
| 優先度 | 説明/用途 | priority値(APIメッセージ用) |
|---|---|---|
| 最大 | 緊急または時間に敏感なメッセージ | 2 |
| 高 | 友人からの新しいメッセージなど、重要なコミュニケーション | 1 |
| デフォルト | ほとんどの通知 - メッセージが他の優先度タイプに明示的に該当しない場合に使用 | 0 |
| 低 | ユーザーに知ってほしいが、すぐに行動する必要はない情報 | -1 |
| 最小 | 文脈に応じた情報またはバックグラウンド情報 | -2 |
詳細については、GoogleのAndroid通知ドキュメントを参照してください。
サウンド
Android Oでは、通知サウンドは通知チャネルのプロパティになりました。開発者と協力してチャネルの設定時にサウンドを定義し、通知を送信する際にダッシュボードで適切なチャネルを選択する必要があります。
Android O以前のバージョンを実行しているデバイスでは、Brazeではダッシュボードコンポーザーを通じて個別のプッシュメッセージのサウンドを設定できます。デバイス上のローカルサウンドリソースを指定することで設定できます(例:android.resource://com.mycompany.myapp/raw/mysound)。このフィールドに「default」を指定すると、デバイスのデフォルト通知サウンドが再生されます。これはメッセージングAPIまたはダッシュボードのプッシュコンポーザーの高度な設定から指定できます。

完全なサウンドリソースURI(例:android.resource://com.mycompany.myapp/raw/mysound)をダッシュボードのプロンプトに入力してください。
特定のサウンドでユーザー群全体にメッセージを送信するには、通知チャネルの設定を通じて間接的にサウンドを指定し(O以降のデバイス向け)、かつダッシュボードから個別のサウンドを送信する(<Oのデバイス向け)ことをお勧めします。
前提条件
この機能を使用する前に、Swift Braze SDKの統合を完了する必要があります。 また、プッシュ通知の設定も必要です。
アクションボタンのカスタマイズ
Braze Swift SDKでは、プッシュアクションボタン用のURL処理がサポートされています。Brazeのデフォルトプッシュカテゴリには、Accept/Decline、Yes/No、Confirm/Cancel、Moreの4セットのデフォルトプッシュアクションボタンがあります。

アクションボタンを手動で登録する

プッシュアクションボタンの手動登録は推奨されません。
configuration.push.automation設定オプションを使用してプッシュ通知を設定した場合、Brazeはデフォルトのプッシュカテゴリ用のアクションボタンを自動的に登録し、プッシュアクションボタンのクリック分析とURLルーティングを処理します。
ただし、代わりに手動でプッシュアクションボタンを登録することもできます。
ステップ1:Brazeデフォルトプッシュカテゴリの追加
プッシュ登録時にデフォルトのプッシュカテゴリに登録するには、次のコードを使用します。
a
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
[[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:BRZNotifications.categories];

バックグラウンドアクティベーションモードでプッシュアクションボタンをクリックすると、通知が閉じられるだけで、アプリは開きません。ユーザーが次回アプリを開くと、これらのアクションのボタンクリック分析がサーバーにフラッシュされます。
ステップ2:インタラクティブなプッシュ処理を有効にする
クリック分析やURLルーティングを含むプッシュアクションボタンの処理を有効にするには、アプリのdidReceive(_:completionHandler:)デリゲートメソッドに次のコードを追加します。
AppDelegate.braze?.notifications.handleUserNotification(response: response, withCompletionHandler: completionHandler)
[AppDelegate.braze.notifications handleUserNotificationWithResponse:response
withCompletionHandler:completionHandler];
UNNotificationフレームワークを使用し、Brazeの通知メソッドを実装している場合、このメソッドはすでに統合されているはずです。
プッシュカテゴリのカスタマイズ
Brazeはデフォルトのプッシュカテゴリのセットを提供するだけでなく、カスタムの通知カテゴリとアクションもサポートしています。アプリケーションにカテゴリを登録すると、Brazeダッシュボードを使用してこれらのカスタム通知カテゴリをユーザーに送信できます。
デバイスに表示されるLIKE_CATEGORYを活用する例を次に示します。

ステップ1:カテゴリを登録する
アプリにカテゴリを登録するには、以下のような方法を使用します。
Braze.Notifications.categories.insert(
.init(identifier: "LIKE_CATEGORY",
actions: [
.init(identifier: "LIKE_IDENTIFIER", title: "Like", options: [.foreground]),
.init(identifier: "UNLIKE_IDENTIFIER", title: "Unlike", options: [.foreground])
],
intentIdentifiers: []
)
)
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
NSMutableSet<UNNotificationCategory *> *categories = [BRZNotifications.categories mutableCopy];
UNNotificationAction *likeAction = [UNNotificationAction actionWithIdentifier:@"LIKE_IDENTIFIER"
title:@"Like"
options:UNNotificationActionOptionForeground];
UNNotificationAction *unlikeAction = [UNNotificationAction actionWithIdentifier:@"UNLIKE_IDENTIFIER"
title:@"Unlike"
options:UNNotificationActionOptionForeground];
UNNotificationCategory *likeCategory = [UNNotificationCategory categoryWithIdentifier:@"LIKE_CATEGORY"
actions:@[likeAction, unlikeAction]
intentIdentifiers:@[]
options:UNNotificationCategoryOptionNone];
[categories addObject:likeCategory];
[UNUserNotificationCenter.currentNotificationCenter setNotificationCategories:categories];

UNNotificationActionを作成するときに、アクションオプションのリストを指定できます。例えば、.foregroundを使用すると、アクションボタンをタップした後にユーザーがアプリを開けるようになります。これは、「アプリを開く」や「アプリケーションにディープリンクする」などのナビゲーションクリック時の動作に必要です。アプリを開かずに通知を閉じるだけのアクションボタンが必要な場合は、アクションのoptions配列から.foregroundを除外してください。詳細については、UNNotificationActionOptionsを参照してください。
ステップ2:カテゴリを選択する
カテゴリを登録したら、Brazeダッシュボードを使用して、そのタイプの通知をユーザーに送信します。

アプリへのディープリンクやWeb URLへのリダイレクトなど、Swiftコードでローカルに作成できない動作についてのみ、Brazeダッシュボード上でアクションボタンを定義する必要があります。これらのアクションはダッシュボードで設定する必要があり、そうすることでどのURLやディープリンクを開くかを定義できます。アプリを開かずに通知を閉じるだけのアクションボタンについては、ダッシュボードで設定する必要はありません。通知の閉じ動作はiOSが自動的に処理します。アプリコードでカスタムカテゴリとそのアクションを登録し、ダッシュボードで対応するカテゴリ名を入力するだけです。
- Brazeダッシュボードで、メッセージング > プッシュ通知を選択し、iOSのプッシュキャンペーンを選択します。
- プッシュ通知を作成するの下で、アクションボタンをオンにします。
- iOS通知カテゴリドロップダウンで、事前登録されたカスタムiOSカテゴリを入力を選択します。
- 最後に、前に作成したカテゴリのいずれかを入力します。次の例では、カスタムカテゴリ
LIKE_CATEGORYを使用します。

例:カスタムプッシュカテゴリ
2つのアクションボタンを持つプッシュ通知を作成したいとします。アプリにディープリンクするManageと、通知を閉じるだけのKeepです。
次の例では、MANAGE_IDENTIFIERアクションに.foregroundオプションが含まれており、タップするとアプリが開きます。これは、アプリの特定の部分にディープリンクするために必要です。KEEP_IDENTIFIERアクションは空のオプション配列を使用しており、アプリを開かずに通知を閉じます。
Braze.Notifications.categories.insert(
.init(identifier: "YOUR_CATEGORY",
actions: [
.init(identifier: "KEEP_IDENTIFIER", title: "Keep", options: []),
.init(identifier: "MANAGE_IDENTIFIER", title: "Manage", options: [.foreground])
],
intentIdentifiers: []
)
)
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
MANAGE_IDENTIFIERはアプリにディープリンクするため、Brazeダッシュボードでそのアクションボタンに関連するディープリンクURLを設定します。ただし、KEEP_IDENTIFIERは通知を閉じるだけなので、ダッシュボードにボタンを定義する必要はありません。ダッシュボードでは、アプリコードで登録した内容と一致するカテゴリ名(例:YOUR_CATEGORY)を入力するだけです。
バッジをカスタマイズする
バッジは、ユーザーの注意を引くのに最適な小さなアイコンです。Brazeダッシュボードを使用してプッシュ通知を作成する際に、設定タブでバッジカウントを指定できます。また、アプリケーションのapplicationIconBadgeNumberプロパティやリモート通知ペイロードを使用して、バッジカウントを手動で更新することもできます。
Brazeは、アプリがフォアグラウンドにある状態でBraze通知を受信すると、バッジカウントを自動的にクリアします。バッジ番号を手動で0に設定すると、通知センターの通知もクリアされます。
通常のアプリ操作の一環としてバッジをクリアする計画がない場合、またはバッジをクリアするプッシュを送信しない場合は、アプリがアクティブになったときにバッジをクリアする必要があります。SceneDelegate.swiftファイルのsceneDidBecomeActive(_:)メソッド(または、アプリがまだUISceneライフサイクルを採用していない場合は、アプリのapplicationDidBecomeActive:デリゲートメソッド)に以下のコードを追加してください。
// For iOS 16.0+
let center = UNUserNotificationCenter.current()
do {
try await center.setBadgeCount(0)
} catch {
// Handle errors
}
// Prior to iOS 16. Deprecated in iOS 17+.
UIApplication.shared.applicationIconBadgeNumber = 0
// For iOS 16.0+
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center setBadgeCount:0 withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
// Handle errors
}
}];
// Prior to iOS 16. Deprecated in iOS 17+.
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
サウンドをカスタマイズする
ステップ1:アプリにサウンドをホストする
カスタムプッシュ通知サウンドは、アプリのメインバンドル内にローカルでホストする必要があります。以下のオーディオデータ形式が使用できます。
- Linear PCM
- MA4
- µLaw
- aLaw
オーディオデータはAIFF、WAV、またはCAFファイルにパッケージできます。Xcodeで、サウンドファイルをアプリケーションバンドルの非ローカライズリソースとしてプロジェクトに追加してください。

カスタムサウンドは再生時間が30秒以内である必要があります。カスタムサウンドがこの制限を超える場合、代わりにデフォルトのシステムサウンドが再生されます。
サウンドファイルの変換
afconvertツールを使用してサウンドを変換できます。たとえば、16ビットリニアPCMシステムサウンドSubmarine.aiffをCAFファイルのIMA4オーディオに変換するには、ターミナルで次のコマンドを使用します。
afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v

サウンドのデータ形式を確認するには、QuickTime Playerでサウンドを開き、ムービーメニューからムービーインスペクタを表示を選択します。
ステップ2:サウンドのプロトコルURLを指定する
アプリ内のサウンドファイルの場所を示すプロトコルURLを指定する必要があります。これには2つの方法があります。
- Appleプッシュオブジェクトの
soundパラメーターを使用して、URLをBrazeに渡します。 - ダッシュボードでURLを指定します。プッシュコンポーザーで設定を選択し、サウンドフィールドにプロトコルURLを入力します。

指定されたサウンドファイルが存在しない場合、またはキーワード「default」が入力された場合、Brazeはデフォルトのデバイスアラートサウンドを使用します。ダッシュボード以外にも、[メッセージングAPI][12]を通じてサウンドを設定することもできます。
詳細については、Apple Developer Documentationのカスタムアラートサウンドの準備を参照してください。
設定
ダッシュボードでプッシュキャンペーンを作成する際、作成ステップの設定タブをクリックすると、利用可能な詳細設定が表示されます。

キーと値のペア
Brazeでは、extrasと呼ばれるカスタム定義の文字列キーと値のペアをプッシュ通知とともにアプリケーションに送信できます。Extrasはダッシュボードまたは API を通じて定義でき、プッシュデリゲートの実装に渡されるnotificationディクショナリ内でキーと値のペアとして利用できます。
アラートオプション
アラートオプションチェックボックスを選択すると、デバイス上での通知の表示方法を調整するためのキーと値のドロップダウンが表示されます。
content-availableフラグの追加
content-availableフラグを追加チェックボックスをオンにすると、デバイスにバックグラウンドで新しいコンテンツをダウンロードするよう指示できます。最も一般的な使い方として、サイレント通知を送信する場合にオンにします。
mutable-contentフラグの追加
mutable-contentフラグを追加チェックボックスをオンにすると、高度な受信カスタマイズが有効になります。このフラグは、このチェックボックスの値に関係なく、リッチプッシュ通知を作成する際に自動的に送信されます。
折りたたみID
折りたたみIDを指定すると、類似の通知をまとめることができます。同じ折りたたみIDを持つ複数の通知を送信した場合、デバイスには最後に受信した通知のみが表示されます。Appleの通知の統合に関するドキュメントを参照してください。
有効期限
有効期限チェックボックスをオンにすると、メッセージの有効期限を設定できます。ユーザーのデバイスが接続を失った場合、Brazeは指定された時間まで送信を再試行し続けます。設定されていない場合、プラットフォームのデフォルトの有効期限は30日です。配信前に期限切れとなったプッシュ通知は失敗とは見なされず、バウンスとして記録されません。
前提条件
この機能を使用する前に、Android Braze SDKを統合する必要があります。 プッシュ通知の設定も必要です。
設定
Brazeダッシュボードから送信されるFireOSプッシュ通知には、多くの詳細設定が用意されています。この記事では、これらの機能と正しい使い方について説明します。

メッセージの有効期間(TTL)
メッセージの有効期間(TTL)フィールドでは、プッシュメッセージングサービスにメッセージを保存するカスタムの期間を設定できます。デフォルト値はFCMで4週間、ADMで31日です。
サマリーテキスト
サマリーテキストでは、通知の展開表示に追加テキストを設定できます。また、画像付き通知のキャプションとしても機能します。

サマリーテキストは、展開表示でメッセージ本文の下に表示されます。

画像を含むプッシュ通知では、折りたたみ表示でメッセージテキストが表示され、通知を展開するとサマリーテキストが画像のキャプションとして表示されます。
カスタムURI
カスタムURI機能を使用すると、通知がクリックされたときに移動するWeb URLまたはAndroidリソースを指定できます。カスタムURIが指定されていない場合、通知をクリックするとユーザーはアプリに移動します。カスタムURIを使用してアプリ内のディープリンクを設定したり、アプリの外部にあるリソースにユーザーを誘導したりできます。これは、メッセージングAPIまたはダッシュボードのプッシュコンポーザーにある詳細設定から指定できます(下図参照)。

通知の表示優先度

プッシュ通知の優先度レベルは、通知トレイ内で他の通知に対してどのように表示されるかに影響します。また、配信の速度や方法にも影響する場合があります。通常および低い優先度のメッセージはバッテリー寿命を維持するためにわずかに遅延して送信されたりバッチ処理されたりすることがありますが、高い優先度のメッセージは常に即座に送信されます。
Android Oでは、通知の優先度は通知チャネルのプロパティになりました。開発者と協力してチャネルの設定時に優先度を定義し、通知サウンドを送信する際にダッシュボードで適切なチャネルを選択する必要があります。Android O より前のバージョンを搭載するデバイスでは、Brazeダッシュボードとメッセージング APIを通じてFireOS通知の優先度レベルを指定できます。
ユーザー群全体に特定の優先度でメッセージを送信するには、通知チャネル設定(O以降のデバイス向け)で間接的に優先度を指定し、さらにダッシュボードから個別の優先度を送信する(<Oデバイス向け)ことをお勧めします。
Fire OSプッシュ通知に設定できる優先度レベルは以下のとおりです。
| 優先度 | 説明・用途 | priority 値(APIメッセージ用) |
|---|---|---|
| 最高 | 緊急または時間的制約のあるメッセージ | 2 |
| 高 | 友人からの新しいメッセージなど、重要な通信 | 1 |
| デフォルト | ほとんどの通知 - メッセージが他の優先度タイプに明確に該当しない場合に使用します | 0 |
| 低 | ユーザーに知らせたいが即座のアクションを必要としない情報 | -1 |
| 最低 | 文脈に応じた情報またはバックグラウンド情報 | -2 |
詳細については、GoogleのAndroid通知ドキュメントを参照してください。
サウンド
Android Oでは、通知サウンドは通知チャネルのプロパティになりました。開発者と協力してチャネルの設定時にサウンドを定義し、通知を送信する際にダッシュボードで適切なチャネルを選択する必要があります。
Android O より前のバージョンを搭載するデバイスでは、Brazeではダッシュボードコンポーザーを通じて個々のプッシュメッセージのサウンドを設定できます。デバイス上のローカルサウンドリソース(例: android.resource://com.mycompany.myapp/raw/mysound)を指定することで設定できます。このフィールドに「default」を指定すると、デバイスのデフォルト通知サウンドが再生されます。これは、メッセージングAPIまたはダッシュボードのプッシュコンポーザーにある設定から指定できます。

ダッシュボードのプロンプトに完全なサウンドリソースURI(例: android.resource://com.mycompany.myapp/raw/mysound)を入力してください。
ユーザー群全体に特定のサウンドでメッセージを送信するには、通知チャネル設定(O以降のデバイス向け)で間接的にサウンドを指定し、さらにダッシュボードから個別のサウンドを送信する(<Oデバイス向け)ことをお勧めします。
この機能を使う前に、React Native Braze SDKを統合する必要があります。 また、プッシュ通知を設定する必要があります。
React Nativeにおけるプッシュカスタマイズ
Braze React Native SDKは、プッシュ通知のカスタマイズ(アクションボタン、カテゴリー、カスタム通知ファクトリー)をJavaScript APIを通じて公開していません。これらの機能には、iOSおよびAndroidプロジェクトでのネイティブ設定が必要です。
以下の表は、ネイティブ設定が必要な機能を示しています。
| 機能 | iOS | Android |
|---|---|---|
| アクションボタン | ネイティブのSwift/Objective-Cで設定 | ネイティブのJava/Kotlinで設定 |
| プッシュカテゴリー | ネイティブのSwift/Objective-Cで設定 | ネイティブのJava/Kotlinで設定 |
| カスタム通知ファクトリー | N/A | ネイティブのJava/Kotlinで設定 |
| バッジのカスタマイズ | ネイティブのSwift/Objective-Cで設定 | N/A |
| カスタムサウンド | ネイティブのSwift/Objective-Cで設定 | ネイティブのJava/Kotlinで設定 |
iOSのカスタマイズ
iOSでプッシュアクションボタン、カテゴリー、バッジ、またはカスタムサウンドを追加するには、AppDelegate(SwiftまたはObjective-C)でネイティブ設定を実装してください。詳しい手順については、プッシュ通知をカスタマイズする – Swiftを参照してください。
Androidのカスタマイズ
Androidでプッシュアクションボタン、カテゴリー、またはカスタム通知ファクトリーを追加するには、Androidプロジェクトでネイティブ設定を実装してください。詳しい手順については、プッシュ通知をカスタマイズする – Androidを参照してください。