Notifications push
Les notifications push vous permettent d’envoyer des notifications depuis votre application lorsque des événements importants se produisent. Vous pouvez envoyer une notification push lorsque vous avez de nouveaux messages instantanés à livrer, des alertes d’actualité à diffuser ou le dernier épisode de l’émission télévisée préférée de votre utilisateur prêt à être téléchargé pour un visionnage hors ligne. Elles sont également plus efficaces que la récupération en arrière-plan, car votre application ne se lance que lorsque c’est nécessaire.

Si l’option Redirect to web URL avec Open web URL inside app n’est pas sélectionnée, mais que le lien s’ouvre tout de même dans l’application, il est possible que l’application gère l’URL (par exemple, avec les liens universels sur iOS ou les App Links sur Android). Pour ouvrir le lien dans le navigateur, vérifiez que votre application délègue l’URL au navigateur système lorsque l’utilisateur appuie sur la notification, ou ajustez la gestion des URL de votre application afin que l’action au clic corresponde au paramètre du tableau de bord de Braze. Consultez la documentation push de votre plateforme pour savoir comment les actions au clic et la gestion des URL sont configurées.

Ce guide utilise des exemples de code du SDK Web de Braze 4.0.0+. Pour passer à la dernière version du SDK Web, consultez le Guide de mise à niveau du SDK.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK Web de Braze.
Protocoles push
Les notifications push Web sont implémentées à l’aide du standard push du W3C, pris en charge par la plupart des navigateurs principaux. Pour plus d’informations sur les standards de protocole push spécifiques et la compatibilité des navigateurs, vous pouvez consulter les ressources d’Apple, de Mozilla et de Microsoft.
Configuration des notifications push
Étape 1 : Configurer votre service de traitement
Dans le fichier service-worker.js de votre projet, ajoutez l’extrait de code suivant et définissez l’option d’initialisation manageServiceWorkerExternally sur true lors de l’initialisation du SDK Web.

Votre serveur web doit retourner un Content-Type: application/javascript lors de la diffusion de votre fichier de service de traitement. De plus, si votre fichier de service de traitement ne s’appelle pas service-worker.js, vous devrez utiliser l’option d’initialisation serviceWorkerLocation.
Étape 2 : Enregistrer le navigateur
Pour demander immédiatement les autorisations push à un utilisateur afin que son navigateur puisse recevoir des notifications push, appelez braze.requestPushPermission(). Pour vérifier d’abord si les notifications push sont prises en charge dans son navigateur, appelez braze.isPushSupported().
Vous pouvez également envoyer une invite push non intrusive à l’utilisateur avant de demander l’autorisation push, afin d’afficher votre propre interface liée aux notifications push.

Sur macOS, Google Chrome et Google Chrome Helper (Alerts) doivent tous deux être activés par l’utilisateur final dans Réglages du système > Notifications avant que les notifications push puissent s’afficher—même si les autorisations sont accordées.
Étape 3 : Désactiver skipWaiting (optionnel)
Le fichier de service de traitement de Braze appellera automatiquement skipWaiting lors de l’installation. Si vous souhaitez désactiver cette fonctionnalité, ajoutez le code suivant à votre fichier de service de traitement, après l’importation de Braze :
Se désabonner d’un utilisateur
Pour désabonner un utilisateur, appelez braze.unregisterPush().

