Customizing the notification display
Learn how to customize the notification display for the Braze Android SDK.
Prerequisites
Before you can use this feature, you’ll need to integrate the Braze Android SDK.
Customizing notification display
Step 1: Create your custom notification factory
In some scenarios, you may wish to customize push notifications in ways that would be cumbersome or unavailable server side. To give you complete control of notification display, we’ve added the ability to define your own IBrazeNotificationFactory
to create notification objects for display by Braze.
If a custom IBrazeNotificationFactory
is set, Braze will call your factory’s createNotification()
method upon push receipt before the notification is displayed to the user. Braze will pass in a Bundle
containing Braze push data and another Bundle
containing custom key-value pairs sent either via the dashboard or the messaging APIs:
Braze will pass in a BrazeNotificationPayload
containing data from the Braze push notification.
1
2
3
4
5
6
7
8
9
// 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");
}
1
2
3
4
5
6
7
8
// 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")
}
You can return null
from your custom createNotification()
method to not show the notification at all, use BrazeNotificationFactory.getInstance().createNotification()
to obtain our default notification
object for that data and modify it before display, or generate a completely separate notification
object for display.
For documentation on Braze push data keys, refer to the Android SDK.
Step 2: Set your custom notification factory
To instruct Braze to use your custom notification factory, use the setCustomBrazeNotificationFactory
method to set your IBrazeNotificationFactory
:
1
setCustomBrazeNotificationFactory(IBrazeNotificationFactory brazeNotificationFactory);
1
setCustomBrazeNotificationFactory(brazeNotificationFactory: IBrazeNotificationFactory)
The recommended place to set your custom IBrazeNotificationFactory
is in the Application.onCreate()
application lifecycle method (not activity). This will allow the notification factory to be set correctly whenever your app process is active.
Creating your own notification from scratch is an advanced use case and should be done only with thorough testing and a deep understanding of the Braze push functionality. For example, you must make sure your notification logs push opens correctly.
To unset your custom IBrazeNotificationFactory
and return to default Braze handling for push, pass in null
to our custom notification factory setter:
1
setCustomBrazeNotificationFactory(null);
1
setCustomBrazeNotificationFactory(null)