Personnalisation des notifications push
Découvrez comment personnaliser les notifications push pour le SDK de Braze.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK Android Braze. Vous devrez également configurer les notifications push.
Utilisation d’un rappel pour les événements de type “push” (pousser)
Braze propose une fonction de rappel subscribeToPushNotificationEvents()
pour la réception, l’ouverture ou le rejet des notifications push. Nous vous recommandons de placer cette fonction de rappel dans votre Application.onCreate()
pour ne manquer aucun événement survenant lorsque votre application n’est pas en fonctionnement.
Si vous utilisiez un Récepteur de diffusion personnalisé pour cette fonctionnalité dans votre application, vous pouvez le supprimer en toute sécurité pour adopter cette option d’intégration.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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");
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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")
}
Avec les boutons d’action de notification, les intentions BRAZE_PUSH_INTENT_NOTIFICATION_OPENED
se déclenchent lorsque les boutons avec les actions opens app
ou deep link
sont cliqués. La gestion des liens profonds et des compléments reste la même. Les boutons avec des actions close
ne déclenchent pas les intentions BRAZE_PUSH_INTENT_NOTIFICATION_OPENED
et rejettent automatiquement la notification.
Créez votre listener de notification push dans Application.onCreate
pour vous assurer que votre listener est déclenché après qu’un utilisateur final ait tapé une notification alors que votre application est dans un état terminé.
Personnalisation des polices de caractères
Étape 1 : Créer une famille de polices
Voici un exemple de définition d’une famille de polices personnalisée à l’aide du guide des familles de polices. Pour cet exemple, nous utilisons la police Bungee Shade.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--Note: You must declare both sets of attributes
so that your fonts load on devices running Android 8.0 (API level 26) or lower.
See https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html -->
<font android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/bungeeshade"
app:fontStyle="normal"
app:fontWeight="400"
app:font="@font/bungeeshade"/>
</font-family>
Après avoir stocké la définition de la famille de polices dans /res/font/bungee_font_family.xml
, nous pouvons nous y référer dans le XML en tant que @font/bungee_font_family
.
Étape 2 : Référencez votre famille de polices
Maintenant que la famille de polices est créée, vous pouvez substituer le style Braze par défaut dans votre styles.xml
pour inclure des références à la famille de polices.
Par exemple, la substitution de styles suivante utiliserait la famille de polices bungee
pour tous les messages in-app Braze.
1
2
3
4
5
6
7
8
9
<style name="Braze.InAppMessage">
<item name="android:fontFamily">@font/bungee_font_family</item>
<item name="fontFamily">@font/bungee_font_family</item>
</style>
<style name="Braze.Cards">
<item name="android:fontFamily">@font/another_custom_font_family</item>
<item name="fontFamily">@font/another_custom_font_family</item>
</style>
Les deux attributs de style android:fontFamily
et fontFamily
doivent être définis pour maintenir la compatibilité entre toutes les versions de SDK.
Personnalisation de l’affichage des notifications
Étape 1 : Créer votre fabrique de notification personnalisée
Dans certains scénarios, vous pourriez désirer personnaliser les notifications push d’une manière qui pourrait être encombrante ou non disponible côté serveur. Pour vous donner un contrôle complet de l’affichage des notifications, nous avons ajouté la possibilité de définir vos propres objets de notification. IBrazeNotificationFactory
pour créer des objets de notification qui seront affichés par Braze.
Si une IBrazeNotificationFactory
personnalisée est définie, Braze appellera la méthode createNotification()
de votre fabrique lors de la réception de la notification push avant qu’elle ne soit affichée à l’utilisateur. Braze transmettra un Bundle
contenant les données de notification push Braze et un autre Bundle
contenant les paires clé-valeur personnalisées envoyées soit via le tableau de bord soit par les API de messagerie :
Braze transmettra un fichier BrazeNotificationPayload
contenant les données de la notification push de Braze.
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")
}
Vous pouvez renvoyer null
à partir de votre méthode createNotification()
personnalisée pour ne pas afficher du tout la notification, utiliser BrazeNotificationFactory.getInstance().createNotification()
pour obtenir notre objet notification
par défaut pour ces données et le modifier avant l’affichage, ou générer un objet notification
complètement séparé pour l’affichage.
Pour obtenir de la documentation sur les clés de données Braze push, reportez-vous au SDK Android.
Étape 2 : Définir votre fabrique de notification personnalisée
Pour demander à Braze d’utiliser votre fabrique de notification personnalisée, utilisez la méthode setCustomBrazeNotificationFactory
afin de définir votre IBrazeNotificationFactory
:
1
setCustomBrazeNotificationFactory(IBrazeNotificationFactory brazeNotificationFactory);
1
setCustomBrazeNotificationFactory(brazeNotificationFactory: IBrazeNotificationFactory)
L’endroit recommandé pour définir votre IBrazeNotificationFactory
personnalisée est dans la méthode de cycle de vie de l’application Application.onCreate()
(pas activité). Cela permettra à la fabrique de notification d’être correctement définie chaque fois que le processus de votre application est actif.
La création de votre propre notification à partir de zéro est un cas d’utilisation avancé et ne doit être effectuée qu’après des tests approfondis et une compréhension approfondie de la fonctionnalité push de Braze. Par exemple, vous devez vous assurer que vos journaux de notifications push s’ouvrent correctement.
Pour annuler la définition de votre IBrazeNotificationFactory
personnalisée et revenir à la gestion par défaut de Braze pour les notifications push, transmettez null
à notre système de définition de fabrique de notification personnalisée :
1
setCustomBrazeNotificationFactory(null);
1
setCustomBrazeNotificationFactory(null)
Texte du multiplicateur de rendu
Dans la version 3.1.1 du SDK Braze, il est possible d’envoyer du HTML à un appareil pour rendre le texte multicolore dans les notifications push.
Cet exemple est affiché avec le code HTML suivant :
1
2
3
<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>
Gardez à l’esprit qu’Android limite les éléments et les tags HTML valides dans vos notifications push. Par exemple, marquee
n’est pas autorisé.
Le rendu du texte multicolore est spécifique à l’appareil et peut ne pas s’afficher en fonction de l’appareil ou de la version d’Android.
Pour rendre le texte multicolore dans une notification push, vous pouvez mettre à jour votre braze.xml
ou BrazeConfig
:
Ajoutez ce qui suit dans votre braze.xml
:
1
<bool translatable="false" name="com_braze_push_notification_html_rendering_enabled">true</bool>
Ajoutez ce qui suit dans votre BrazeConfig
:
1
2
3
4
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
val brazeConfig = BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build()
Braze.configure(this, brazeConfig)
Tags HTML pris en charge
À l’heure actuelle, Google ne répertorie pas les étiquettes HTML prises en charge pour Android directement dans sa documentation. Cette information ne peut être trouvée que dans le fichier Html.java
de son dépôt Git. Gardez cela à l’esprit lorsque vous vous référez au tableau suivant, car ces informations ont été extraites de ce fichier et les tags HTML pris en charge peuvent être modifiés.
Catégorie | Étiquette HTML | Description |
---|---|---|
Style de texte de base | <b> , <strong> |
Texte en gras |
<i> , <em> |
Texte en italique | |
<u> |
Souligner le texte | |
<s> , <strike> , <del> |
Texte barré | |
<sup> |
Texte en exposant | |
<sub> |
Texte en indice | |
<tt> |
Texte monospace | |
Taille/Police | <big> , <small> |
Modification de la taille relative du texte |
<font color="..."> |
Définit la couleur d'avant-plan | |
<span> (avec insertion CSS) |
Styles en ligne (e.g., couleur, arrière-plan) | |
Paragraphe et bloc | <p> , <div> |
Sections au niveau des blocs |
<br> |
Retour à la ligne | |
<blockquote> |
Bloc cité | |
<ul> + <li> |
Liste non ordonnée avec puces | |
Rubriques | <h1> - <h6> |
Titres (différentes tailles) |
Liens et images | <a href="..."> |
Lien cliquable |
<img src="..."> |
Image incorporée | |
Autres en ligne | <em> , <strong> , <dfn> , <cite> |
Synonymes de italique ou gras |
Rendu des images en ligne
Fonctionnement
Vous pouvez présenter une image plus grande dans votre notification push Android à l’aide de la fonction inline image push. Avec cette conception, les utilisateurs n’auront pas à étendre manuellement la notification push pour agrandir l’image. Contrairement aux notifications push standard pour Android, les images des notifications push d’image insérée ont un rapport hauteur/largeur de 3:2.
Compatibilité
Bien que vous puissiez envoyer des images en ligne à n’importe quel appareil, les appareils et les SDK qui ne respectent pas les versions minimales afficheront une image standard à la place. Pour que les images en ligne s’affichent correctement, le SDK Android Braze v10.0.0+ et un appareil fonctionnant sous Android M+ sont nécessaires.
Les appareils fonctionnant sous Android 12 s’afficheront différemment en raison des modifications dans les styles personnalisés de notification push.
Envoi d’un push d’image en ligne
Lors de la création d’un message push Android, cette fonctionnalité est disponible dans le menu déroulant Type de notification.
Paramètres
De nombreux paramètres avancés sont disponibles pour les notifications push Android envoyées via le tableau de bord de Braze. Le présent article décrit ces fonctionnalités et la manière de les utiliser avec succès.
ID de notification
Un ID de notification est un identifiant unique pour une catégorie de message de votre choix qui informe le service de messagerie de ne respecter que le message le plus récent de cet ID. Définir un ID de notification vous permet d’envoyer uniquement le message le plus récent et le plus pertinent, plutôt qu’une pile de données obsolètes et non pertinentes.
Priorité de livraison d’envoi de message Firebase
Le champ Priorité d’envoi/distribution de la messagerie Firebase vous permet de contrôler si un push est envoyé avec une priorité “normale” ou “élevée” à la messagerie Firebase Cloud.
TTL (Durée de vie)
Le champ Durée en vie (TTL) vous permet de définir une durée personnalisée de stockage des messages avec le service de messagerie push. Les valeurs par défaut pour la durée de vie sont de quatre semaines pour FCM et de 31 jours pour ADM.
Texte récapitulatif
Le texte récapitulatif vous permet de définir un texte supplémentaire dans la vue de notification étendue. Il sert également de légende pour les notifications avec des images.
Le texte récapitulatif s’affiche sous le corps du message dans la vue étendue.
Pour les notifications push qui incluent des images, le texte du message s’affiche dans la vue réduite tandis que le texte récapitulatif s’affiche comme légende d’image lorsque la notification est étendue.
URI personnalisés
La fonctionnalité URI personnalisé vous permet de spécifier une URL Web ou une ressource Android vers laquelle naviguer lorsque l’on clique sur la notification. Si aucun URI personnalisé n’est spécifié, cliquer sur la notification amène les utilisateurs dans votre application. Vous pouvez utiliser l’URI personnalisé pour créer un lien profond à l’intérieur de votre application et diriger les utilisateurs vers des ressources qui existent en dehors de votre application. Ceci peut être spécifié via l’API Messages ou notre tableau de bord sous Paramètres avancés dans le compositeur de push comme illustré :
Priorité d’affichage de la notification
Le paramètre de priorité d’affichage de notification n’est plus utilisé sur les appareils exécutant Android O ou plus récents. Pour les appareils plus récents, définissez la priorité par le biais de la configuration du canal de notification.
Le niveau de priorité d’une notification push affecte la manière dont votre notification est affichée dans la barre de notification par rapport à d’autres notifications. Il peut également affecter la vitesse et la manière de livrer, car les messages normaux et moins prioritaires peuvent être envoyés avec une latence légèrement plus élevée ou groupés pour préserver la durée de vie de la batterie, alors que les messages haute priorité sont toujours envoyés immédiatement.
Dans Android O, la priorité de notification est devenue une propriété des canaux de notification. Vous devrez travailler avec votre développeur pour définir la priorité d’un canal pendant sa configuration, puis utiliser le tableau de bord pour sélectionner le canal approprié lors de l’envoi de vos sons de notification. Pour les appareils exécutant des versions d’Android antérieures à O, la spécification d’un niveau de priorité pour les notifications Android est possible via le tableau de bord de Braze et l’API d’envoi de messages.
Pour envoyer un message à l’ensemble de votre base d’utilisateurs avec une priorité spécifique, nous vous recommandons de spécifier indirectement la priorité via la configuration du canal de communication (pour cibler les appareils O+) et d’ envoyer la priorité individuelle à partir du tableau de bord (pour cibler les appareils <O).
Les niveaux de priorité que vous pouvez définir sur les notifications push Android ou Fire OS sont les suivants :
Priorité | Description ou utilisation prévue | Valeur de priority (pour les messages API) |
---|---|---|
Max | Messages urgents ou à délai de réponse critique | 2 |
Élevée | Communication importante, telle que le nouveau message d’un ami | 1 |
Par défaut | La plupart des notifications : utilisez « par défaut » si votre message ne tombe pas explicitement dans les autres types de priorité | 0 |
Faible | Informations que vous voulez que les utilisateurs connaissent, mais ne nécessitant pas d’action immédiate | -1 |
Min | Informations contextuelles ou d’arrière-plan. | -2 |
Pour plus d’informations, consultez la documentation de Google sur les notifications Android.
Sons
Dans Android O, les sons de notification sont devenus une propriété des canaux de notification. Vous devrez travailler avec votre développeur pour définir le son d’un canal pendant sa configuration, puis utiliser le tableau de bord pour sélectionner le canal approprié lors de l’envoi de vos notifications.
Pour les appareils fonctionnant dans des versions d’Android antérieures à O, Braze vous permet de définir le son d’un message de notification push individuel via le composeur du tableau de bord. Vous pouvez le faire en spécifiant une ressource sonore locale sur l’appareil (par exemple, android.resource://com.mycompany.myapp/raw/mysound
). Spécifier « par défaut » dans ce champ jouera le son de notification par défaut sur l’appareil. Cela peut être spécifié via l’API Messages ou le tableau de bord sous Paramètres avancés dans le compositeur de push.
Saisissez l’URI complet de la ressource sonore (par exemple, android.resource://com.mycompany.myapp/raw/mysound
) dans l’invite du tableau de bord.
Pour envoyer un message à l’ensemble de votre base d’utilisateurs avec un son spécifique, nous vous recommandons de spécifier indirectement le son via la configuration du canal de communication (pour cibler les appareils O+) et d’ envoyer le son individuel à partir du tableau de bord (pour cibler les appareils <O).
guide/swift/push_notifications/customization.md developer_ %}
guide/fireos/push_notifications/customization.md developer_ %}