Skip to content

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.

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")
}

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>

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.

É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.

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.

Un envoi de messages Android "Multicolor Push test message" où les lettres sont de différentes couleurs, en italique et avec une couleur de fond.

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é.

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.

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.

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.

L'éditeur de campagne push montrant l'emplacement du menu déroulant "Type de notification" (au-dessus de l'aperçu push standard).

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.

Un message Android avec le titre « Salutations d’Appboy ! », le message « C’est le corps du message ! Vous pouvez même ajouter des emojis." et texte du résumé "Voici le texte du résumé."

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.

Un envoi de messages Android avec le titre "Appboy !", le message "Ceci est le corps du message.." et le texte du résumé "et ceci est le texte du résumé."

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é :

La création de liens profonds avancement dans le compositeur poussoir Braze.

Priorité d’affichage de la 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 :

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.

Le réglage avancé du son dans le compositeur poussoir de Braze.

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_ %}

CETTE PAGE A-T-ELLE ÉTÉ UTILE?
New Stuff!