Les versions récentes de Safari et Firefox exigent que vous appeliez cette méthode depuis un gestionnaire d’événement de courte durée (par exemple, un gestionnaire de clic sur un bouton ou une invite de notification push souple). Cela est conforme aux bonnes pratiques d’expérience utilisateur de Chrome pour l’inscription aux notifications push.
Domaines alternatifs
Pour intégrer la notification push Web, votre domaine doit être sécurisé, ce qui signifie généralement https, localhost et d’autres exceptions telles que définies dans le standard W3C push. Vous devez également être en mesure d’enregistrer un service de traitement à la racine de votre domaine, ou au moins de contrôler les en-têtes HTTP pour ce fichier. Cet article explique comment intégrer la notification push Web de Braze sur un domaine alternatif.
Cas d’usage
Si vous ne pouvez pas répondre à tous les critères définis dans le standard W3C push, vous pouvez utiliser cette méthode pour ajouter une boîte de dialogue d’invite push à votre site Web. Cela peut être utile si vous souhaitez permettre à vos utilisateurs de s’abonner depuis un site Web http ou une fenêtre contextuelle d’extension de navigateur qui empêche votre invite push de s’afficher.
Considérations
Gardez à l’esprit que, comme de nombreuses solutions de contournement sur le Web, les navigateurs évoluent constamment et cette méthode pourrait ne plus être viable à l’avenir. Avant de continuer, assurez-vous que :
- Vous possédez un domaine sécurisé séparé (
https://) et avez les permissions d’enregistrer un service de traitement sur ce domaine. - Les utilisateurs sont connectés à votre site Web, ce qui garantit que les jetons push sont associés au bon profil.

Vous ne pouvez pas utiliser cette méthode pour implémenter les notifications push pour Shopify. Shopify supprimera automatiquement les en-têtes nécessaires pour distribuer les notifications push de cette manière.
Configurer un domaine push alternatif
Pour rendre l’exemple suivant plus clair, nous utiliserons http://insecure.com et https://secure.com comme nos deux domaines, avec l’objectif de permettre aux visiteurs de s’inscrire aux notifications push sur http://insecure.com. Cet exemple pourrait également s’appliquer à un schéma chrome-extension:// pour la page de fenêtre contextuelle d’une extension de navigateur.
Étape 1 : Initier le flux d’invite
Sur insecure.com, ouvrez une nouvelle fenêtre vers votre domaine sécurisé en utilisant un paramètre d’URL pour transmettre l’ID externe Braze de l’utilisateur actuellement connecté.
http://insecure.com
<button id="opt-in">Opt-In For Push</button>
<script>
// the same ID you would use with `braze.changeUser`:
const user_id = getUserIdSomehow();
// pass the user ID into the secure domain URL:
const secure_url = `https://secure.com/push-registration.html?external_id=${user_id}`;
// when the user takes some action, open the secure URL in a new window
document.getElementById("opt-in").onclick = function(){
if (!window.open(secure_url, 'Opt-In to Push', 'height=500,width=600,left=150,top=150')) {
window.alert('The popup was blocked by your browser');
} else {
// user is shown a popup window
// and you can now prompt for push in this window
}
}
</script>
Étape 2 : S’inscrire aux notifications push
À ce stade, secure.com ouvrira une fenêtre contextuelle dans laquelle vous pouvez initialiser le SDK Web de Braze pour le même ID utilisateur et demander la permission de l’utilisateur pour les notifications push Web.
https://secure.com/push-registration.html
Étape 3 : Communiquer entre les domaines (optionnel)
Maintenant que les utilisateurs peuvent s’abonner depuis ce flux provenant de insecure.com, vous souhaiterez peut-être modifier votre site selon que l’utilisateur est déjà abonné ou non. Il est inutile de demander à l’utilisateur de s’inscrire aux notifications push s’il l’est déjà.
Vous pouvez utiliser des iFrames et l’API postMessage pour communiquer entre vos deux domaines.
insecure.com
Sur notre domaine insecure.com, nous demanderons au domaine sécurisé (où la notification push est réellement enregistrée) des informations sur l’inscription push de l’utilisateur actuel :
<!-- Create an iframe to the secure domain and run getPushStatus onload-->
<iframe id="push-status" src="https://secure.com/push-status.html" onload="getPushStatus()" style="display:none;"></iframe>
<script>
function getPushStatus(event){
// send a message to the iframe asking for push status
event.target.contentWindow.postMessage({type: 'get_push_status'}, 'https://secure.com');
// listen for a response from the iframe's domain
window.addEventListener("message", (event) => {
if (event.origin === "http://insecure.com" && event.data.type === 'set_push_status') {
// update the page based on the push permission we're told
window.alert(`Is user registered for push? ${event.data.isPushPermissionGranted}`);
}
}
}
</script>
secure.com/push-status.html
Questions fréquemment posées (FAQ)
Service de traitement
Que faire si je ne peux pas enregistrer un service de traitement dans le répertoire racine ?
Par défaut, un service de traitement ne peut être utilisé que dans le même répertoire que celui où il est enregistré. Par exemple, si votre fichier de service de traitement se trouve dans /assets/service-worker.js, il ne pourrait être enregistré que dans example.com/assets/* ou un sous-répertoire du dossier assets, mais pas sur votre page d’accueil (example.com/). C’est pourquoi il est recommandé d’héberger et d’enregistrer le service de traitement dans le répertoire racine (par exemple https://example.com/service-worker.js).
Si vous ne pouvez pas enregistrer un service de traitement dans votre domaine racine, une approche alternative consiste à utiliser l’en-tête HTTP Service-Worker-Allowed lors de la diffusion de votre fichier de service de traitement. En configurant votre serveur pour qu’il renvoie Service-Worker-Allowed: / dans la réponse du service de traitement, vous indiquez au navigateur d’élargir la portée et de permettre son utilisation depuis un autre répertoire.
Puis-je créer un service de traitement à l’aide d’un gestionnaire de balises ?
Non, les services de traitement doivent être hébergés sur le serveur de votre site web et ne peuvent pas être chargés via un gestionnaire de balises.
Sécurité du site
Le HTTPS est-il requis ?
Oui. Les standards web exigent que le domaine demandant l’autorisation de notification push soit sécurisé.
Quand un site est-il considéré comme « sécurisé » ?
Un site est considéré comme sécurisé s’il correspond à l’un des modèles d’origine sécurisée suivants. Les notifications push Web de Braze reposent sur ce standard ouvert, ce qui empêche les attaques de type « homme du milieu ».
(https, , *)(wss, *, *)(, localhost, )(, .localhost, *)(, 127/8, )(, ::1/128, *)(file, *, —)(chrome-extension, *, —)
Que faire si un site sécurisé n’est pas disponible ?
Bien que la meilleure pratique du secteur soit de sécuriser l’intégralité de votre site, les clients qui ne peuvent pas sécuriser leur domaine peuvent contourner cette exigence en utilisant une fenêtre modale sécurisée. Pour en savoir plus, consultez notre guide sur l’utilisation d’un domaine push alternatif ou visualisez une démonstration fonctionnelle.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK Android de Braze.
Fonctionnalités intégrées
Les fonctionnalités suivantes sont intégrées au SDK Android de Braze. Pour utiliser d’autres fonctionnalités de notification push, vous devrez configurer les notifications push pour votre application.
| Fonctionnalité | Description |
|---|---|
| Push Stories | Les Push Stories Android sont intégrées par défaut dans le SDK Android de Braze. Pour en savoir plus, consultez Push Stories. |
| Amorces push | Les Campaigns d’amorce push encouragent vos utilisateurs à activer les notifications push sur leur appareil pour votre application. Cela peut être fait sans personnalisation du SDK en utilisant notre amorce push sans code. |
À propos du cycle de vie des notifications push
Le diagramme suivant illustre la manière dont Braze gère le cycle de vie des notifications push, notamment les demandes d’autorisation, la génération de jetons et la distribution des messages.
---
config:
theme: neutral
---
flowchart TD
%% Permission flow
subgraph Permission[Push Permissions]
B{Android version of the device?}
B -->|Android 13+| C["requestPushPermissionPrompt() called"]
B -->|Android 12 and earlier| D[No permissions required]
%% Connect Android 12 path to Braze state
D --> H3[Braze: user subscription state]
H3 --> J3[Defaults to 'subscribed' when user profile created]
C --> E{Did the user grant push permission?}
E -->|Yes| F[POST_NOTIFICATIONS permission granted]
E -->|No| G[POST_NOTIFICATIONS permission denied]
%% Braze subscription state updates
F --> H1[Braze: user subscription state]
G --> H2[Braze: user subscription state]
H1 --> I1{Automatically opt in after permission granted?}
I1 -->|true| J1[Set to 'opted-in']
I1 -->|false| J2[Remains 'subscribed']
H2 --> K1[Remains 'subscribed'<br/>or 'unsubscribed']
%% Subscription state legend
subgraph BrazeStates[Braze subscription states]
L1['Subscribed' - default state<br/>when user profile created]
L2['Opted-in' - user explicitly<br/>wants push notifications]
L3['Unsubscribed' - user explicitly<br/>opted out of push]
end
%% Note about user-level states
note1[Note: These states are user-level<br/>and apply across all devices for the user]
%% Connect states to legend
J1 -.-> L2
J2 -.-> L1
J3 -.-> L1
K1 -.-> L3
note1 -.-> BrazeStates
end
%% Styling
classDef permissionClass fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef tokenClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
classDef sdkClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef configClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef displayClass fill:#ffebee,stroke:#c62828,stroke-width:2px
classDef deliveryClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef brazeClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px
class A,B,C,E,F,G permissionClass
class H,I tokenClass
class J,K sdkClass
class N,O,P configClass
class R,S,S1,T,U,V displayClass
class W,X,X1,X2,Y,Z deliveryClass
class H1,H2,H3,I1,J1,J2,J3,K1,L1,L2,L3,note1 brazeClass
---
config:
theme: neutral
---
flowchart TD
%% Token generation flow
subgraph Token[Token Generation]
H["Braze SDK initialized"] --> Q{Is FCM auto-registration enabled?}
Q -->|Yes| L{Is required configuration present?}
Q -->|No| M[No FCM token generated]
L -->|Yes| I[Generate FCM token]
L -->|No| M
I --> K[Register token with Braze]
%% Configuration requirements
subgraph Config[Required configuration]
N['google-services.json' file is present]
O['com.google.firebase:firebase-messaging' in gradle]
P['com.google.gms.google-services' plugin in gradle]
end
%% Connect config to check
N -.-> L
O -.-> L
P -.-> L
end
%% Styling
classDef permissionClass fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef tokenClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
classDef sdkClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef configClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef displayClass fill:#ffebee,stroke:#c62828,stroke-width:2px
classDef deliveryClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef brazeClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px
class A,B,C,E,F,G permissionClass
class H,I tokenClass
class J,K sdkClass
class N,O,P configClass
class R,S,S1,T,U,V displayClass
class W,X,X1,X2,Y,Z deliveryClass
class H1,H2,H3,I1,J1,J2,J3,K1,L1,L2,L3,note1 brazeClass
---
config:
theme: neutral
fontSize: 10
---
flowchart TD
subgraph Display[Push Display]
%% Push delivery flow
W[Push sent to FCM servers] --> X{Did FCM receive push?}
X -->|App is terminated| Y[FCM cannot deliver push to the app]
X -->|Delivery conditions met| X1[App receives push from FCM]
X1 --> X2[Braze SDK receives push]
X2 --> R[Push type?]
%% Push Display Flow
R -->|Standard push| S{Is push permission required?}
R -->|Silent push| T[Braze SDK processes silent push]
S -->|Yes| S1{Did the user grant push permission?}
S -->|No| V[Notification is shown to the user]
S1 -->|Yes| V
S1 -->|No| U[Notification is not shown to the user]
end
%% Styling
classDef permissionClass fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef tokenClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
classDef sdkClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef configClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef displayClass fill:#ffebee,stroke:#c62828,stroke-width:2px
classDef deliveryClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef brazeClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px
class A,B,C,E,F,G permissionClass
class H,I tokenClass
class J,K sdkClass
class N,O,P configClass
class R,S,S1,T,U,V displayClass
class W,X,X1,X2,Y,Z deliveryClass
class H1,H2,H3,I1,J1,J2,J3,K1,L1,L2,L3,note1 brazeClass
Configuration des notifications push

Pour découvrir un exemple d’application utilisant FCM avec le SDK Android de Braze, consultez Braze : exemple d’application Firebase Push.
Limites de débit
L’API Firebase Cloud Messaging (FCM) a une limite de débit par défaut de 600 000 requêtes par minute. Si vous atteignez cette limite, Braze réessaiera automatiquement dans quelques minutes. Pour demander une augmentation, contactez le support Firebase.
Étape 1 : Ajouter Firebase à votre projet
Commencez par ajouter Firebase à votre projet Android. Pour des instructions détaillées, consultez le guide de configuration Firebase de Google.
Étape 2 : Ajouter Cloud Messaging à vos dépendances
Ensuite, ajoutez la bibliothèque Cloud Messaging aux dépendances de votre projet. Dans votre projet Android, ouvrez build.gradle, puis ajoutez la ligne suivante à votre bloc dependencies.
implementation "google.firebase:firebase-messaging:+"
Vos dépendances devraient ressembler à ceci :
dependencies {
implementation project(':android-sdk-ui')
implementation "com.google.firebase:firebase-messaging:+"
}
Étape 3 : Activer l’API Firebase Cloud Messaging
Dans Google Cloud, sélectionnez le projet utilisé par votre application Android, puis activez l’API Firebase Cloud Messaging.

Étape 4 : Créer un compte de service
Ensuite, créez un nouveau compte de service, afin que Braze puisse effectuer des appels API autorisés lors de l’enregistrement des jetons FCM. Dans Google Cloud, accédez à Service Accounts, puis sélectionnez votre projet. Sur la page Service Accounts, sélectionnez Create Service Account.

Saisissez un nom, un ID et une description pour le compte de service, puis sélectionnez Create and continue.
Dans le champ Role, recherchez et sélectionnez Firebase Cloud Messaging API Admin dans la liste des rôles. Pour un accès plus restrictif, créez un rôle personnalisé avec la permission cloudmessaging.messages.create, puis choisissez-le dans la liste à la place. Lorsque vous avez terminé, sélectionnez Done.

Veillez à sélectionner Firebase Cloud Messaging API Admin, et non Firebase Cloud Messaging Admin.

Étape 5 : Générer les identifiants JSON
Ensuite, générez les identifiants JSON pour votre compte de service FCM. Sur Google Cloud IAM & Admin, accédez à Service Accounts, puis sélectionnez votre projet. Localisez le compte de service FCM que vous avez créé précédemment, puis sélectionnez Actions > Manage Keys.

Sélectionnez Add Key > Create new key.

Choisissez JSON, puis sélectionnez Create. Si vous avez créé votre compte de service en utilisant un ID de projet Google Cloud différent de votre ID de projet FCM, vous devrez mettre à jour manuellement la valeur attribuée à project_id dans votre fichier JSON.
N’oubliez pas l’emplacement de téléchargement de la clé—vous en aurez besoin à l’étape suivante.


Les clés privées peuvent présenter un risque de sécurité en cas de compromission. Conservez vos identifiants JSON dans un emplacement sécurisé pour le moment—vous supprimerez votre clé après l’avoir chargée dans Braze.
Étape 6 : Charger vos identifiants JSON dans Braze
Ensuite, chargez vos identifiants JSON dans votre tableau de bord de Braze. Dans Braze, sélectionnez Settings > App Settings.

Sous les Push Notification Settings de votre application Android, choisissez Firebase, puis sélectionnez Upload JSON File et chargez les identifiants que vous avez générés précédemment. Lorsque vous avez terminé, sélectionnez Save.


Les clés privées peuvent présenter un risque de sécurité en cas de compromission. Maintenant que votre clé est chargée dans Braze, supprimez le fichier que vous avez généré précédemment.
Étape 7 : Configurer l’enregistrement automatique des jetons
Lorsqu’un de vos utilisateurs s’abonne aux notifications push, votre application doit générer un jeton FCM sur son appareil avant de pouvoir lui envoyer des notifications push. Avec le SDK de Braze, vous pouvez activer l’enregistrement automatique des jetons FCM pour l’appareil de chaque utilisateur dans les fichiers de configuration Braze de votre projet.
Tout d’abord, accédez à la console Firebase, ouvrez votre projet, puis sélectionnez Settings > Project settings.

Sélectionnez Cloud Messaging, puis sous Firebase Cloud Messaging API (V1), copiez le numéro dans le champ Sender ID.

Ensuite, ouvrez votre projet Android Studio et utilisez votre Firebase Sender ID pour activer l’enregistrement automatique des jetons FCM dans votre braze.xml ou BrazeConfig.
Pour configurer l’enregistrement automatique des jetons FCM, ajoutez les lignes suivantes à votre fichier braze.xml :
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>
Remplacez FIREBASE_SENDER_ID par la valeur que vous avez copiée depuis les paramètres de votre projet Firebase. Votre braze.xml devrait ressembler à ceci :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string translatable="false" name="com_braze_api_key">12345ABC-6789-DEFG-0123-HIJK456789LM</string>
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">603679405392</string>
</resources>
Pour configurer l’enregistrement automatique des jetons FCM, ajoutez les lignes suivantes à votre BrazeConfig :
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")
Remplacez FIREBASE_SENDER_ID par la valeur que vous avez copiée depuis les paramètres de votre projet Firebase. Votre BrazeConfig devrait ressembler à ceci :
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setApiKey("12345ABC-6789-DEFG-0123-HIJK456789LM")
.setCustomEndpoint("sdk.iad-01.braze.com")
.setSessionTimeout(60)
.setHandlePushDeepLinksAutomatically(true)
.setGreatNetworkDataFlushInterval(10)
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("603679405392")
.build();
Braze.configure(this, brazeConfig);
val brazeConfig = BrazeConfig.Builder()
.setApiKey("12345ABC-6789-DEFG-0123-HIJK456789LM")
.setCustomEndpoint("sdk.iad-01.braze.com")
.setSessionTimeout(60)
.setHandlePushDeepLinksAutomatically(true)
.setGreatNetworkDataFlushInterval(10)
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("603679405392")
.build()
Braze.configure(this, brazeConfig)

Si vous préférez enregistrer manuellement les jetons FCM, définissez la propriété registeredPushToken sur l’instance Braze dans la méthode onCreate() de votre application.
// Kotlin
Braze.getInstance(context).registeredPushToken = "FCM_TOKEN"
// Java
Braze.getInstance(context).setRegisteredPushToken("FCM_TOKEN");
Utiliser plusieurs projets Firebase
Si votre application utilise plusieurs projets Firebase, suivez ces étapes :
- Conservez les notifications push Braze sur le projet Firebase par défaut initialisé à partir du fichier
google-services.jsonde votre application. - Si vous utilisez un service de messagerie Firebase personnalisé, suivez Enregistrer les Installation ID dans les services de messagerie Firebase personnalisés.
- Si votre application obtient un jeton push d’une autre manière, définissez manuellement
registeredPushTokencomme indiqué dans l’astuce précédente.

Firebase Cloud Messaging ne dispose pas d’API prise en charge pour récupérer un jeton à partir d’une FirebaseApp que vous initialisez manuellement. Les rappels de FirebaseMessagingService tels que onNewToken et onRegistered ne se déclenchent que pour le projet par défaut. Pour plus d’informations, consultez Configurer plusieurs projets dans la documentation Firebase.
Pour les détails de version, consultez les journaux des modifications du SDK.
Étape 8 : Supprimer les requêtes automatiques dans votre classe Application
Pour empêcher Braze de déclencher des requêtes réseau inutiles chaque fois que vous envoyez des notifications push silencieuses, supprimez toute requête réseau automatique configurée dans la méthode onCreate() de votre classe Application. Pour plus d’informations, consultez Référence développeur Android : Application.
Afficher les notifications
Étape 1 : Enregistrer le service Firebase Messaging de Braze
Vous pouvez créer un nouveau service Firebase Messaging, utiliser un service existant ou un service non-Braze. Choisissez l’option qui correspond le mieux à vos besoins spécifiques.
Braze inclut un service pour gérer la réception des notifications push et les intentions d’ouverture. Notre classe BrazeFirebaseMessagingService doit être enregistrée dans votre AndroidManifest.xml :
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Notre code de notification utilise également BrazeFirebaseMessagingService pour gérer le suivi des ouvertures et des clics. Ce service doit être enregistré dans le AndroidManifest.xml pour fonctionner correctement. N’oubliez pas non plus que Braze préfixe les notifications de notre système avec une clé unique afin de n’afficher que les notifications envoyées depuis nos systèmes. Vous pouvez enregistrer des services supplémentaires séparément pour afficher les notifications envoyées par d’autres services FCM. Consultez AndroidManifest.xml dans l’application d’exemple Firebase push.

Avant le SDK Braze 3.1.1, AppboyFcmReceiver était utilisé pour gérer les notifications push FCM. La classe AppboyFcmReceiver doit être retirée de votre manifeste et remplacée par l’intégration précédente.
Si vous avez déjà un service Firebase Messaging enregistré, vous pouvez transmettre les objets RemoteMessage à Braze via BrazeFirebaseMessagingService.handleBrazeRemoteMessage(). Cette méthode n’affichera une notification que si l’objet RemoteMessage provient de Braze et l’ignorera en toute sécurité dans le cas contraire.
Enregistrer les ID d’installation dans les services Firebase Messaging personnalisés
Si vous utilisez firebase-messaging v25.1.0 ou une version ultérieure, l’enregistrement Firebase utilise l’ID d’installation Firebase. Dans votre service Firebase Messaging personnalisé, remplacez onRegistered et définissez registeredPushToken.
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onRegistered(String installationId) {
super.onRegistered(installationId);
Braze.getInstance(this).setRegisteredPushToken(installationId);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// This Remote Message originated from Braze and a push notification was displayed.
// No further action is needed.
} else {
// This Remote Message did not originate from Braze.
// No action was taken and you can safely pass this Remote Message to other handlers.
}
}
}
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onRegistered(installationId: String) {
super.onRegistered(installationId)
Braze.getInstance(this).registeredPushToken = installationId
}
override fun onMessageReceived(remoteMessage: RemoteMessage?) {
super.onMessageReceived(remoteMessage)
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// This Remote Message originated from Braze and a push notification was displayed.
// No further action is needed.
} else {
// This Remote Message did not originate from Braze.
// No action was taken and you can safely pass this Remote Message to other handlers.
}
}
}
Si vous disposez d’un autre service Firebase Messaging que vous souhaitez également utiliser, vous pouvez spécifier un service Firebase Messaging de secours à appeler si votre application reçoit une notification push qui ne provient pas de Braze.
Dans votre braze.xml, spécifiez :
<bool name="com_braze_fallback_firebase_cloud_messaging_service_enabled">true</bool>
<string name="com_braze_fallback_firebase_cloud_messaging_service_classpath">com.company.OurFirebaseMessagingService</string>
ou définissez-le via la configuration à l’exécution :
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setFallbackFirebaseMessagingServiceEnabled(true)
.setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
.build();
Braze.configure(this, brazeConfig);
val brazeConfig = BrazeConfig.Builder()
.setFallbackFirebaseMessagingServiceEnabled(true)
.setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
.build()
Braze.configure(this, brazeConfig)
Étape 2 : Adapter les petites icônes aux directives de conception
Pour des informations générales sur les icônes de notification Android, consultez l’aperçu des notifications.
À partir d’Android N, vous devez mettre à jour ou supprimer les ressources de petites icônes de notification qui comportent des couleurs. Le système Android (et non le SDK Braze) ignore tous les canaux non-alpha et de transparence dans les icônes d’action et la petite icône de notification. Autrement dit, Android convertira toutes les parties de votre petite icône de notification en monochrome, à l’exception des régions transparentes.
Pour créer une ressource de petite icône de notification qui s’affiche correctement :
- Supprimez toutes les couleurs de l’image à l’exception du blanc.
- Toutes les autres régions non blanches de la ressource doivent être transparentes.

Un symptôme courant d’une ressource incorrecte est le rendu de la petite icône de notification sous la forme d’un carré monochrome plein. Cela est dû au fait que le système Android ne parvient pas à trouver de régions transparentes dans la ressource de la petite icône de notification.
Les grandes et petites icônes illustrées ci-dessous sont des exemples d’icônes correctement conçues :
![]()
Étape 3 : Configurer les icônes de notification
Spécifier les icônes dans braze.xml
Braze vous permet de configurer vos icônes de notification en spécifiant des ressources drawable dans votre braze.xml :
<drawable name="com_braze_push_small_notification_icon">REPLACE_WITH_YOUR_ICON</drawable>
<drawable name="com_braze_push_large_notification_icon">REPLACE_WITH_YOUR_ICON</drawable>
La définition d’une petite icône de notification est obligatoire. Si vous n’en définissez pas, Braze utilisera par défaut l’icône de l’application comme petite icône de notification, ce qui peut donner un résultat non optimal.
La définition d’une grande icône de notification est facultative mais recommandée.
Spécifier la couleur d’accentuation de l’icône
La couleur d’accentuation de l’icône de notification peut être remplacée dans votre braze.xml. Si aucune couleur n’est spécifiée, la couleur par défaut est le même gris que celui utilisé par Lollipop pour les notifications système.
<integer name="com_braze_default_notification_accent_color">0xFFf33e3e</integer>
Vous pouvez également utiliser une référence de couleur :
<color name="com_braze_default_notification_accent_color">@color/my_color_here</color>
Étape 4 : Ajouter des deep links
Activer l’ouverture automatique des deep links
Pour permettre à Braze d’ouvrir automatiquement votre application et tous les deep links lorsqu’une notification push est cliquée, définissez com_braze_handle_push_deep_links_automatically sur true dans votre braze.xml :
<bool name="com_braze_handle_push_deep_links_automatically">true</bool>
Ce paramètre peut également être défini via la configuration à l’exécution :
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setHandlePushDeepLinksAutomatically(true)
.build();
Braze.configure(this, brazeConfig);
val brazeConfig = BrazeConfig.Builder()
.setHandlePushDeepLinksAutomatically(true)
.build()
Braze.configure(this, brazeConfig)
Si vous souhaitez gérer les deep links de manière personnalisée, vous devrez créer un rappel push qui écoute les intentions de réception et d’ouverture push de Braze. Pour plus d’informations, consultez Utiliser un rappel pour les événements push.
Gestion des notifications au premier plan
Par défaut, lorsqu’une notification push arrive alors que votre application est au premier plan sur Android, le système l’affiche automatiquement. Pour que Braze traite le payload de la notification push (suivi analytique, gestion des deep links et traitement personnalisé), transmettez les données push entrantes à Braze dans votre méthode FirebaseMessagingService.onMessageReceived.
Fonctionnement
Lorsque vous appelez BrazeFirebaseMessagingService.handleBrazeRemoteMessage, Braze détermine si le payload est une notification push Braze et, le cas échéant, crée et affiche la notification avec la méthode NotificationManagerCompat. Contrairement à iOS, Android affiche les notifications indépendamment du fait que l’application soit au premier plan ou en arrière-plan.
package com.example.push;
import com.braze.push.BrazeFirebaseMessagingService;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
// Let Braze process the payload and display the notification
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// Braze successfully handled the push notification
} else {
// Handle non-Braze messages
}
}
}
package com.example.push
import com.braze.push.BrazeFirebaseMessagingService
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
// Let Braze process the payload and display the notification
if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
// Braze successfully handled the push notification
} else {
// Handle non-Braze messages
}
}
}
Pour plus d’informations, consultez l’exemple d’intégration Firebase dans le dépôt du SDK Android de Braze.
Personnaliser le comportement au premier plan
Si vous souhaitez un comportement personnalisé au premier plan, comme supprimer la notification système ou afficher une interface intégrée à l’application à la place, vous pouvez :
- Utiliser
subscribeToPushNotificationEventspour réagir aux événements push et gérer les deep links avec la méthodeBrazeNotificationUtils.routeUserWithNotificationOpenedIntent. Pour plus d’informations, consultez l’exemple push Firebase. - Créer et publier votre propre notification à l’aide d’une
IBrazeNotificationFactorypersonnalisée, ou supprimer la notification en n’appelant pasnotificationManager.notifydans votre flux de traitement.
Pour plus d’informations sur la personnalisation des notifications, consultez Usine de notifications personnalisée.
Créer des deep links personnalisés
Suivez les instructions de la documentation développeur Android sur les deep links si vous n’avez pas encore ajouté de deep links à votre application. Pour en savoir plus sur les deep links, consultez notre article FAQ.
Ajouter des deep links
Le tableau de bord de Braze permet de définir des deep links ou des URL web dans les Campaigns et Canvas de notifications push qui s’ouvriront lorsque la notification est cliquée.

Personnaliser le comportement de la pile de retour
Le SDK Android, par défaut, placera l’activité principale de lancement de votre application hôte dans la pile de retour lors du suivi des deep links push. Braze vous permet de définir une activité personnalisée à ouvrir dans la pile de retour à la place de votre activité principale de lancement, ou de désactiver complètement la pile de retour.
Par exemple, pour définir une activité appelée YourMainActivity comme activité de la pile de retour en utilisant la configuration à l’exécution :
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setPushDeepLinkBackStackActivityEnabled(true)
.setPushDeepLinkBackStackActivityClass(YourMainActivity.class)
.build();
Braze.configure(this, brazeConfig);
val brazeConfig = BrazeConfig.Builder()
.setPushDeepLinkBackStackActivityEnabled(true)
.setPushDeepLinkBackStackActivityClass(YourMainActivity.class)
.build()
Braze.configure(this, brazeConfig)
Consultez la configuration équivalente pour votre braze.xml. Notez que le nom de la classe doit être identique à celui renvoyé par Class.forName().
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">true</bool>
<string name="com_braze_push_deep_link_back_stack_activity_class_name">your.package.name.YourMainActivity</string>
Étape 5 : Définir les canaux de notification
Le SDK Android de Braze prend en charge les canaux de notification Android. Si une notification Braze ne contient pas l’ID d’un canal de notification ou si une notification Braze contient un ID de canal invalide, Braze affichera la notification avec le canal de notification par défaut défini dans le SDK. Les utilisateurs de l’entreprise utilisent les canaux de notification Android au sein de la plateforme pour regrouper les notifications.
Pour définir le nom visible par l’utilisateur du canal de notification Braze par défaut, utilisez BrazeConfig.setDefaultNotificationChannelName().
Pour définir la description visible par l’utilisateur du canal de notification Braze par défaut, utilisez BrazeConfig.setDefaultNotificationChannelDescription().
Mettez à jour toutes les Campaigns API avec le paramètre de l’objet push Android pour inclure le champ notification_channel. Si ce champ n’est pas spécifié, Braze enverra le payload de notification avec l’ID du canal de secours du tableau de bord.
En dehors du canal de notification par défaut, Braze ne créera aucun canal. Tous les autres canaux doivent être définis par programmation par l’application hôte, puis saisis dans le tableau de bord de Braze.
Le nom et la description du canal par défaut peuvent également être configurés dans braze.xml.
<string name="com_braze_default_notification_channel_name">Your channel name</string>
<string name="com_braze_default_notification_channel_description">Your channel description</string>
Étape 6 : Tester l’affichage des notifications et les analyses
Tester l’affichage
À ce stade, vous devriez pouvoir voir les notifications envoyées depuis Braze. Pour tester cela, accédez à la page Campaigns sur votre tableau de bord de Braze et créez une Campaign de notification push. Choisissez Android Push et concevez votre message. Cliquez ensuite sur l’icône en forme d’œil dans le composeur pour accéder à l’outil d’envoi de test. Saisissez l’ID utilisateur ou l’adresse e-mail de votre utilisateur actuel et cliquez sur Send Test. Vous devriez voir la notification push apparaître sur votre appareil.

Pour les problèmes liés à l’affichage des notifications push, consultez notre guide de résolution des problèmes.
Tester les analyses
À ce stade, vous devriez également disposer de l’enregistrement analytique pour les ouvertures de notifications push. Cliquer sur la notification lorsqu’elle arrive devrait entraîner une augmentation de 1 du compteur Direct Opens sur la page de résultats de votre Campaign. Consultez notre article sur les rapports push pour un détail des analyses push.
Pour les problèmes liés aux analyses push, consultez notre guide de résolution des problèmes.
Tester depuis la ligne de commande
Si vous souhaitez tester les notifications intégrées à l’application et les notifications push via l’interface en ligne de commande, vous pouvez envoyer une seule notification via le terminal à l’aide de cURL et de l’API d’envoi de messages. Vous devrez remplacer les champs suivants par les valeurs correctes pour votre cas de test :
YOUR_API_KEY(Accédez à Settings > API Keys.)YOUR_EXTERNAL_USER_ID(Recherchez un profil sur la page Search Users.)YOUR_KEY1(facultatif)YOUR_VALUE1(facultatif)
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_API_KEY}" -d '{
"external_user_ids":["YOUR_EXTERNAL_USER_ID"],
"messages": {
"android_push": {
"title":"Test push title",
"alert":"Test push",
"extra": {
"YOUR_KEY1":"YOUR_VALUE1"
}
}
}
}' https://rest.iad-01.braze.com/messages/send
Cet exemple utilise l’instance US-01. Si vous n’êtes pas sur cette instance, remplacez l’endpoint US-01 par votre endpoint.
Notifications push conversationnelles

L’initiative People and Conversations est une initiative Android pluriannuelle qui vise à mettre en avant les personnes et les conversations dans les surfaces système du téléphone. Cette priorité repose sur le fait que la communication et l’interaction avec d’autres personnes restent le domaine fonctionnel le plus apprécié et le plus important pour la majorité des utilisateurs Android, toutes catégories démographiques confondues.
Conditions d’utilisation
- Ce type de notification nécessite le SDK Braze pour Android v15.0.0+ et des appareils sous Android 11+.
- Les appareils ou SDK non pris en charge afficheront une notification push standard par défaut.
Cette fonctionnalité n’est disponible que via la REST API de Braze. Consultez l’objet push Android pour en savoir plus.
Erreurs de dépassement de quota FCM
Lorsque votre limite pour Firebase Cloud Messaging (FCM) est dépassée, Google renvoie des erreurs « quota exceeded » (quota dépassé). La limite par défaut pour FCM est de 600 000 requêtes par minute. Braze effectue de nouvelles tentatives d’envoi conformément aux bonnes pratiques recommandées par Google. Cependant, un volume important de ces erreurs peut prolonger le temps d’envoi de plusieurs minutes. Pour atténuer l’impact potentiel, Braze vous enverra une alerte indiquant que la limitation du débit est dépassée, ainsi que les mesures à prendre pour éviter ces erreurs.
Pour vérifier votre limite actuelle, accédez à votre Google Cloud Console > APIs & Services > Firebase Cloud Messaging API > Quotas & System Limits, ou consultez la page des quotas de l’API FCM.
Bonnes pratiques
Nous recommandons ces bonnes pratiques pour maintenir un faible volume de ces erreurs.
Demander une augmentation de la limitation du débit auprès de FCM
Pour demander une augmentation de la limitation du débit auprès de FCM, vous pouvez contacter directement le support Firebase ou procéder comme suit :
- Accédez à la page des quotas de l’API FCM.
- Localisez le quota Send requests per minute.
- Sélectionnez Edit Quota.
- Saisissez une nouvelle valeur et soumettez votre demande.
Appliquer une limitation du débit au niveau de l’espace de travail
Vous pouvez appliquer une limitation du débit au niveau de l’espace de travail pour les notifications push Android. Cela peut aider à réguler le rythme de distribution de vos messages sortants. Pour plus de détails, consultez la section Limites de débit de communication de l’espace de travail.
Limitation du débit
Les notifications push sont limitées en débit, alors n’hésitez pas à en envoyer autant que votre application en a besoin. iOS et les serveurs du service de notification push d’Apple (APNs) contrôleront la fréquence de livraison, et vous n’aurez pas de problèmes si vous en envoyez trop. Si vos notifications push sont limitées, elles peuvent être retardées jusqu’à la prochaine fois que l’appareil envoie un paquet de maintien de connexion ou reçoit une autre notification.
Configuration des notifications push
Étape 1 : Télécharger votre jeton APNs
Avant de pouvoir envoyer une notification push iOS à l’aide de Braze, vous devez télécharger votre fichier de notification push .p8, comme indiqué dans la documentation destinée aux développeurs d’Apple :
- Dans votre compte de développeur Apple, accédez à Certificates, Identifiers & Profiles.
- Sous Keys, sélectionnez All et cliquez sur le bouton d’ajout (+) en haut de la page.
- Sous Key Description, saisissez un nom unique pour la clé de signature.
- Sous Key Services, cochez la case Apple Push Notification service (APNs), puis cliquez sur Continue. Cliquez sur Confirm.
- Notez l’ID de la clé. Cliquez sur Download pour générer et télécharger la clé. Veillez à enregistrer le fichier téléchargé dans un endroit sécurisé, car vous ne pouvez le télécharger qu’une seule fois.
- Dans Braze, accédez à Paramètres > Paramètres des applications et téléchargez le fichier
.p8sous Apple Push Certificate. Vous pouvez charger votre certificat de notification push de développement ou de production. Pour tester les notifications push une fois que votre application est en direct dans l’App Store, il est recommandé de créer un espace de travail distinct pour la version de développement de votre application. - Lorsque vous y êtes invité, saisissez l’ID de bundle, l’ID de la clé et l’ID de l’équipe de votre application. Vous devrez également préciser si les notifications doivent être envoyées à l’environnement de développement ou de production de votre application, celui-ci étant défini par son profil de provisionnement.
- Lorsque vous avez terminé, sélectionnez Enregistrer.
Étape 2 : Activer les capacités push
Dans Xcode, accédez à la section Signing & Capabilities de la cible principale de l’application et ajoutez la capacité de notifications push.

Étape 3 : Configurer la gestion des notifications push
Vous pouvez utiliser le SDK Swift pour automatiser le traitement des notifications à distance reçues de Braze. C’est la méthode la plus simple pour gérer les notifications push et c’est la méthode recommandée.
Étape 3.1 : Activer l’automatisation dans la propriété push
Pour activer l’intégration push automatique, définissez la propriété automation de la configuration push sur true :
let configuration = Braze.Configuration(apiKey: "{YOUR-BRAZE-API-KEY}", endpoint: "{YOUR-BRAZE-API-ENDPOINT}")
configuration.push.automation = true
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"{YOUR-BRAZE-API-KEY}" endpoint:@"{YOUR-BRAZE-API-ENDPOINT}"];
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];
Cela indique au SDK de :
- Enregistrer votre application pour les notifications push sur le système.
- Demander l’autorisation/permission des notifications push lors de l’initialisation.
- Fournir dynamiquement des implémentations pour les méthodes du délégué système liées aux notifications push.

Les étapes d’automatisation effectuées par le SDK sont compatibles avec les intégrations de gestion des notifications push préexistantes dans votre code. Le SDK automatise uniquement le traitement des notifications à distance reçues de Braze. Tout gestionnaire système implémenté pour traiter vos propres notifications à distance ou celles d’un SDK tiers continuera à fonctionner lorsque automation est activé.

Le SDK doit être initialisé sur le thread principal pour activer l’automatisation des notifications push. L’initialisation du SDK doit avoir lieu avant que l’application n’ait terminé son lancement ou dans l’implémentation de votre AppDelegate application(_:didFinishLaunchingWithOptions:).
Si votre application nécessite une configuration supplémentaire avant d’initialiser le SDK, veuillez consulter la page de documentation sur l’initialisation différée.
Étape 3.2 : Remplacer des configurations individuelles (facultatif)
Pour un contrôle plus précis, chaque étape d’automatisation peut être activée ou désactivée individuellement :
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = true
configuration.push.automation.requestAuthorizationAtLaunch = false
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];
configuration.push.automation.requestAuthorizationAtLaunch = NO;
Consultez Braze.Configuration.Push.Automation pour toutes les options disponibles et automation pour plus d’informations sur le comportement de l’automatisation.

Si vous comptez sur les notifications push pour un comportement supplémentaire spécifique à votre application, vous pouvez peut-être quand même utiliser l’intégration push automatique au lieu de l’intégration manuelle des notifications push. La méthode subscribeToUpdates(_:) offre un moyen d’être notifié des notifications à distance traitées par Braze.
Étape 3.1 : S’enregistrer pour les notifications push avec APNs
Incluez l’exemple de code approprié dans la méthode déléguée application:didFinishLaunchingWithOptions: de votre application afin que les appareils de vos utilisateurs puissent s’enregistrer auprès d’APNs. Assurez-vous d’appeler tout le code d’intégration push dans le thread principal de votre application.
Braze fournit également des catégories push par défaut pour la prise en charge des boutons d’action push, qui doivent être ajoutées manuellement à votre code d’enregistrement push. Consultez les boutons d’action push pour les étapes d’intégration supplémentaires.
Ajoutez le code suivant à la méthode application:didFinishLaunchingWithOptions: du délégué de votre application.

L’exemple de code suivant inclut l’intégration de l’authentification push provisoire (lignes 5 et 6). Si vous ne prévoyez pas d’utiliser l’autorisation provisoire dans votre application, vous pouvez supprimer les lignes de code qui ajoutent UNAuthorizationOptionProvisional aux options de requestAuthorization.
Consultez les options de notification iOS pour en savoir plus sur l’authentification push provisoire.
application.registerForRemoteNotifications()
let center = UNUserNotificationCenter.current()
center.setNotificationCategories(Braze.Notifications.categories)
center.delegate = self
var options: UNAuthorizationOptions = [.alert, .sound, .badge]
if #available(iOS 12.0, *) {
options = UNAuthorizationOptions(rawValue: options.rawValue | UNAuthorizationOptions.provisional.rawValue)
}
center.requestAuthorization(options: options) { granted, error in
print("Notification authorization, granted: \(granted), error: \(String(describing: error))")
}
[application registerForRemoteNotifications];
UNUserNotificationCenter *center = UNUserNotificationCenter.currentNotificationCenter;
[center setNotificationCategories:BRZNotifications.categories];
center.delegate = self;
UNAuthorizationOptions options = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
if (@available(iOS 12.0, *)) {
options = options | UNAuthorizationOptionProvisional;
}
[center requestAuthorizationWithOptions:options
completionHandler:^(BOOL granted, NSError *_Nullable error) {
NSLog(@"Notification authorization, granted: %d, "
@"error: %@)",
granted, error);
}];

Vous devez assigner votre objet délégué en utilisant center.delegate = self de manière synchrone avant que votre application n’ait terminé son lancement, de préférence dans application:didFinishLaunchingWithOptions:. Ne pas le faire peut entraîner la perte de notifications push entrantes. Consultez la documentation Apple UNUserNotificationCenterDelegate pour en savoir plus.
Si votre application appelle wipeData() et réactive ensuite le SDK Braze dans la même exécution de l’application, vous devez appeler à nouveau registerForRemoteNotifications() pour récupérer le jeton d’appareil utilisé par le SDK.
Étape 3.2 : Enregistrer les jetons push avec Braze
Une fois l’enregistrement APNs terminé, passez le deviceToken résultant à Braze pour activer les notifications push pour l’utilisateur.
Ajoutez le code suivant à la méthode application(_:didRegisterForRemoteNotificationsWithDeviceToken:) de votre application :
AppDelegate.braze?.notifications.register(deviceToken: deviceToken)
Ajoutez le code suivant à la méthode application:didRegisterForRemoteNotificationsWithDeviceToken: de votre application :
[AppDelegate.braze.notifications registerDeviceToken:deviceToken];

La méthode déléguée application:didRegisterForRemoteNotificationsWithDeviceToken: est appelée à chaque fois après l’appel de application.registerForRemoteNotifications().
Si vous effectuez une migration vers Braze depuis un autre service push et que l’appareil de votre utilisateur est déjà enregistré auprès d’APNs, cette méthode collectera les jetons des enregistrements existants lors du prochain appel, et les utilisateurs n’auront pas besoin de se réabonner aux notifications push.
Étape 3.3 : Activer la gestion des notifications push
Ensuite, transmettez les notifications push reçues à Braze. Cette étape est nécessaire pour l’enregistrement des données analytiques push et la gestion des liens. Assurez-vous d’appeler tout le code d’intégration push dans le thread principal de votre application.
Gestion par défaut des notifications push
Pour activer la gestion par défaut des notifications push de Braze, ajoutez le code suivant à la méthode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) de votre application :
if let braze = AppDelegate.braze, braze.notifications.handleBackgroundNotification(
userInfo: userInfo,
fetchCompletionHandler: completionHandler
) {
return
}
completionHandler(.noData)
Ensuite, ajoutez le code suivant à la méthode userNotificationCenter(_:didReceive:withCompletionHandler:) de votre application :
if let braze = AppDelegate.braze, braze.notifications.handleUserNotification(
response: response,
withCompletionHandler: completionHandler
) {
return
}
completionHandler()
Pour activer la gestion par défaut des notifications push de Braze, ajoutez le code suivant à la méthode application:didReceiveRemoteNotification:fetchCompletionHandler: de votre application :
BOOL processedByBraze = AppDelegate.braze != nil && [AppDelegate.braze.notifications handleBackgroundNotificationWithUserInfo:userInfo
fetchCompletionHandler:completionHandler];
if (processedByBraze) {
return;
}
completionHandler(UIBackgroundFetchResultNoData);
Ensuite, ajoutez le code suivant à la méthode (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: de votre application :
BOOL processedByBraze = AppDelegate.braze != nil && [AppDelegate.braze.notifications handleUserNotificationWithResponse:response
withCompletionHandler:completionHandler];
if (processedByBraze) {
return;
}
completionHandler();
Gestion des notifications push au premier plan
Pour activer les notifications push au premier plan et permettre à Braze de les reconnaître lorsqu’elles sont reçues, implémentez UNUserNotificationCenter.userNotificationCenter(_:willPresent:withCompletionHandler:). Si un utilisateur appuie sur votre notification au premier plan, le délégué push userNotificationCenter(_:didReceive:withCompletionHandler:) sera appelé et Braze enregistrera l’événement de clic push.
func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions
) -> Void) {
if let braze = AppDelegate.braze {
// Forward notification payload to Braze for processing.
braze.notifications.handleForegroundNotification(notification: notification)
}
// Configure application's foreground notification display options.
if #available(iOS 14.0, *) {
completionHandler([.list, .banner])
} else {
completionHandler([.alert])
}
}
Pour activer les notifications push au premier plan et permettre à Braze de les reconnaître lorsqu’elles sont reçues, implémentez userNotificationCenter:willPresentNotification:withCompletionHandler:. Si un utilisateur appuie sur votre notification au premier plan, le délégué push userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: sera appelé et Braze enregistrera l’événement de clic push.
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
if (AppDelegate.braze != nil) {
// Forward notification payload to Braze for processing.
[AppDelegate.braze.notifications handleForegroundNotificationWithNotification:notification];
}
// Configure application's foreground notification display options.
if (@available(iOS 14.0, *)) {
completionHandler(UNNotificationPresentationOptionList | UNNotificationPresentationOptionBanner);
} else {
completionHandler(UNNotificationPresentationOptionAlert);
}
}
Tester les notifications
Si vous souhaitez tester les notifications in-app et push via la ligne de commande, vous pouvez envoyer une notification unique depuis le terminal via cURL et l’API d’envoi de messages. Vous devrez remplacer les champs suivants par les valeurs appropriées pour votre cas de test :
YOUR_API_KEY— disponible dans Paramètres > Clés API.YOUR_EXTERNAL_USER_ID— disponible sur la page Rechercher des utilisateurs. Consultez Attribution d’un ID utilisateur pour plus d’informations.YOUR_KEY1(facultatif)YOUR_VALUE1(facultatif)
Dans l’exemple suivant, l’instance US-01 est utilisée. Si vous n’êtes pas sur cette instance, consultez notre documentation API pour savoir vers quel endpoint envoyer vos requêtes.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_API_KEY}" -d '{
"external_user_ids":["YOUR_EXTERNAL_USER_ID"],
"messages": {
"apple_push": {
"alert":"Test push",
"extra": {
"YOUR_KEY1":"YOUR_VALUE1"
}
}
}
}' https://rest.iad-01.braze.com/messages/send
S’abonner aux mises à jour des notifications push
Pour accéder aux payloads de notifications push traités par Braze, utilisez la méthode Braze.Notifications.subscribeToUpdates(payloadTypes:_:).
Vous pouvez utiliser le paramètre payloadTypes pour spécifier si vous souhaitez vous abonner aux notifications impliquant des événements d’ouverture de push, des événements de réception de push, ou les deux.
// This subscription is maintained through a Braze cancellable, which will observe for changes until the subscription is cancelled.
// You must keep a strong reference to the cancellable to keep the subscription active.
// The subscription is canceled either when the cancellable is deinitialized or when you call its `.cancel()` method.
let cancellable = AppDelegate.braze?.notifications.subscribeToUpdates(payloadTypes: [.open, .received]) { payload in
print("Braze processed notification with title '\(payload.title)' and body '\(payload.body)'")
}

Gardez à l’esprit que les événements de réception de push ne se déclenchent que pour les notifications de premier plan et les notifications en arrière-plan de type content-available. Ils ne se déclenchent pas pour les notifications reçues lorsque l’application est terminée, ni pour les notifications en arrière-plan sans le champ content-available.
NSInteger filtersValue = BRZNotificationsPayloadTypeFilter.opened.rawValue | BRZNotificationsPayloadTypeFilter.received.rawValue;
BRZNotificationsPayloadTypeFilter *filters = [[BRZNotificationsPayloadTypeFilter alloc] initWithRawValue: filtersValue];
BRZCancellable *cancellable = [notifications subscribeToUpdatesWithPayloadTypes:filters update:^(BRZNotificationsPayload * _Nonnull payload) {
NSLog(@"Braze processed notification with title '%@' and body '%@'", payload.title, payload.body);
}];

Gardez à l’esprit que les événements de réception de push ne se déclenchent que pour les notifications de premier plan et les notifications en arrière-plan de type content-available. Ils ne se déclenchent pas pour les notifications reçues lorsque l’application est terminée, ni pour les notifications en arrière-plan sans le champ content-available.

Lorsque vous utilisez l’intégration push automatique, subscribeToUpdates(_:) est le seul moyen d’être informé des notifications distantes traitées par Braze. Les méthodes système UIAppDelegate et UNUserNotificationCenterDelegate ne sont pas appelées lorsque la notification est automatiquement traitée par Braze.

Créez votre abonnement aux notifications push dans application(_:didFinishLaunchingWithOptions:) pour vous assurer que votre abonnement est déclenché lorsqu’un utilisateur final appuie sur une notification alors que votre application est dans un état terminé.
Gestion des notifications au premier plan
Par défaut, lorsqu’une notification push arrive alors que votre application est au premier plan, iOS ne l’affiche pas automatiquement. Pour afficher les notifications push au premier plan et les suivre avec l’analytique de Braze, appelez la méthode handleForegroundNotification(notification:) dans votre implémentation de UNUserNotificationCenterDelegate.userNotificationCenter(_:willPresent:withCompletionHandler:).
Comment cela fonctionne
Lorsque vous appelez handleForegroundNotification(notification:), Braze traite le payload de la notification pour enregistrer les données analytiques et gérer les deep links ou les actions des boutons. Le comportement d’affichage réel est contrôlé par les UNNotificationPresentationOptions que vous transmettez au gestionnaire de complétion.
import BrazeKit
import UserNotifications
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
// Let Braze process the notification payload
if let braze = AppDelegate.braze {
braze.notifications.handleForegroundNotification(notification: notification)
}
// Control how the notification appears in the foreground
if #available(iOS 14.0, *) {
completionHandler([.banner, .list, .sound])
} else {
completionHandler([.alert, .sound])
}
}
}
Pour un exemple complet, consultez l’exemple d’intégration manuelle des notifications push dans le dépôt du SDK Swift de Braze.
Amorces push
Les campagnes d’amorce push encouragent vos utilisateurs à activer les notifications push sur leur appareil pour votre application. Cela peut se faire sans personnalisation du SDK grâce à notre amorce push sans code.
Gestion dynamique de la passerelle APNs
La gestion dynamique de la passerelle Apple Push Notification Service (APNs) améliore la fiabilité et l’efficacité des notifications push iOS en détectant automatiquement l’environnement APNs approprié. Auparavant, vous deviez sélectionner manuellement les environnements APNs (développement ou production) pour vos notifications push, ce qui pouvait parfois entraîner des configurations de passerelle incorrectes, des échecs de livraison et des erreurs BadDeviceToken.
Avec la gestion dynamique de la passerelle APNs, vous bénéficiez de :
- Fiabilité améliorée : les notifications sont toujours envoyées à l’environnement APNs correct, réduisant les échecs de livraison.
- Configuration simplifiée : vous n’avez plus besoin de gérer manuellement les paramètres de la passerelle APNs.
- Résilience aux erreurs : les valeurs de passerelle invalides ou manquantes sont gérées de manière transparente, garantissant un service ininterrompu.
Prérequis
Braze prend en charge la gestion dynamique de la passerelle APNs pour les notifications push sur iOS avec la version minimum de SDK suivante :
Comment ça fonctionne
Lorsqu’une application iOS s’intègre au SDK Swift de Braze, elle envoie des données relatives à l’appareil, y compris aps-environment, à l’API du SDK de Braze, si disponible. La valeur apns_gateway indique si l’application utilise l’environnement APNs de développement (dev) ou de production (prod).
Braze stocke également la valeur de passerelle signalée pour chaque appareil. Si une nouvelle valeur de passerelle valide est reçue, Braze met à jour automatiquement la valeur stockée.
Lorsque Braze envoie une notification push :
- Si une valeur de passerelle valide (dev ou prod) est stockée pour l’appareil, Braze l’utilise pour déterminer l’environnement APNs correct.
- Si aucune valeur de passerelle n’est stockée, Braze utilise par défaut l’environnement APNs configuré dans la page App Settings.
Foire aux questions
Pourquoi cette fonctionnalité a-t-elle été introduite ?
Grâce à la gestion dynamique de la passerelle APNs, l’environnement correct est sélectionné automatiquement. Auparavant, vous deviez configurer manuellement la passerelle APNs, ce qui pouvait entraîner des erreurs BadDeviceToken, l’invalidation de jetons et des problèmes potentiels de limitation du débit APNs.
Quel est l’impact sur les performances de livraison des notifications push ?
Cette fonctionnalité améliore les taux de livraison en acheminant systématiquement les jetons push vers l’environnement APNs correct, évitant ainsi les échecs causés par des passerelles mal configurées.
Puis-je désactiver cette fonctionnalité ?
La gestion dynamique de la passerelle APNs est activée par défaut et apporte des améliorations de fiabilité. Si vous avez des cas d’usage spécifiques nécessitant une sélection manuelle de la passerelle, contactez le support Braze.
À propos des notifications push pour Android TV

Bien qu’il ne s’agisse pas d’une fonctionnalité native, l’intégration des notifications push sur Android TV est rendue possible en exploitant le SDK Android de Braze et Firebase Cloud Messaging pour enregistrer un jeton push pour Android TV. Cependant, vous devez créer une interface utilisateur pour afficher le payload de la notification une fois celui-ci reçu.
Prérequis
Pour utiliser cette fonctionnalité, vous devez effectuer les étapes suivantes :
Configurer les notifications push
Pour configurer les notifications push pour Android TV :
- Créez une vue personnalisée dans votre application pour afficher vos notifications.
- Créez une fabrique de notifications personnalisée. Cela remplace le comportement par défaut du SDK et vous permet d’afficher manuellement les notifications. En renvoyant
null, cela empêche le SDK de traiter la notification et nécessite du code personnalisé pour l’afficher. Une fois ces étapes terminées, vous pouvez commencer à envoyer des notifications push vers Android TV. - (Facultatif) Pour suivre efficacement les analyses de clics, configurez le suivi des analyses de clics. Pour ce faire, créez un rappel push pour écouter les intentions d’ouverture et de réception des notifications push de Braze.

Ces notifications ne sont pas persistantes et ne sont visibles par l’utilisateur que lorsque l’appareil les affiche. Cela est dû au fait que le centre de notifications d’Android TV ne prend pas en charge l’historique des notifications.
Tester les notifications push Android TV
Pour vérifier que votre déploiement push fonctionne correctement, envoyez une notification depuis le tableau de bord de Braze comme vous le feriez normalement pour un appareil Android.
- Si l’application est fermée : le message push affiche une notification toast à l’écran.
- Si l’application est ouverte : vous avez la possibilité d’afficher le message dans votre propre interface hébergée. Suivez le style d’interface des messages in-app du SDK Android Mobile.
Bonnes pratiques
Pour les marketeurs utilisant Braze, le lancement d’une campagne vers Android TV est identique au lancement d’une notification push vers les applications mobiles Android. Pour cibler exclusivement ces appareils, sélectionnez l’application Android TV dans la segmentation.
La réponse de livraison et de clic renvoyée par FCM suit la même convention qu’un appareil Android mobile ; par conséquent, toute erreur est visible dans l’Observabilité de la messagerie.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK Braze Cordova. Une fois le SDK intégré, la fonctionnalité de notification push de base est activée par défaut. Pour utiliser les notifications push riches et les Push Stories, vous devrez les configurer individuellement. Pour utiliser les messages push iOS, vous devez également télécharger un certificat push valide.

Chaque fois que vous ajoutez, supprimez ou mettez à jour vos plugins Cordova, Cordova écrasera le Podfile dans le projet Xcode de votre application iOS. Cela signifie que vous devrez reconfigurer ces fonctionnalités à chaque modification de vos plugins Cordova.
Activer les deep links via les notifications push
Par défaut, le SDK Braze pour Cordova ne gère pas automatiquement les deep links provenant des notifications push. Pour activer les deep links via les notifications push, suivez les étapes de configuration décrites dans Création de liens profonds. Pour plus de détails sur ces options de configuration push et d’autres, consultez Configurations optionnelles.
Désactivation des notifications push de base (iOS uniquement)
Après avoir intégré le SDK Braze Cordova pour iOS, la fonctionnalité de base des notifications push est activée par défaut. Pour désactiver cette fonctionnalité dans votre application iOS, ajoutez ce qui suit à votre fichier config.xml. Pour plus d’informations, consultez Configurations optionnelles.
<platform name="ios">
<preference name="com.braze.ios_disable_automatic_push_registration" value="NO" />
<preference name="com.braze.ios_disable_automatic_push_handling" value="NO" />
</platform>
Prérequis
Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK Flutter Braze.
Configuration des notifications push
Étape 1 : Effectuer la configuration initiale
Étape 1.1 : S’inscrire aux notifications push
Inscrivez-vous aux notifications push à l’aide de l’API Firebase Cloud Messaging (FCM) de Google. Pour un guide complet, consultez les étapes suivantes du guide d’intégration push natif pour Android :
- Ajouter Firebase à votre projet.
- Ajouter Cloud Messaging à vos dépendances.
- Créer un compte de service.
- Générer des identifiants JSON.
- Charger vos identifiants JSON dans Braze.
Étape 1.2 : Obtenir votre identifiant d’expéditeur Google
Tout d’abord, accédez à la console Firebase, ouvrez votre projet, puis sélectionnez Settings > Project settings.

Sélectionnez Cloud Messaging, puis sous Firebase Cloud Messaging API (V1), copiez le Sender ID dans votre presse-papiers.

Étape 1.3 : Mettre à jour votre braze.xml
Ajoutez ce qui suit à votre fichier braze.xml. Remplacez FIREBASE_SENDER_ID par l’identifiant d’expéditeur que vous avez copié précédemment.
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>
Étape 1.1 : Charger les certificats APNs
Générez un certificat Apple Push Notification service (APNs) et chargez-le dans le tableau de bord de Braze. Pour un guide complet, consultez Charger votre certificat APNs.
Étape 1.2 : Ajouter la prise en charge des notifications push à votre application
Suivez le guide d’intégration natif iOS.
Étape 2 : Écouter les événements de notifications push (facultatif)
Pour écouter les événements de notifications push détectés et gérés par Braze, appelez subscribeToPushNotificationEvents() et transmettez un argument à exécuter.

Les événements de notifications push de Braze sont disponibles à la fois sur Android et iOS. En raison de différences entre les plateformes, iOS ne détecte les événements push de Braze que lorsqu’un utilisateur a interagi avec une notification.
// Create stream subscription
StreamSubscription pushEventsStreamSubscription;
pushEventsStreamSubscription = braze.subscribeToPushNotificationEvents((BrazePushEvent pushEvent) {
print("Push Notification event of type ${pushEvent.payloadType} seen. Title ${pushEvent.title}\n and deeplink ${pushEvent.url}");
// Handle push notification events
});
// Cancel stream subscription
pushEventsStreamSubscription.cancel();
Champs des événements de notifications push

En raison de limitations de la plateforme iOS, le SDK de Braze ne peut traiter les payloads push que lorsque l’application est au premier plan. Les écouteurs ne se déclenchent que pour le type d’événement push_opened sur iOS après qu’un utilisateur a interagi avec une notification push.
Pour une liste complète des champs de notifications push, consultez le tableau suivant :
| Nom du champ | Type | Description |
|---|---|---|
payloadType |
String | Spécifie le type de payload de la notification. Les deux valeurs envoyées par le SDK Flutter de Braze sont push_opened et push_received. Seuls les événements push_opened sont pris en charge sur iOS. |
url |
String | Spécifie l’URL ouverte par la notification. |
useWebview |
Boolean | Si true, l’URL s’ouvre dans l’application dans une vue web modale. Si false, l’URL s’ouvre dans le navigateur de l’appareil. |
title |
String | Représente le titre de la notification. |
body |
String | Représente le corps ou le contenu textuel de la notification. |
summaryText |
String | Représente le texte résumé de la notification. Ceci est mappé depuis subtitle sur iOS. |
badgeCount |
Number | Représente le nombre de badges de la notification. |
timestamp |
Number | Représente l’heure à laquelle le payload a été reçu par l’application. |
isSilent |
Boolean | Si true, le payload est reçu silencieusement. Pour plus de détails sur l’envoi de notifications push silencieuses sur Android, consultez Notifications push silencieuses sur Android. Pour plus de détails sur l’envoi de notifications push silencieuses sur iOS, consultez Notifications push silencieuses sur iOS. |
isBrazeInternal |
Boolean | Vaut true si le payload d’une notification a été envoyé pour une fonctionnalité interne du SDK, comme la synchronisation des Feature Flags ou le suivi des désinstallations. Le payload est reçu silencieusement pour l’utilisateur. |
imageUrl |
String | Spécifie l’URL associée à l’image de la notification. |
brazeProperties |
Object | Représente les propriétés Braze associées à la campagne (paires clé-valeur). |
ios |
Object | Représente les champs spécifiques à iOS. |
android |
Object | Représente les champs spécifiques à Android. |
Étape 3 : Tester l’affichage des notifications push
Pour tester votre intégration après avoir configuré les notifications push dans la couche native :
- Définissez un utilisateur actif dans l’application Flutter. Pour ce faire, initialisez votre plugin en appelant
braze.changeUser('your-user-id'). - Accédez à Campaigns et créez une nouvelle campagne de notifications push. Choisissez les plateformes que vous souhaitez tester.
- Composez votre notification de test et rendez-vous dans l’onglet Test. Ajoutez le même
user-idque l’utilisateur test et cliquez sur Send Test. - Vous devriez recevoir la notification sur votre appareil sous peu. Il se peut que vous deviez vérifier le centre de notifications ou mettre à jour les paramètres si elle ne s’affiche pas.

À partir de Xcode 14, vous pouvez tester les notifications push à distance sur un simulateur iOS.
Étape 4 : Ajouter des deep links (Android)

Sur Android, com_braze_handle_push_deep_links_automatically est défini par défaut sur false. Avec cette valeur par défaut, appuyer sur une notification push envoie toujours un événement push_opened à votre écouteur Dart, mais le SDK natif ne met pas votre application au premier plan et n’ouvre pas automatiquement la destination du deep link. Si votre application ne se lance pas lorsqu’une notification est appuyée, ce paramètre en est la cause la plus probable.
Pour permettre à Braze d’ouvrir automatiquement votre application et tout deep link lorsqu’une notification push est appuyée, définissez com_braze_handle_push_deep_links_automatically sur true dans votre braze.xml :
<bool name="com_braze_handle_push_deep_links_automatically">true</bool>
Ce paramètre peut également être défini via la configuration au moment de l’exécution dans votre code Android natif :
val brazeConfig = BrazeConfig.Builder()
.setHandlePushDeepLinksAutomatically(true)
.build()
Braze.configure(this, brazeConfig)
Si vous souhaitez gérer les deep links de manière personnalisée, utilisez l’écouteur subscribeToPushNotificationEvents() décrit à l’étape 2 pour router vous-même le champ url de l’événement push_opened. Pour plus d’informations, consultez Création de liens profonds.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK Android de Braze.
Configuration des notifications push
Les téléphones récents fabriqués par Huawei sont équipés de Huawei Mobile Services (HMS), un service utilisé pour envoyer des notifications push à la place de Firebase Cloud Messaging (FCM) de Google.
Étape 1 : Créer un compte développeur Huawei
Avant de commencer, vous devrez vous inscrire et configurer un compte développeur Huawei. Dans votre compte Huawei, accédez à My Projects > Project Settings > App Information et notez l’App ID et l’App secret.

Étape 2 : Créer une nouvelle application Huawei dans le tableau de bord de Braze
Dans le tableau de bord de Braze, accédez à App Settings, situé dans la navigation Settings.
Cliquez sur + Add App, indiquez un nom (par exemple Mon application Huawei) et sélectionnez Android comme plateforme.

Une fois votre nouvelle application Braze créée, localisez les paramètres des notifications push et sélectionnez Huawei comme fournisseur de notifications push. Renseignez ensuite votre Huawei Client Secret et votre Huawei App ID.

Étape 3 : Intégrer le SDK de messagerie Huawei dans votre application
Huawei a fourni un codelab d’intégration Android détaillant l’intégration du service de messagerie Huawei dans votre application. Suivez ces étapes pour commencer.
Après avoir terminé le codelab, vous devrez créer un service de messagerie Huawei personnalisé pour obtenir les jetons push et transmettre les messages au SDK Braze.
public class CustomPushService extends HmsMessageService {
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Braze.getInstance(this.getApplicationContext()).setRegisteredPushToken(token);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (BrazeHuaweiPushHandler.handleHmsRemoteMessageData(this.getApplicationContext(), remoteMessage.getDataOfMap())) {
// Braze has handled the Huawei push notification
}
}
}
class CustomPushService: HmsMessageService() {
override fun onNewToken(token: String?) {
super.onNewToken(token)
Braze.getInstance(applicationContext).setRegisteredPushToken(token!!)
}
override fun onMessageReceived(hmsRemoteMessage: RemoteMessage?) {
super.onMessageReceived(hmsRemoteMessage)
if (BrazeHuaweiPushHandler.handleHmsRemoteMessageData(applicationContext, hmsRemoteMessage?.dataOfMap)) {
// Braze has handled the Huawei push notification
}
}
}
Après avoir ajouté votre service push personnalisé, ajoutez les lignes suivantes à votre AndroidManifest.xml :
<service
android:name="package.of.your.CustomPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
Étape 4 : Gérer les notifications au premier plan
Par défaut, lorsqu’une notification push arrive alors que votre application est au premier plan, Huawei l’affiche automatiquement. Pour que Braze traite le payload de la notification push (suivi analytique, gestion des deep links et traitement personnalisé), transmettez les données push entrantes à Braze dans votre méthode HmsMessageService.onMessageReceived.
Lorsque vous appelez BrazeHuaweiPushHandler.handleHmsRemoteMessageData, Braze détermine si le payload est une notification push Braze et, le cas échéant, crée et affiche la notification. Pour en savoir plus, consultez la section Gérer les notifications au premier plan dans la documentation des notifications push Android.
Pour un exemple complet, consultez la référence du gestionnaire Huawei dans la documentation du SDK Android de Braze.
Étape 5 : Tester vos notifications push (facultatif)
À ce stade, vous avez créé une nouvelle application Android Huawei dans le tableau de bord de Braze, l’avez configurée avec vos identifiants développeur Huawei et avez intégré les SDK Braze et Huawei dans votre application.
Nous pouvons maintenant tester l’intégration en envoyant une nouvelle Campaign de notification push dans Braze.
Étape 5.1 : Créer une nouvelle Campaign de notification push
Sur la page Campaigns, créez une nouvelle Campaign et choisissez Push Notification comme type de message.
Après avoir nommé votre Campaign, choisissez Android Push comme plateforme push.

Composez ensuite votre notification push avec un titre et un message.
Étape 5.2 : Envoyer une notification push de test
Dans l’onglet Test, entrez votre identifiant utilisateur, que vous avez défini dans votre application à l’aide de la méthode changeUser(USER_ID_STRING), puis cliquez sur Send Test pour envoyer une notification push de test.

À ce stade, vous devriez recevoir une notification push de test sur votre appareil Huawei (HMS) de la part de Braze.
Étape 5.3 : Configurer la segmentation Huawei (facultatif)
Étant donné que votre application Huawei dans le tableau de bord de Braze repose sur la plateforme push Android, vous avez la possibilité d’envoyer des notifications push à tous les utilisateurs Android (Firebase Cloud Messaging et Huawei Mobile Services), ou de segmenter l’audience de votre Campaign pour cibler des applications spécifiques.
Pour envoyer des notifications push uniquement aux applications Huawei, créez un nouveau Segment et sélectionnez votre application Huawei dans la section Apps.

Bien entendu, si vous souhaitez envoyer la même notification push à tous les fournisseurs push Android, vous pouvez choisir de ne pas spécifier d’application, ce qui enverra la notification à toutes les applications Android configurées dans l’espace de travail actuel.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK React Native de Braze.
Configuration des notifications push
Étape 1 : Terminer la configuration initiale
Conditions préalables
Avant de pouvoir utiliser Expo pour les notifications push, il est nécessaire de configurer le plugin Braze Expo.
Étape 1.1 : Mettre à jour votre fichier app.json
Mettez ensuite à jour votre fichier app.json pour Android et iOS :
- Android : Ajoutez l’option
enableFirebaseCloudMessaging. - iOS : Ajoutez l’option
enableBrazeIosPush.
Étape 1.2 : Ajouter votre ID d’expéditeur Google
Tout d’abord, accédez à la console Firebase, ouvrez votre projet, puis sélectionnez Settings > Project settings.

Sélectionnez Cloud Messaging, puis sous Firebase Cloud Messaging API (V1), copiez le Sender ID dans votre presse-papiers.

Ensuite, ouvrez le fichier app.json de votre projet et attribuez à la propriété firebaseCloudMessagingSenderId le Sender ID figurant dans votre presse-papiers. Par exemple :
"firebaseCloudMessagingSenderId": "693679403398"
Étape 1.3 : Ajouter le chemin d’accès à votre JSON Google Services
Dans le fichier app.json de votre projet, ajoutez le chemin d’accès à votre fichier google-services.json. Ce fichier est nécessaire lors de la définition de enableFirebaseCloudMessaging: true dans votre configuration.
{
"expo": {
"android": {
"googleServicesFile": "PATH_TO_GOOGLE_SERVICES"
},
"plugins": [
[
"@braze/expo-plugin",
{
"androidApiKey": "YOUR-ANDROID-API-KEY",
"iosApiKey": "YOUR-IOS-API-KEY",
"enableBrazeIosPush": true,
"enableFirebaseCloudMessaging": true,
"firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
"androidHandlePushDeepLinksAutomatically": true
}
],
]
}
}
Notez que vous devrez utiliser ces paramètres au lieu des instructions de configuration natives si vous dépendez de bibliothèques de notifications push supplémentaires comme Expo Notifications.
Si vous n’utilisez pas le plugin Braze Expo ou si vous préférez configurer ces paramètres de manière native, inscrivez-vous pour les notifications push en vous référant au guide d’intégration native des notifications push Android.
Si vous n’utilisez pas le plugin Braze Expo ou si vous préférez configurer ces paramètres de manière native, inscrivez-vous pour les notifications push en suivant les étapes suivantes du guide d’intégration native des notifications push iOS :
Étape 1.1 : Demander les autorisations de notification push
Si vous ne prévoyez pas de demander les autorisations push au lancement de l’application, omettez l’appel requestAuthorizationWithOptions:completionHandler: dans votre AppDelegate. Passez ensuite à l’étape 2. Sinon, suivez le guide d’intégration native iOS.
Étape 1.2 (facultative) : Migrer votre clé de notification push
Si vous utilisiez auparavant expo-notifications pour gérer votre clé de notification push, exécutez expo fetch:ios:certs dans le dossier racine de votre application. Cela téléchargera votre clé de notification push (un fichier .p8), qui peut ensuite être importée dans le tableau de bord de Braze.
Étape 2 : Demander l’autorisation de notification push
Utilisez la méthode Braze.requestPushPermission() (disponible à partir de la version 1.38.0) pour demander l’autorisation des notifications push à l’utilisateur sur iOS et Android 13+. Pour Android 12 et versions antérieures, cette méthode est sans effet.
Cette méthode prend un paramètre requis qui spécifie les autorisations que le SDK doit demander à l’utilisateur sur iOS. Ces options n’ont aucun effet sur Android.
const permissionOptions = {
alert: true,
sound: true,
badge: true,
provisional: false
};
Braze.requestPushPermission(permissionOptions);
Étape 2.1 : Écouter les notifications push (facultatif)
Vous pouvez également vous abonner aux événements lorsque Braze a détecté et traité une notification push entrante. Utilisez la clé d’écoute Braze.Events.PUSH_NOTIFICATION_EVENT.

Les événements de réception push sur iOS ne se déclenchent que pour les notifications au premier plan et les notifications en arrière-plan avec content-available. Ils ne se déclenchent pas pour les notifications reçues lorsque l’application est fermée, ni pour les notifications en arrière-plan sans le champ content-available.
Braze.addListener(Braze.Events.PUSH_NOTIFICATION_EVENT, data => {
console.log(`Push Notification event of type ${data.payload_type} seen. Title ${data.title}\n and deeplink ${data.url}`);
console.log(JSON.stringify(data, undefined, 2));
});
Champs d’événements de notification push
Pour obtenir la liste complète des champs de notification push, consultez le tableau ci-dessous :
| Nom du champ | Type | Description |
|---|---|---|
payload_type |
Chaîne de caractères | Spécifie le type de payload de la notification. Les deux valeurs envoyées par le SDK React Native de Braze sont push_opened et push_received. |
url |
Chaîne de caractères | Spécifie l’URL ouverte par la notification. |
use_webview |
Valeur booléenne | Si la valeur est true, l’URL s’ouvrira in-app via une WebView modale. Si la valeur est false, l’URL s’ouvrira dans le navigateur de l’appareil. |
title |
Chaîne de caractères | Représente le titre de la notification. |
body |
Chaîne de caractères | Représente le corps ou le contenu textuel de la notification. |
summary_text |
Chaîne de caractères | Représente le texte résumé de la notification. Correspond à subtitle sur iOS. |
badge_count |
Nombre | Représente le nombre de badges de la notification. |
timestamp |
Nombre | Représente l’heure à laquelle le payload a été reçu par l’application. |
is_silent |
Valeur booléenne | Si la valeur est true, le payload est reçu silencieusement. Pour plus de détails sur l’envoi de notifications push silencieuses sur Android, consultez Notifications push silencieuses sur Android. Pour plus de détails sur l’envoi de notifications push silencieuses sur iOS, consultez Notifications push silencieuses sur iOS. |
is_braze_internal |
Valeur booléenne | La valeur sera true si un payload de notification a été envoyé pour une fonctionnalité interne du SDK, comme la synchronisation des Feature Flags ou le suivi des désinstallations. Le payload est reçu silencieusement par l’utilisateur. |
image_url |
Chaîne de caractères | Spécifie l’URL associée à l’image de la notification. |
braze_properties |
Objet | Représente les propriétés Braze associées à la Campaign (paires clé-valeur). |
ios |
Objet | Représente les champs spécifiques à iOS. |
android |
Objet | Représente les champs spécifiques à Android. |
Étape 3 : Activer la création de liens profonds (facultatif)
Pour permettre à Braze de gérer les deep links dans les composants React lorsqu’une notification push est cliquée, commencez par mettre en œuvre les étapes décrites dans la bibliothèque React Native Linking ou avec la solution de votre choix. Suivez ensuite les étapes supplémentaires ci-dessous.
Pour en savoir plus sur les deep links, consultez notre article de FAQ.

Si vous migrez une intégration push React Native existante, testez à nouveau les deep links après la mise à jour du SDK Braze, de React Native, d’Expo ou des bibliothèques associées. Vérifiez que :
- React Native Linking est toujours configuré et gère bien vos URL de deep links.
- La gestion du payload push initial sur iOS (voir Étape 3.1 : Enregistrer le payload de la notification push au lancement de l’application) est implémentée et toujours appelée au lancement de l’application.
- Toutes les méthodes de délégué ou d’écouteur natifs que vous utilisez pour gérer les événements de clic push sont toujours enregistrées et invoquées comme prévu.
Si vous utilisez le plugin Braze Expo, vous pouvez gérer automatiquement les deep links des notifications push en définissant androidHandlePushDeepLinksAutomatically sur true dans votre app.json.
Pour gérer manuellement les deep links, consultez la documentation native Android : Ajout de deep links.
Étape 3.1 : Enregistrer le payload de la notification push au lancement de l’application

Cette fonctionnalité est prise en charge à partir de la version 19.1.0 du SDK React Native.
Ajoutez populateInitialPushPayloadFromIntent à la méthode onCreate() de votre activité principale. Cet appel doit être effectué avant l’initialisation de React Native afin de capturer les données Intent initiales. Par exemple :
override fun onCreate(savedInstanceState: Bundle?) {
BrazeReactUtils.populateInitialPushPayloadFromIntent(intent)
super.onCreate(savedInstanceState)
}
Étape 3.2 : Gérer les deep links à partir d’un état fermé
En plus des scénarios de base gérés par React Native Linking, implémentez la méthode Braze.getInitialPushPayload et récupérez la valeur url pour prendre en compte les deep links provenant de notifications push qui ouvrent votre application lorsqu’elle n’est pas en cours d’exécution. Par exemple :
// Handles deep links when an app is launched from a hard close via push click.
Braze.getInitialPushPayload(pushPayload => {
if (pushPayload) {
console.log('Braze.getInitialPushPayload is ' + pushPayload);
showToast('Initial URL is ' + pushPayload.url);
handleOpenUrl({ pushPayload.url });
}
});

Cette méthode nécessite la configuration native de l’étape 3.1 pour votre plateforme. Si vous utilisez le plugin Braze Expo, cela peut être géré automatiquement.

Pour gérer les deep links à partir des notifications push sur iOS, vous devez également configurer la gestion des liens dans votre couche native iOS.
Cela inclut l’enregistrement d’un schéma d’URL personnalisé et l’implémentation d’un gestionnaire d’URL dans votre AppDelegate. Pour les instructions complètes de configuration, consultez Gestion des deep links dans la documentation native iOS.
Étape 3.1 : Enregistrer le payload de la notification push au lancement de l’application

Ignorez l’étape 3.1 si vous utilisez le plugin Braze Expo, car cette fonctionnalité est gérée automatiquement.
Pour iOS, ajoutez populateInitialPayloadFromLaunchOptions à la méthode didFinishLaunchingWithOptions de votre AppDelegate. Par exemple :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// ... Perform regular React Native setup
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:apiKey endpoint:endpoint];
configuration.triggerMinimumTimeInterval = 1;
configuration.logger.level = BRZLoggerLevelInfo;
Braze *braze = [BrazeReactBridge initBraze:configuration];
AppDelegate.braze = braze;
[self registerForPushNotifications];
[[BrazeReactUtils sharedInstance] populateInitialPayloadFromLaunchOptions:launchOptions];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
// ... Perform regular React Native setup
let configuration = Braze.Configuration(apiKey: apiKey, endpoint: endpoint)
configuration.triggerMinimumTimeInterval = 1
configuration.logger.level = .info
let braze = BrazeReactBridge.initBraze(configuration)
AppDelegate.braze = braze
registerForPushNotifications()
BrazeReactUtils.shared().populateInitialPayload(fromLaunchOptions: launchOptions)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
Étape 3.2 : Gérer les deep links à partir d’un état fermé
En plus des scénarios de base gérés par React Native Linking, implémentez la méthode Braze.getInitialPushPayload et récupérez la valeur url pour prendre en compte les deep links provenant de notifications push qui ouvrent votre application lorsqu’elle n’est pas en cours d’exécution. Par exemple :
// Handles deep links when an app is launched from a hard close via push click.
Braze.getInitialPushPayload(pushPayload => {
if (pushPayload) {
console.log('Braze.getInitialPushPayload is ' + pushPayload);
showToast('Initial URL is ' + pushPayload.url);
handleOpenUrl({ pushPayload.url });
}
});

Cette méthode nécessite la configuration native de l’étape 3.1 pour votre plateforme. Si vous utilisez le plugin Braze Expo, cela peut être géré automatiquement.
Étape 3.3 : Activer les liens universels (facultatif)
Pour activer la prise en charge des liens universels, implémentez un délégué Braze qui détermine s’il convient d’ouvrir une URL donnée, puis enregistrez-le auprès de votre instance Braze.
Créez un fichier BrazeReactDelegate.swift dans votre répertoire iOS et ajoutez le contenu suivant. Remplacez YOUR_DOMAIN_HOST par votre domaine réel.
import Foundation
import BrazeKit
import UIKit
class BrazeReactDelegate: NSObject, BrazeDelegate {
/// This delegate method determines whether to open a given URL.
/// Reference the context to get additional details about the URL payload.
func braze(_ braze: Braze, shouldOpenURL context: Braze.URLContext) -> Bool {
if let host = context.url.host,
host.caseInsensitiveCompare("YOUR_DOMAIN_HOST") == .orderedSame {
// Sample custom handling of universal links
let application = UIApplication.shared
let userActivity = NSUserActivity(activityType: NSUserActivityTypeBrowsingWeb)
userActivity.webpageURL = context.url
// Routes to the `continueUserActivity` method, which should be handled in your AppDelegate.
application.delegate?.application?(
application,
continue: userActivity,
restorationHandler: { _ in }
)
return false
}
// Let Braze handle links otherwise
return true
}
}
Ensuite, créez et enregistrez votre BrazeReactDelegate dans didFinishLaunchingWithOptions du fichier AppDelegate.swift de votre projet.
import BrazeKit
class AppDelegate: UIResponder, UIApplicationDelegate {
static var braze: Braze?
// Keep a strong reference to the BrazeDelegate so it is not deallocated.
private var brazeDelegate: BrazeReactDelegate?
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
// Other setup code (e.g., Braze initialization)
brazeDelegate = BrazeReactDelegate()
AppDelegate.braze?.delegate = brazeDelegate
return true
}
}
Créez un fichier BrazeReactDelegate.h dans votre répertoire iOS, puis ajoutez l’extrait de code suivant.
#import <Foundation/Foundation.h>
#import <BrazeKit/BrazeKit-Swift.h>
@interface BrazeReactDelegate: NSObject<BrazeDelegate>
@end
Ensuite, créez un fichier BrazeReactDelegate.m et ajoutez l’extrait de code suivant. Remplacez YOUR_DOMAIN_HOST par votre domaine réel.
#import "BrazeReactDelegate.h"
#import <UIKit/UIKit.h>
@implementation BrazeReactDelegate
/// This delegate method determines whether to open a given URL.
///
/// Reference the `BRZURLContext` object to get additional details about the URL payload.
- (BOOL)braze:(Braze *)braze shouldOpenURL:(BRZURLContext *)context {
if ([[context.url.host lowercaseString] isEqualToString:@"YOUR_DOMAIN_HOST"]) {
// Sample custom handling of universal links
UIApplication *application = UIApplication.sharedApplication;
NSUserActivity* userActivity = [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
userActivity.webpageURL = context.url;
// Routes to the `continueUserActivity` method, which should be handled in your `AppDelegate`.
[application.delegate application:application
continueUserActivity:userActivity restorationHandler:^(NSArray<id<UIUserActivityRestoring>> * _Nullable restorableObjects) {}];
return NO;
}
// Let Braze handle links otherwise
return YES;
}
@end
Ensuite, créez et enregistrez votre BrazeReactDelegate dans didFinishLaunchingWithOptions du fichier AppDelegate.m de votre projet.
#import "BrazeReactUtils.h"
#import "BrazeReactDelegate.h"
@interface AppDelegate ()
// Keep a strong reference to the BrazeDelegate to ensure it is not deallocated.
@property (nonatomic, strong) BrazeReactDelegate *brazeDelegate;
@end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Other setup code
self.brazeDelegate = [[BrazeReactDelegate alloc] init];
braze.delegate = self.brazeDelegate;
}
Pour un exemple d’intégration, consultez notre application modèle dans cet exemple d’AppDelegate.
Étape 4 : Gérer les notifications au premier plan
La gestion des notifications au premier plan fonctionne différemment selon votre plateforme et votre configuration. Choisissez l’approche qui correspond à votre intégration :
Pour iOS, la gestion des notifications au premier plan est identique à celle de l’intégration native Swift. Appelez handleForegroundNotification(notification:) dans votre implémentation de UNUserNotificationCenterDelegate.userNotificationCenter(_:willPresent:withCompletionHandler:).
Pour des informations détaillées et des exemples de code, consultez Gestion des notifications au premier plan dans la documentation des notifications push Swift.
Pour Android, la gestion des notifications au premier plan est identique à celle de l’intégration native Android. Appelez BrazeFirebaseMessagingService.handleBrazeRemoteMessage dans votre méthode FirebaseMessagingService.onMessageReceived.
Pour des informations détaillées et des exemples de code, consultez Gestion des notifications au premier plan dans la documentation des notifications push Android.
Dans le flux de travail géré par Expo, il n’est pas nécessaire d’appeler directement les gestionnaires de notifications natifs. Utilisez l’API Expo Notifications pour contrôler la présentation au premier plan, tandis que le plugin Braze Expo gère automatiquement le traitement natif.
import * as Notifications from 'expo-notifications';
import Braze from '@braze/react-native-sdk';
// Control foreground presentation in Expo
Notifications.setNotificationHandler({
handleNotification: async () => ({
shouldShowAlert: true, // Show alert while in foreground
shouldPlaySound: false,
shouldSetBadge: false,
}),
});
// React to Braze push events
const subscription = Braze.addListener('pushNotificationEvent', (event) => {
console.log('Braze push event', {
type: event.payload_type, // "push_received" | "push_opened"
title: event.title,
url: event.url,
is_silent: event.is_silent,
});
// Handle deep links, custom behavior, etc.
});
// Handle initial payload when app launches via push
Braze.getInitialPushPayload((payload) => {
if (payload) {
console.log('Initial push payload', payload);
}
});

Dans le flux de travail géré par Expo, le plugin Braze Expo gère automatiquement le traitement push natif. Vous contrôlez l’interface utilisateur au premier plan via les options de présentation des notifications Expo indiquées ci-dessus.
Pour les intégrations en flux de travail bare, suivez plutôt les approches natives iOS et Android.
Étape 5 : Envoyer une notification push de test
À ce stade, vous devriez pouvoir envoyer des notifications aux appareils. Suivez les étapes ci-dessous pour tester votre intégration de notification push.

À partir de macOS 13, sur certains appareils, vous pouvez tester les notifications push iOS sur un simulateur iOS 16+ fonctionnant avec Xcode 14 ou une version ultérieure. Pour plus de détails, consultez les notes de version de Xcode 14.
- Définissez un utilisateur actif dans l’application React Native en appelant la méthode
Braze.changeUserId('your-user-id'). - Accédez à Campaigns et créez une nouvelle Campaign de notification push. Choisissez les plateformes que vous souhaitez tester.
- Rédigez votre notification de test et accédez à l’onglet Test. Ajoutez le même
user-idque l’utilisateur test et cliquez sur Send Test. Vous devriez recevoir la notification sur votre appareil sous peu.

Utiliser le plugin Expo
Après avoir configuré les notifications push pour Expo, vous pouvez l’utiliser pour gérer les comportements suivants des notifications push — sans avoir besoin d’écrire du code dans les couches natives Android ou iOS.
Transférer les notifications push Android vers un FMS supplémentaire
Si vous souhaitez utiliser un Firebase Messaging Service (FMS) supplémentaire, vous pouvez spécifier un FMS de secours à appeler lorsque votre application reçoit une notification push qui ne provient pas de Braze. Par exemple :
{
"expo": {
"plugins": [
[
"@braze/expo-plugin",
{
...
"androidFirebaseMessagingFallbackServiceEnabled": true,
"androidFirebaseMessagingFallbackServiceClasspath": "com.company.OurFirebaseMessagingService"
}
]
]
}
}
Utiliser les extensions d’application avec Expo Application Services
Si vous utilisez Expo Application Services (EAS) et que vous avez activé enableBrazeIosRichPush ou enableBrazeIosPushStories, vous devrez déclarer les identifiants de bundle correspondants pour chaque extension d’application dans votre projet. Il existe plusieurs façons d’aborder cette étape, selon la manière dont votre projet est configuré pour gérer la signature de code avec EAS.
Une approche consiste à utiliser la configuration appExtensions dans votre fichier app.json en suivant la documentation sur les extensions d’application d’Expo. Vous pouvez également configurer le paramètre multitarget dans votre fichier credentials.json en suivant la documentation sur les identifiants locaux d’Expo.
Résolution des problèmes
Voici les étapes courantes de résolution des problèmes pour les intégrations de notifications push avec le SDK Braze React Native et le plugin Expo.
Les notifications push ont cessé de fonctionner
Si les notifications push via le plugin Expo ont cessé de fonctionner :
- Vérifiez que le SDK Braze continue de suivre les sessions.
- Vérifiez que le SDK n’a pas été désactivé par un appel explicite ou implicite à
wipeData. - Examinez les mises à jour récentes d’Expo ou de ses bibliothèques associées, car il peut y avoir des conflits avec votre configuration Braze.
- Examinez les dépendances de projet récemment ajoutées et vérifiez si elles remplacent manuellement vos méthodes déléguées de notification push existantes.

Pour les intégrations iOS, vous pouvez également consulter notre tutoriel de configuration des notifications push pour vous aider à identifier les conflits potentiels avec les dépendances de votre projet.
Le jeton d’appareil ne s’enregistre pas auprès de Braze
Si votre jeton d’appareil ne s’enregistre pas auprès de Braze, commencez par consulter Les notifications push ont cessé de fonctionner.
Si le problème persiste, une dépendance distincte peut interférer avec votre configuration de notification push Braze. Vous pouvez essayer de la supprimer ou appeler manuellement Braze.registerPushToken à la place.
Les deep links depuis les notifications push ne s’ouvrent pas
Si les deep links depuis les notifications push cessent de s’ouvrir après une migration, vérifiez les points suivants :
- Vérifiez que votre configuration React Native Linking est toujours valide dans votre application mise à jour.
- Pour les intégrations natives iOS, confirmez que vous avez implémenté
populateInitialPayloadFromLaunchOptionsetBraze.getInitialPushPayloadafin que, lorsque l’application est lancée depuis un état terminé, elle puisse récupérer le payload push initial et transmettre sonurlà votre gestionnaire de deep links. - Si vous utilisez le plugin Braze Expo, vérifiez que
androidHandlePushDeepLinksAutomaticallyest correctement configuré pour votre déploiement. - Examinez les dépendances récemment ajoutées pour détecter d’éventuelles surcharges dans la gestion des notifications ou le comportement du délégué d’application.
Si vous avez effectué ces vérifications et que le problème persiste, ouvrez un ticket d’assistance et incluez les journaux du SDK ainsi que les étapes de reproduction.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK Web de Braze. Il sera également nécessaire de configurer les notifications push pour le SDK Web. Veuillez noter que vous ne pouvez envoyer des notifications push qu’aux utilisateurs iOS et iPadOS qui utilisent Safari v16.4 ou une version ultérieure.
Configuration des notifications push Safari pour mobile
Étape 1 : Créer un fichier manifeste
Un manifeste d’application web est un fichier JSON qui contrôle la manière dont votre site web est présenté lorsqu’il est installé sur l’écran d’accueil d’un utilisateur.
Par exemple, vous pouvez définir la couleur du thème d’arrière-plan et l’icône utilisés par le sélecteur d’applications, choisir un affichage plein écran pour ressembler à une application native, ou encore définir si l’application doit s’ouvrir en mode paysage ou portrait.
Créez un nouveau fichier manifest.json dans le répertoire racine de votre site web, avec les champs obligatoires suivants.
{
"name": "your app name",
"short_name": "your app name",
"display": "fullscreen",
"icons": [{
"src": "favicon.ico",
"sizes": "128x128",
}]
}
La liste complète des champs pris en charge est disponible dans la documentation MDN sur les manifestes d’applications web.
Étape 2 : Lier le fichier manifeste
Ajoutez la balise <link> suivante dans l’élément <head> de votre site web, en pointant vers l’emplacement où votre fichier manifeste est hébergé.
<link rel="manifest" href="/manifest.json" />
Étape 3 : Ajouter un service de traitement
Votre site web doit disposer d’un fichier de service de traitement qui importe la bibliothèque de service de traitement de Braze, comme décrit dans notre guide d’intégration des notifications push Web.
Étape 4 : Ajouter à l’écran d’accueil
Les navigateurs populaires (tels que Safari, Chrome, FireFox et Edge) prennent tous en charge les notifications push Web dans leurs versions récentes. Pour demander l’autorisation des notifications push sur iOS ou iPadOS, votre site web doit être ajouté à l’écran d’accueil de l’utilisateur en sélectionnant Partager > Ajouter à l’écran d’accueil. La fonctionnalité Ajouter à l’écran d’accueil permet aux utilisateurs de mettre votre site web en favori, en ajoutant votre icône à leur écran d’accueil.

Étape 5 : Afficher l’invite de notification push native
Une fois l’application ajoutée à votre écran d’accueil, vous pouvez demander l’autorisation des notifications push lorsque l’utilisateur effectue une action (comme cliquer sur un bouton). Cela peut être fait à l’aide de la méthode requestPushPermission, ou avec un message in-app d’amorce push sans code.

Après avoir accepté ou refusé l’invite, vous devez supprimer et réinstaller le site web sur votre écran d’accueil pour pouvoir afficher à nouveau l’invite.

Par exemple :
import { requestPushPermission } from "@braze/web-sdk";
button.onclick = function(){
requestPushPermission(() => {
console.log(`User accepted push prompt`);
}, (temporary) => {
console.log(`User ${temporary ? "temporarily dismissed" : "permanently denied"} push prompt`);
});
};
Étapes suivantes
Ensuite, envoyez-vous un message test pour valider l’intégration. Une fois votre intégration terminée, vous pouvez utiliser nos messages d’amorce push sans code pour optimiser vos taux d’abonnement aux notifications push.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK Unity Braze.
Configuration des notifications push
Étape 1 : Configurer la plateforme
Étape 1.1 : Activer Firebase
Pour commencer, suivez la documentation de configuration Firebase Unity.

L’intégration du SDK Firebase Unity peut entraîner le remplacement de votre AndroidManifest.xml. Si cela se produit, assurez-vous de le restaurer à l’original.
Étape 1.2 : Définir vos identifiants Firebase
Vous devez saisir votre clé de serveur Firebase et votre ID d’expéditeur dans le tableau de bord de Braze. Pour ce faire, connectez-vous à la console développeur Firebase et sélectionnez votre projet Firebase. Ensuite, sélectionnez Cloud Messaging sous Settings, puis copiez la clé de serveur et l’ID d’expéditeur :
Dans Braze, sélectionnez votre application Android sur la page App Settings sous Manage Settings. Ensuite, saisissez votre clé de serveur Firebase dans le champ Firebase Cloud Messaging Server Key et l’ID d’expéditeur Firebase dans le champ Firebase Cloud Messaging Sender ID.

Étape 1.1 : Vérifier la méthode d’intégration
Braze fournit une solution Unity native pour automatiser les intégrations push iOS. Si vous préférez configurer et gérer votre intégration manuellement, consultez Swift : Notifications push.
Sinon, passez à l’étape suivante.

Notre solution automatique de notifications push utilise la fonctionnalité d’autorisation provisoire d’iOS 12 et n’est pas compatible avec la fenêtre pop-up native de demande de notification push.
Étape 1.1 : Activer ADM
- Créez un compte sur le portail développeur Amazon Apps & Games si ce n’est pas déjà fait.
- Obtenez les identifiants OAuth (Client ID et Client Secret) ainsi qu’une clé API ADM.
- Activez Automatic ADM Registration Enabled dans la fenêtre de configuration Unity de Braze.
- Vous pouvez également ajouter la ligne suivante à votre fichier
res/values/braze.xmlpour activer l’enregistrement ADM :
- Vous pouvez également ajouter la ligne suivante à votre fichier
<bool name="com_braze_push_adm_messaging_registration_enabled">true</bool>
Étape 2 : Configurer les notifications push
Étape 2.1 : Configurer les paramètres push
Le SDK Braze peut gérer automatiquement l’enregistrement push auprès des serveurs Firebase Cloud Messaging pour que les appareils reçoivent des notifications push. Dans Unity, activez Automate Unity Android Integration, puis configurez les paramètres de Push Notification suivants.
| Paramètre | Description |
|---|---|
| Automatic Firebase Cloud Messaging Registration Enabled | Indique au SDK Braze de récupérer et d’envoyer automatiquement un jeton push FCM pour un appareil. |
| Firebase Cloud Messaging Sender ID | L’ID d’expéditeur issu de votre console Firebase. |
| Handle Push Deeplinks Automatically | Détermine si le SDK doit gérer l’ouverture des deep links ou le lancement de l’application lorsqu’une notification push est cliquée. |
| Small Notification Icon Drawable | Référence de ressource drawable Android pour la petite icône affichée à la réception d’une notification push. Saisissez la référence complète incluant le préfixe @drawable/ (par exemple, @drawable/hourglass_icon). L’intégration automatique inscrit cette valeur dans braze.xml telle quelle. Si vous laissez ce champ vide, la notification utilise l’icône de l’application comme petite icône. |
| Large Notification Icon Drawable | Grande icône facultative pour les notifications. Utilisez le même format @drawable/ que pour la petite icône (par exemple, @drawable/my_large_icon). |

Small Notification Icon Drawable et Large Notification Icon Drawable apparaissent sous Push Configuration dans Braze > Braze Configuration. Les deux valeurs sont inscrites dans braze.xml telles que vous les saisissez. Incluez le préfixe @drawable/ vous-même — l’intégration Unity de Braze ne l’ajoute pas automatiquement (par exemple, <drawable name="com_braze_push_small_notification_icon">@drawable/hourglass_icon</drawable>).
Étape 2.1 : Charger votre jeton APNs
Avant de pouvoir envoyer une notification push iOS à l’aide de Braze, vous devez télécharger votre fichier de notification push .p8, comme indiqué dans la documentation destinée aux développeurs d’Apple :
- Dans votre compte de développeur Apple, accédez à Certificates, Identifiers & Profiles.
- Sous Keys, sélectionnez All et cliquez sur le bouton d’ajout (+) en haut de la page.
- Sous Key Description, saisissez un nom unique pour la clé de signature.
- Sous Key Services, cochez la case Apple Push Notification service (APNs), puis cliquez sur Continue. Cliquez sur Confirm.
- Notez l’ID de la clé. Cliquez sur Download pour générer et télécharger la clé. Veillez à enregistrer le fichier téléchargé dans un endroit sécurisé, car vous ne pouvez le télécharger qu’une seule fois.
- Dans Braze, accédez à Paramètres > Paramètres des applications et téléchargez le fichier
.p8sous Apple Push Certificate. Vous pouvez charger votre certificat de notification push de développement ou de production. Pour tester les notifications push une fois que votre application est en direct dans l’App Store, il est recommandé de créer un espace de travail distinct pour la version de développement de votre application. - Lorsque vous y êtes invité, saisissez l’ID de bundle, l’ID de la clé et l’ID de l’équipe de votre application. Vous devrez également préciser si les notifications doivent être envoyées à l’environnement de développement ou de production de votre application, celui-ci étant défini par son profil de provisionnement.
- Lorsque vous avez terminé, sélectionnez Enregistrer.
Étape 2.2 : Activer le push automatique
Ouvrez les paramètres de configuration Braze dans l’éditeur Unity en naviguant vers Braze > Braze Configuration.
Cochez Integrate Push With Braze pour enregistrer automatiquement les utilisateurs aux notifications push, transmettre les jetons push à Braze, suivre les données analytiques d’ouverture push et bénéficier de notre gestion par défaut des notifications push.
Étape 2.3 : Activer le push en arrière-plan (facultatif)
Cochez Enable Background Push si vous souhaitez activer le background mode pour les notifications push. Cela permet au système de réveiller votre application depuis l’état suspended lorsqu’une notification push arrive, permettant à votre application de télécharger du contenu en réponse aux notifications push. Cocher cette option est nécessaire pour notre fonctionnalité de suivi de désinstallation.

Étape 2.4 : Désactiver l’enregistrement automatique (facultatif)
Les utilisateurs qui n’ont pas encore donné leur consentement aux notifications push seront automatiquement autorisés pour le push à l’ouverture de votre application. Pour désactiver cette fonctionnalité et enregistrer manuellement les utilisateurs pour le push, cochez Disable Automatic Push Registration.
- Si Disable Provisional Authorization n’est pas coché sur iOS 12 ou version ultérieure, l’utilisateur sera provisoirement (silencieusement) autorisé à recevoir des notifications push discrètes. Si l’option est cochée, l’utilisateur verra la demande de permission push native.
- Si vous devez configurer le moment exact où la demande est affichée à l’exécution, désactivez l’enregistrement automatique depuis l’éditeur de configuration Braze et utilisez
AppboyBinding.PromptUserForPushPermissions()à la place.

Étape 2.1 : Mettre à jour AndroidManifest.xml
Si votre application ne dispose pas d’un AndroidManifest.xml, vous pouvez utiliser le modèle suivant. Sinon, si vous avez déjà un AndroidManifest.xml, assurez-vous que les sections manquantes suivantes sont ajoutées à votre AndroidManifest.xml existant.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="REPLACE_WITH_YOUR_PACKAGE_NAME">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<permission
android:name="REPLACE_WITH_YOUR_PACKAGE_NAME.permission.RECEIVE_ADM_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="REPLACE_WITH_YOUR_PACKAGE_NAME.permission.RECEIVE_ADM_MESSAGE" />
<uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE" />
<application android:icon="@drawable/app_icon"
android:label="@string/app_name">
<!-- Calls the necessary Braze methods to ensure that analytics are collected and that push notifications are properly forwarded to the Unity application. -->
<activity android:name="com.braze.unity.BrazeUnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:screenOrientation="sensor">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.braze.push.BrazeAmazonDeviceMessagingReceiver" android:permission="com.amazon.device.messaging.permission.SEND">
<intent-filter>
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
<category android:name="REPLACE_WITH_YOUR_PACKAGE_NAME" />
</intent-filter>
</receiver>
</application>
</manifest>
Étape 2.2 : Enregistrer votre clé API ADM
Tout d’abord, générez une clé API ADM pour votre application, puis enregistrez la clé dans un fichier nommé api_key.txt et ajoutez-le dans le répertoire Assets/ de votre projet.

Amazon ne reconnaîtra pas votre clé si api_key.txt contient des caractères d’espace blanc, comme un retour à la ligne en fin de fichier.
Ensuite, dans votre fichier mainTemplate.gradle, ajoutez le code suivant :
task copyAmazon(type: Copy) {
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
from unityProjectPath + '/Assets/api_key.txt'
into new File(projectDir, 'src/main/assets')
}
preBuild.dependsOn(copyAmazon)
Étape 2.3 : Ajouter le Jar ADM
Le fichier Jar ADM requis peut être placé n’importe où dans votre projet conformément à la documentation Unity JAR.
Étape 2.4 : Ajouter le Client Secret et le Client ID à votre tableau de bord de Braze
Enfin, vous devez ajouter le Client Secret et le Client ID obtenus à l’étape 1 sur la page Manage Settings du tableau de bord de Braze.

Étape 3 : Configurer les écouteurs push
Étape 3.1 : Activer l’écouteur de réception push
L’écouteur de réception push est déclenché lorsqu’un utilisateur reçoit une notification push. Pour envoyer le payload push à Unity, définissez le nom de votre objet de jeu et la méthode de rappel de l’écouteur de réception push sous Set Push Received Listener.
Étape 3.2 : Activer l’écouteur d’ouverture push
L’écouteur d’ouverture push est déclenché lorsqu’un utilisateur lance l’application en cliquant sur une notification push. Pour envoyer le payload push à Unity, définissez le nom de votre objet de jeu et la méthode de rappel de l’écouteur d’ouverture push sous Set Push Opened Listener.
Étape 3.3 : Activer l’écouteur de suppression push
L’écouteur de suppression push est déclenché lorsqu’un utilisateur balaie ou ignore une notification push. Pour envoyer le payload push à Unity, définissez le nom de votre objet de jeu et la méthode de rappel de l’écouteur de suppression push sous Set Push Deleted Listener.
Exemple d’écouteur push
L’exemple suivant implémente l’objet de jeu BrazeCallback en utilisant respectivement les méthodes de rappel PushNotificationReceivedCallback, PushNotificationOpenedCallback et PushNotificationDeletedCallback.

public class MainMenu : MonoBehaviour {
void PushNotificationReceivedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationReceivedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification received: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push received Notification event: " + pushNotification);
#endif
}
void PushNotificationOpenedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationOpenedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification opened: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push opened Notification event: " + pushNotification);
#endif
}
void PushNotificationDeletedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationDeletedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification dismissed: " + pushNotification);
#endif
}
}
Étape 3.1 : Activer l’écouteur de réception push
L’écouteur de réception push est déclenché lorsqu’un utilisateur reçoit une notification push alors qu’il utilise activement l’application (par exemple lorsque l’application est au premier plan). Configurez l’écouteur de réception push dans l’éditeur de configuration Braze. Si vous devez configurer votre écouteur d’objet de jeu à l’exécution, utilisez AppboyBinding.ConfigureListener() en spécifiant BrazeUnityMessageType.PUSH_RECEIVED.

Étape 3.2 : Activer l’écouteur d’ouverture push
L’écouteur d’ouverture push est déclenché lorsqu’un utilisateur lance l’application en cliquant sur une notification push. Pour envoyer le payload push à Unity, définissez le nom de votre objet de jeu et la méthode de rappel de l’écouteur d’ouverture push sous l’option Set Push Opened Listener :

Si vous devez configurer votre écouteur d’objet de jeu à l’exécution, utilisez AppboyBinding.ConfigureListener() en spécifiant BrazeUnityMessageType.PUSH_OPENED.
Exemple d’écouteur push
L’exemple suivant implémente l’objet de jeu AppboyCallback en utilisant respectivement les méthodes de rappel PushNotificationReceivedCallback et PushNotificationOpenedCallback.

public class MainMenu : MonoBehaviour {
void PushNotificationReceivedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationReceivedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification received: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push received Notification event: " + pushNotification);
#endif
}
void PushNotificationOpenedCallback(string message) {
#if UNITY_ANDROID
Debug.Log("PushNotificationOpenedCallback message: " + message);
PushNotification pushNotification = new PushNotification(message);
Debug.Log("Push Notification opened: " + pushNotification);
#elif UNITY_IOS
ApplePushNotification pushNotification = new ApplePushNotification(message);
Debug.Log("Push opened Notification event: " + pushNotification);
#endif
}
}
En mettant à jour votre AndroidManifest.xml à l’étape précédente, les écouteurs push ont été automatiquement configurés lorsque vous avez ajouté les lignes suivantes. Aucune configuration supplémentaire n’est donc nécessaire.
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />

Pour en savoir plus sur les écouteurs push ADM, consultez Amazon : Integrate Amazon Device Messaging.
Configurations optionnelles
Deep linking vers les ressources intégrées à l’application
Bien que Braze puisse gérer les deep links standard (tels que les URL de sites web, les URI Android, etc.) par défaut, la création de deep links personnalisés nécessite une configuration supplémentaire du Manifest.
Pour obtenir des instructions de configuration, consultez Deep Linking to In-App Resources.
Ajouter des icônes de notification push Braze

N’ajoutez pas d’images d’icônes de notification sous Assets/Plugins/Android/res. Unity a rendu obsolète la fourniture de ressources Android dans ce chemin, ce qui peut générer des avertissements de compilation ou des erreurs de validation. Empaquetez vos drawables d’icônes dans un plug-in Android Archive (AAR) ou un projet de bibliothèque Android afin qu’ils soient fusionnés dans les ressources de l’application compilée comme n’importe quel autre drawable.
Pour ajouter des icônes push à votre projet, créez un plug-in AAR ou une bibliothèque Android contenant les fichiers d’images d’icônes sous res/drawable* (ou des dossiers spécifiques à la densité), puis référencez chaque icône dans Braze > Braze Configuration en utilisant le nom complet de la ressource @drawable/ (voir Étape 2.1 : Configurer les paramètres push). Pour les étapes d’empaquetage et d’importation Unity, consultez Android Library Projects and Android Archive plug-ins.
Pour les règles de conception des petites icônes (alpha uniquement, sans couleur), consultez Notifications push Android, Étape 2 : Conformer les petites icônes aux directives de conception.
Rappel de jeton push
Pour recevoir une copie des jetons d’appareil Braze depuis le système d’exploitation, définissez un délégué à l’aide de AppboyBinding.SetPushTokenReceivedFromSystemDelegate().
Il n’y a pas de configurations optionnelles pour ADM pour le moment.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK Braze .NET MAUI.
Configuration des notifications push

Pour voir comment les espaces de noms changent entre Java et C#, consultez notre application exemple Xample sur GitHub.
Pour intégrer les notifications push avec .NET MAUI (anciennement Xamarin), vous devrez suivre les étapes d’intégration des notifications push natives Android. Les étapes suivantes ne sont qu’un résumé. Pour une procédure complète, consultez le guide des notifications push natives.
Étape 1 : Mettre à jour votre projet
- Ajoutez Firebase à votre projet Android.
- Ajoutez la bibliothèque Cloud Messaging au fichier
build.gradlede votre projet Android :implementation "google.firebase:firebase-messaging:+"
Étape 2 : Créer vos identifiants JSON
- Dans Google Cloud, activez l’API Firebase Cloud Messaging.
- Sélectionnez Service Accounts > votre projet > Create Service Account, puis saisissez un nom, un ID et une description pour le compte de service. Lorsque vous avez terminé, sélectionnez Create and continue.
- Dans le champ Role, recherchez et sélectionnez Firebase Cloud Messaging API Admin dans la liste des rôles.
- Dans Service Accounts, choisissez votre projet, puis sélectionnez Actions > Manage Keys > Add Key > Create new key. Choisissez JSON, puis sélectionnez Create.
Étape 3 : Téléverser vos identifiants JSON
- Dans Braze, sélectionnez Paramètres > Paramètres de l’application. Sous les Paramètres des notifications push de votre application Android, choisissez Firebase, puis sélectionnez Upload JSON File et téléversez les identifiants que vous avez générés précédemment. Lorsque vous avez terminé, sélectionnez Save.
- Activez l’enregistrement automatique des jetons FCM en accédant à la console Firebase. Ouvrez votre projet, puis sélectionnez Settings > Project settings. Sélectionnez Cloud Messaging, puis sous Firebase Cloud Messaging API (V1), copiez le numéro dans le champ Sender ID.
- Dans votre projet Android Studio, ajoutez ce qui suit à votre fichier
braze.xml.
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>

Pour éviter que Braze ne déclenche des requêtes réseau inutiles à chaque envoi de notifications push silencieuses, supprimez toute requête réseau automatique configurée dans la méthode onCreate() de votre classe Application. Pour plus d’informations, consultez la référence développeur Android : Application.
Étape 1 : Effectuer la configuration initiale
Consultez les instructions d’intégration Swift pour obtenir des informations sur la configuration de votre application avec les notifications push et le stockage de vos identifiants sur notre serveur. Référez-vous à l’application exemple iOS MAUI pour plus de détails.
Étape 2 : Demander l’autorisation des notifications push
Notre SDK .NET MAUI prend désormais en charge la configuration automatique des notifications push. Configurez l’automatisation et les autorisations des notifications push en ajoutant le code suivant à la configuration de votre instance Braze :
configuration.Push.Automation = new BRZConfigurationPushAutomation(true);
configuration.Push.Automation.RequestAuthorizationAtLaunch = false;
Référez-vous à l’application exemple iOS MAUI pour plus de détails. Pour en savoir plus, consultez la documentation Xamarin relative aux notifications utilisateur améliorées dans Xamarin.iOS.