Skip to content

Notifications push

Les notifications push vous permettent d’envoyer des notifications depuis votre appli lorsque des événements importants se produisent. Vous pouvez envoyer une notification push lorsque vous avez de nouveaux messages instantanés à envoyer, des alertes d’actualité à envoyer 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. Ils sont également plus efficaces que la récupération en arrière-plan, car votre application n’est lancée que lorsque c’est nécessaire.

Conditions préalables

Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK de Braze.

Protocoles de poussée

Les notifications push web sont mises en œuvre à l’aide de la norme push du W3C, prise en charge par la plupart des grands navigateurs. Pour plus d’informations sur les normes spécifiques du protocole push et la prise en charge des navigateurs, vous pouvez consulter les ressources d’Apple , de Mozilla et de Microsoft.

Mise en place des notifications push

Étape 1 : Configurez 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 à lors de l’initialisation du SDK Web. manageServiceWorkerExternally à true lors de l’initialisation du SDK Web.

Étape 2 : Enregistrer le navigateur

Pour demander immédiatement des autorisations push à un utilisateur afin que son navigateur puisse recevoir des notifications push, appelez braze.requestPushPermission(). Pour vérifier si la fonction “push” est prise en charge dans leur navigateur, appelez braze.isPushSupported().

Vous pouvez également envoyer une invitation à pousser à l’utilisateur avant de demander l’autorisation de pousser pour afficher votre propre interface utilisateur liée à la poussée.

Étape 3 : Désactiver skipWaiting (optionnel)

Le fichier du 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 avoir importé Braze :

Désinscription d’un utilisateur

Pour désinscrire un utilisateur, appelez braze.unregisterPush().

Domaines alternatifs

Pour intégrer une notification push web, votre domaine doit être sécurisé, ce qui signifie généralement https, localhost, et d’autres exceptions telles que celles définies dans la norme de notification push W3C. Vous devrez également pouvoir enregistrer un service de traitement à la racine de votre domaine, ou au moins pouvoir contrôler les en-têtes HTTP pour ce fichier. Cet article explique comment intégrer les notifications push Braze pour le Web sur un domaine alternatif.

Cas d’utilisation

Si vous ne pouvez pas répondre à tous les critères énoncés dans la norme “push” du W3C, vous pouvez utiliser cette méthode pour ajouter une boîte de dialogue “push” à votre site web. Cela peut s’avérer utile si vous souhaitez permettre à vos utilisateurs de s’abonner à partir d’un site web http ou d’un popup d’extension de navigateur qui empêche votre demande d’abonnement de s’afficher.

Considérations

Gardez à l’esprit que, comme beaucoup de solutions de contournement sur le web, les navigateurs évoluent continuellement et que cette méthode pourrait ne plus être viable à l’avenir. Avant de poursuivre, assurez-vous que

  • Vous possédez un domaine sécurisé séparé (https://) et vous avez l’autorisation d’enregistrer un Service Worker sur ce domaine.
  • Les utilisateurs sont connectés à votre site web, ce qui garantit que les jetons sont associés au bon profil.

Mise en place d’un domaine push alternatif

Pour expliquer l’exemple suivant, nous utiliserons http://insecure.com et https://secure.com comme nos deux domaines dans le but d’amener les visiteurs à s’inscrire pour les notifications push sur http://insecure.com. Cet exemple peut également être appliqué à un système chrome-extension:// pour la page contextuelle d’une extension de navigateur.

Étape 1 : Initier le flux de demande

Sur insecure.com, ouvrez une nouvelle fenêtre vers votre domaine sécurisé en utilisant un paramètre URL pour transmettre l’ID externe Braze de l’utilisateur actuellement connecté.

http://insecure.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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 : Enregistrer la notification push

À ce stade, secure.com ouvre une fenêtre contextuelle dans laquelle vous pouvez initialiser le SDK Braze pour le Web pour le même ID utilisateur et demander l’autorisation de l’utilisateur pour la notification push Web.

https://secure.com/push-registration.html

Étape 3 : Communiquer entre les domaines (facultatif)

Maintenant que les utilisateurs peuvent s’abonner à partir de ce flux de travail provenant de insecure.com, vous pouvez modifier votre site selon le fait que l’utilisateur est déjà abonné ou pas. Demander à l’utilisateur de s’enregistrer pour les notifications push alors qu’il l’est déjà est inutile.

Vous pouvez utiliser 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ù push est effectivement enregistré) des informations sur l’enregistrement push de l’utilisateur actuel :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- 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 se passe-t-il 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 dans lequel il est enregistré. Par exemple, si votre fichier de service de traitement existe dans /assets/service-worker.js, vous ne pouvez l’enregistrer que dans example.com/assets/* ou un sous-répertoire du dossier assets mais pas sur votre page d’accueil (example.com/). Pour cette raison, 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 autre approche consiste à utiliser l’en-tête HTTP Service-Worker-Allowed lorsque vous notifiez votre fichier de service de traitement. En configurant votre serveur pour renvoyer Service-Worker-Allowed: / en réponse au service de traitement, le navigateur recevra l’instruction d’élargir la portée et d’autoriser l’utilisation dans un répertoire différent.

Puis-je créer un service de traitement à l’aide d’un Gestionnaire de balises ?

Non, il faut héberger les services de traitement sur le serveur de votre site Web et il n’est pas possible de les charger à l’aide d’un Gestionnaire de balises.

Sécurité du site

Le protocole HTTPS est-il nécessaire ?

Oui. Les normes Web exigent que le domaine demandant l’autorisation de notification push soit sécurisé.

Quand un site est-il considéré comme “sûr” ?

Un site est considéré comme sûr s’il correspond à l’un des modèles d’origine sécurisés suivants. Les notifications push Web de Braze sont créées sur la base de cette norme ouverte, ce qui permet d’éviter les attaques de type man-in-the-middle.

  • (https, , *)
  • (wss, *, *)
  • (, localhost, )
  • (, .localhost, *)
  • (, 127/8, )
  • (, ::1/128, *)
  • (file, *, —)
  • (chrome-extension, *, —)

Que se passe-t-il si un site sécurisé n’est pas disponible ?

Bien que les meilleures pratiques du secteur soient de rendre votre site sûr, les clients qui ne peuvent pas sécuriser leur domaine de site peuvent contourner l’exigence en utilisant un modal sécurisé. Pour en savoir plus, consultez notre guide d’utilisation Notification push sur un domaine alternatif ou visionnez une démonstration de travail.

Conditions préalables

Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK Android Braze.

Fonctionnalités créées

Les fonctionnalités suivantes sont créées dans le SDK Android de Braze. Pour utiliser toute autre fonctionnalité de notification push, vous devrez configurer les notifications push pour votre application.

À propos du cycle de vie des notifications push

L’organigramme suivant montre comment Braze gère le cycle de vie des notifications push, notamment les demandes d’autorisation, la génération de jetons et l’envoi/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

Mise en place des notifications push

Limites de débit

L’API Firebase Cloud Messaging (FCM) présente 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 service d’assistance de Firebase.

Étape 1 : Ajoutez Firebase à votre projet

Tout d’abord, ajoutez Firebase à votre projet Android. Pour obtenir des instructions pas à pas, consultez le guide de configuration de Firebase de Google.

Étape 2 : Ajoutez 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.

1
implementation "google.firebase:firebase-messaging:+"

Vos dépendances devraient ressembler à ce qui suit :

1
2
3
4
dependencies {
  implementation project(':android-sdk-ui')
  implementation "com.google.firebase:firebase-messaging:+"
}

Étape 3 : Activez l’API d’envoi de messages de Firebase Cloud.

Dans Google Cloud, sélectionnez le projet utilisé par votre application Android, puis activez l’API Firebase Cloud Messaging.

Activation de l'API d'envoi de messages dans le nuage Firebase

É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, sélectionnez Service Accounts (Comptes de service), puis choisissez votre projet. Sur la page Comptes de service, sélectionnez Créer un compte de service.

Page d'accueil du compte de service d'un projet avec l'option "Créer un compte de service" en surbrillance.

Saisissez un nom de compte de service, un ID et une description, puis sélectionnez Create and continue (Créer et continuer).

Le formulaire "Détails du compte de service".

Dans le champ Rôle, 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 l’autorisation cloudmessaging.messages.create, puis choisissez-le dans la liste. Lorsque vous avez terminé, sélectionnez Terminé.

Le formulaire "Grant this service account access to project" avec "Firebase Cloud Messaging API Admin" sélectionné comme rôle.

Étape 5 : Générer des identifiants JSON

Ensuite, générez les identifiants JSON pour votre compte de service FCM. Sur Google Cloud IAM & Admin, allez dans Comptes de service, puis choisissez votre projet. Recherchez le compte de service FCM que vous avez créé précédemment, puis sélectionnez Actions > Manage Keys (Gérer les clés).

La page d'accueil du compte de service du projet avec le menu "Actions" ouvert.

Sélectionnez Ajouter une clé > Créer une nouvelle clé.

Le compte de service sélectionné avec le menu "Ajouter une clé" ouvert.

Choisissez JSON, puis sélectionnez Créer. 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 à l’adresse project_id dans votre fichier JSON.

N’oubliez pas l’endroit où vous avez téléchargé la clé : vous en aurez besoin à l’étape suivante.

Le formulaire de création d'une clé privée avec "JSON" sélectionné.

Étape 6 : Téléchargez vos informations d’identification JSON vers Braze.

Ensuite, chargez vos identifiants JSON dans votre tableau de bord de Braze. Dans Braze, sélectionnez Paramètres > Paramètres des applications.

Le menu "Paramètres" s'ouvre dans Braze avec "Paramètres de l'application" en surbrillance.

Sous les paramètres de notifications push de votre application Android, choisissez Firebase, puis sélectionnez Charger un fichier JSON et chargez les identifiants que vous avez générés précédemment. Lorsque vous avez terminé, sélectionnez Enregistrer.

Le formulaire pour les "Paramètres de notification push" avec "Firebase" sélectionné comme fournisseur de push.

Étape 7 : Configurer l’enregistrement automatique des jetons

Lorsqu’un de vos utilisateurs opte pour les notifications push, votre application doit générer un jeton FCM sur son appareil avant que vous puissiez lui envoyer des notifications push. Avec le SDK 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 Paramètres > Paramètres du projet.

Le projet Firebase avec le menu "Settings" ouvert.

Sélectionnez Cloud Messaging, puis sous API Firebase Cloud Messaging (V1), copiez le numéro dans le champ ID de l’expéditeur.

La page "Cloud Messaging" du projet Firebase avec l'"ID de l'expéditeur" en surbrillance.

Ensuite, ouvrez votre projet Android Studio et utilisez votre ID d’expéditeur Firebase pour activer l’enregistrement automatique des jetons FCM au sein de votre braze.xml ou BrazeConfig.

Pour configurer l’enregistrement automatique des jetons FCM, ajoutez les lignes suivantes à votre fichier braze.xml:

1
2
<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 dans les paramètres de votre projet Firebase. Votre site braze.xml devrait ressembler à ce qui suit :

1
2
3
4
5
6
<?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 :

1
2
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")
1
2
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")

Remplacez FIREBASE_SENDER_ID par la valeur que vous avez copiée dans les paramètres de votre projet Firebase. Votre site BrazeConfig devrait ressembler à ce qui suit :

1
2
3
4
5
6
7
8
9
10
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);
1
2
3
4
5
6
7
8
9
10
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)

Étape 8 : Supprimez les demandes automatiques dans votre classe d’application

Pour éviter que Braze ne déclenche des requêtes réseau inutiles à chaque fois que vous envoyez des notifications push silencieuses, supprimez toutes les requêtes réseau automatiques configurées dans la méthode onCreate() de votre classe Application. Pour plus d’informations, consultez Référence pour les développeurs Android : Application.

Affichage des notifications

Étape 1 : Enregistrer le service de messagerie de Firebase de Braze

Vous pouvez créer un service d’envoi de messages Firebase nouveau, existant ou non Braze. Choisissez celui qui répond le mieux à vos besoins spécifiques.

Braze comprend un service pour gérer la réception de notifications push et les intentions d’ouverture. Notre classe BrazeFirebaseMessagingService doit être enregistrée dans votre AndroidManifest.xml :

1
2
3
4
5
6
<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 provenant de notre système avec une clé unique afin de ne rendre 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. Voir AndroidManifest.xml dans l’exemple d’application Firebase push.

Si vous avez déjà enregistré un service d’envoi de messages Firebase, vous pouvez passer des RemoteMessage à Braze par l’intermédiaire de BrazeFirebaseMessagingService.handleBrazeRemoteMessage(). Cette méthode n’affichera une notification que si l’objet RemoteMessage provient de Braze et l’ignorera si ce n’est pas le cas.

1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyFirebaseMessagingService extends FirebaseMessagingService {
  @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.
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
class MyFirebaseMessagingService : FirebaseMessagingService() {
  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 souhaitez également utiliser un autre service de messagerie Firebase, vous pouvez également spécifier un service de messagerie Firebase de repli à appeler si votre application reçoit une notification push qui ne provient pas de Braze.

Dans votre braze.xml, précisez :

1
2
<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 par le biais de la configuration de l’exécution :

1
2
3
4
5
BrazeConfig brazeConfig = new BrazeConfig.Builder()
        .setFallbackFirebaseMessagingServiceEnabled(true)
        .setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
        .build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
val brazeConfig = BrazeConfig.Builder()
        .setFallbackFirebaseMessagingServiceEnabled(true)
        .setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
        .build()
Braze.configure(this, brazeConfig)

Étape 2 : Conformer les petites icônes aux lignes directrices en matière de conception

Pour des informations générales sur les icônes de notification Android, consultez l’aperçu des notifications.

À partir de Android N, vous devez mettre à jour ou supprimer les objets de petites icônes de notification qui impliquent une couleur. 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 les petites icônes de notification. En d’autres termes, Android convertit toutes les parties de votre petite icône de notification en monochrome, sauf pour les zones transparentes.

Pour créer une ressource de petite icône de notification qui s’affiche correctement :

  • Supprimez toutes les couleurs de l’image sauf le blanc.
  • Toutes les parties non blanches de l’objet doivent être transparentes.

Les grandes et petites icônes suivantes sont des exemples d’icônes correctement conçues :

Une petite icône apparaissant dans le coin inférieur d’une grande icône à côté d’un message qui dit « Hé je vais au bar, mais… »

Étape 3 : Configurer les icônes de notification

Spécifier des icônes dans braze.xml

Braze vous permet de configurer vos icônes de notification en spécifiant des ressources dessinées dans votre braze.xml :

1
2
<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>

Il est nécessaire de définir une petite icône de notification. 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 n’est pas forcément idéal.

Définir une grande icône de notification est facultatif, mais recommandé.

Spécifier la couleur d’accentuation de l’icône

La couleur d’accentuation de l’icône de notification peut être modifiée dans votre braze.xml. Si la couleur n’est pas spécifiée, la couleur par défaut est le même gris que celui utilisé par Lollipop pour les notifications du système.

1
<integer name="com_braze_default_notification_accent_color">0xFFf33e3e</integer>

Vous pouvez également utiliser une référence de couleur :

1
<color name="com_braze_default_notification_accent_color">@color/my_color_here</color>

Étape 4 : Ajouter des liens profonds

Activer l’ouverture automatique du lien profond

Pour permettre à Braze d’ouvrir automatiquement votre application et les liens profonds lorsqu’une notification push est cliquée, définissez com_braze_handle_push_deep_links_automatically sur true dans votre fichier braze.xml :

1
<bool name="com_braze_handle_push_deep_links_automatically">true</bool>

Cet indicateur peut également être défini par la configuration de l’exécution :

1
2
3
4
BrazeConfig brazeConfig = new BrazeConfig.Builder()
        .setHandlePushDeepLinksAutomatically(true)
        .build();
Braze.configure(this, brazeConfig);
1
2
3
4
val brazeConfig = BrazeConfig.Builder()
        .setHandlePushDeepLinksAutomatically(true)
        .build()
Braze.configure(this, brazeConfig)

Si vous souhaitez gérer de manière personnalisée les liens profonds, vous devrez créer un rappel de poussée qui écoute les poussées reçues et les intentions d’ouverture de Braze. Pour plus d’informations, voir Utilisation d’un rappel pour les événements “push”.

Création de liens profonds personnalisés

Si vous n’avez pas encore ajouté de liens profonds à votre application, suivez les instructions figurant dans la documentation destinée aux développeurs Android sur la création de liens profonds. Pour en savoir plus sur les liens profonds, consultez notre article de FAQ.

Ajouter des liens profonds

Le tableau de bord de Braze prend en charge la mise en place de liens profonds ou d’URL Web dans les campagnes de notifications push et des Canvas qui seront ouverts lorsque la notification est cliquée.

La création "On Click Behavior" dans le tableau de bord de Braze avec "Deep Link Into Application" sélectionné dans le menu déroulant.

Personnaliser le comportement de la pile arrière

Par défaut, le SDK Android place l’activité du lanceur principal de votre application hôte dans la pile arrière lorsqu’il suit des liens profonds de notification push. Braze vous permet de définir qu’une activité personnalisée s’ouvre dans la pile arrière à la place de votre activité de lanceur principal ou de désactiver complètement la pile arrière.

Par exemple, pour définir une activité appelée YourMainActivity comme activité de la pile arrière à l’aide de la configuration d’exécution:

1
2
3
4
5
BrazeConfig brazeConfig = new BrazeConfig.Builder()
        .setPushDeepLinkBackStackActivityEnabled(true)
        .setPushDeepLinkBackStackActivityClass(YourMainActivity.class)
        .build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
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().

1
2
<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 d’ID pour un canal de notification ou qu’une notification Braze contient un ID de canal non valide, Braze affichera la notification avec le canal de notification par défaut défini dans le SDK. Les utilisateurs de Braze utilisent les canaux de notification Android au sein de la plateforme pour regrouper les notifications.

Pour définir le nom du canal de notification par défaut de Braze auquel l’utilisateur est confronté, procédez comme suit BrazeConfig.setDefaultNotificationChannelName().

Pour définir la description du canal de notification par défaut de Braze à laquelle l’utilisateur est confronté, utilisez la commande BrazeConfig.setDefaultNotificationChannelDescription().

Mettez à jour toutes les campagnes API avec le paramètre Android push object pour inclure le champ notification_channel. Si ce champ n’est pas spécifié, Braze enverra la charge utile de notification avec l’ID du canal de repli du tableau de bord.

En dehors du canal de notification par défaut, Braze ne crée aucun canal. Tous les autres canaux doivent être définis par programmation par l’application hôte, puis entrés dans le tableau de bord de Braze.

Le nom et la description par défaut du canal peuvent également être configurés dans braze.xml.

1
2
<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 et l’analyse des notifications

Tester l’affichage

À ce stade, vous devriez pouvoir voir les notifications envoyées par Braze. Pour tester cela, rendez-vous sur la page Campagnes de votre tableau de bord Braze et créez une campagne de notification push. Choisissez Android Push et concevez votre message. Cliquez ensuite sur l’icône « Œil » dans le composeur pour obtenir l’expéditeur de test. Saisissez l’ID ou l’adresse e-mail de votre utilisateur actuel et cliquez sur Envoyer le test. Vous devriez voir la notification push s’afficher sur votre appareil.

L'onglet 'Test' d'une campagne de notification push dans le tableau de bord de Braze.

Pour les problèmes liés à l’affichage push, consultez notre guide de résolution des problèmes.

Tester l’analyse

À ce stade, vous devez également disposer d’un enregistrement de l’analyse pour les ouvertures de notifications push. En cliquant sur la notification lorsqu’elle arrive, le nombre d’ouvertures directes sur la page des résultats de votre campagne devrait augmenter de 1. Consultez notre article sur les rapports push pour en savoir plus sur les analyses/analytiques push.

Pour les problèmes liés à l’analyse/analytique push, consultez notre guide de résolution des problèmes.

Tester depuis la ligne de commande

Si vous souhaitez tester les notifications in-app et push via l’interface de ligne de commande, vous pouvez envoyer une seule notification par le biais du terminal via cURL et l ‘API de messages. Vous devrez remplacer les champs suivants par les valeurs correctes pour votre cas de test :

  • YOUR_API_KEY (Allez dans Paramètres > Clés API.)
  • YOUR_EXTERNAL_USER_ID ( Recherchez un profil utilisateur sur la page Recherche d’utilisateurs).
  • YOUR_KEY1 (facultatif)
  • YOUR_VALUE1 (facultatif)
1
2
3
4
5
6
7
8
9
10
11
12
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 de la conversion

L’initiative des personnes et des conversations est une initiative Android pluriannuelle qui vise à améliorer la prise en compte des personnes et des conversations dans les surfaces du système du téléphone. Cette priorité est basée sur le fait que la communication et l’interaction avec d’autres personnes restent la zone fonctionnelle la plus valorisée et la plus importante pour la majorité des utilisateurs d’Android dans toutes les tranches démographiques.

Exigences d’utilisation

  • Ce type de notification nécessite le SDK Braze pour Android v15.0.0 et ultérieures et des appareils Android 11 et ultérieurs.
  • Les appareils ou les SDK non pris en charge reprennent une notification push standard.

Cette fonctionnalité est uniquement disponible sur l’API REST de Braze. Voir l’objet push d’Android pour plus d’informations.

Erreurs de dépassement de quota du FCM

Lorsque votre limite pour Firebase Cloud Messaging (FCM) est dépassée, Google renvoie des erreurs de type “quota dépassé”. La limite par défaut du FCM est de 600 000 requêtes par minute. Braze retente l’envoi conformément aux meilleures pratiques recommandées par Google. Cependant, un grand nombre 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 limite de débit est dépassée et les mesures que vous pouvez prendre pour éviter les erreurs.

Pour vérifier votre limite actuelle, accédez à votre Google Cloud Console > APIs & Services > Firebase Cloud Messaging API > Quotas & System Limits, ou visitez la page FCM API Quotas.

Bonnes pratiques

Nous vous recommandons les meilleures pratiques suivantes pour limiter le nombre d’erreurs.

Demande d’augmentation de la limite de débit auprès de la FCM

Pour demander une augmentation de la limite de débit au FCM, vous pouvez contacter directement le service d’assistance de Firebase ou procéder comme suit :

  1. Allez à la page Quotas de l’API du FCM.
  2. Emplacement/localisation du quota d’envoi de requêtes par minute.
  3. Sélectionnez Modifier le quota.
  4. Saisissez une nouvelle valeur et soumettez votre demande.

Demander une limite de débit globale via Braze

Pour appliquer une limite à l’échelle de l’espace de travail pour les notifications push Android, contactez l’assistance Braze.

Limites de débit

Les notifications push sont limitées en débit, n’ayez donc pas peur d’en envoyer autant que votre application en a besoin. iOS et les serveurs du service de notification push (APN) d’Apple contrôleront la fréquence à laquelle elles sont délivrées, et vous n’aurez pas d’ennuis 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 persistant ou reçoit une autre notification.

Mise en place des notifications push

Étape 1 : Téléchargez votre jeton APN

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:

  1. Dans votre compte de développeur Apple, allez dans Certificats, identifiants & Profils.
  2. Sous Clés, sélectionnez Tous et cliquez sur le bouton d’ajout (+) dans le coin supérieur droit.
  3. Sous Description de la clé, saisissez un nom unique pour la clé de signature.
  4. Sous Services clés, cochez la case Service de notification push d’Apple (APN), puis cliquez sur Continuer. Cliquez sur Confirmer.
  5. Notez l’ID de la clé. Cliquez sur Télécharger pour générer et télécharger la clé. Assurez-vous d’enregistrer le fichier téléchargé dans un endroit sécurisé, car vous ne pouvez pas le télécharger plus d’une fois.
  6. Dans Braze, allez dans Paramètres > Paramètres des applications et téléchargez le fichier .p8 sous Certificat de notification push Apple. Vous pouvez charger votre certificat de notifications push de développement ou de production. Pour tester les notifications push une fois que votre application est en ligne dans l’App Store, il est recommandé de créer un espace de travail distinct pour la version de développement de votre application.
  7. Lorsque vous y êtes invité, saisissez l’ ID de l’offre groupée, 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, qui est défini par son profil de provisionnement.
  8. Lorsque vous avez terminé, sélectionnez Enregistrer.

Étape 2 : Activer les fonctionnalités de notification push

Dans Xcode, accédez à la section Signing & Capabilities de la cible principale de l’app et ajoutez la capacité de notifications push.

La section "Signing & Capabilities" dans un projet Xcode.

Étape 3 : Mise en place de la manutention par poussée

Vous pouvez utiliser le SDK Swift pour automatiser le traitement des notifications à distance reçues de Braze. C’est la façon la plus simple de gérer les notifications push et c’est la méthode de gestion recommandée.

Étape 3.1 : Activer l’automatisation dans la propriété push

Pour activer l’intégration automatique des notifications push, définissez la propriété automation de la configuration push sur true :

1
2
let configuration = Braze.Configuration(apiKey: "{YOUR-BRAZE-API-KEY}", endpoint: "{YOUR-BRAZE-API-ENDPOINT}")
configuration.push.automation = true
1
2
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"{YOUR-BRAZE-API-KEY}" endpoint:@"{YOUR-BRAZE-API-ENDPOINT}"];
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];

Cela demande au SDK de :

  • Enregistrer votre application pour les notifications push dans le système.
  • Demander l’autorisation/permission de la notification push lors de l’initialisation.
  • Fournir dynamiquement des implémentations pour les méthodes de délégation du système liées à la notification push.

Étape 3.2 : Remplacer les configurations individuelles (en option)

Pour un contrôle plus précis, chaque étape d’automatisation peut être activée ou désactivée individuellement :

1
2
3
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = true
configuration.push.automation.requestAuthorizationAtLaunch = false
1
2
3
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];
configuration.push.automation.requestAuthorizationAtLaunch = NO;

Voir Braze.Configuration.Push.Automation pour connaître toutes les options disponibles et automation pour plus d’informations sur le comportement de l’automatisation.

Étape 3.1 : S’inscrire aux notifications push avec les APN

Incluez l’exemple de code approprié dans la méthode de délégationapplication:didFinishLaunchingWithOptions: de votre application afin que les appareils de vos utilisateurs puissent s’enregistrer auprès des APN. 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. Reportez-vous aux boutons d’action push pour connaître les étapes d’intégration supplémentaires.

Ajoutez le code suivant à la méthode application:didFinishLaunchingWithOptions: de votre délégué d’application.

1
2
3
4
5
6
7
8
9
10
11
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))")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[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);
}];

Étape 3.2 : Enregistrer des jetons avec Braze

Une fois l’enregistrement des APN terminé, transmettez le deviceToken généré à Braze pour activer les notifications push pour l’utilisateur.

Ajoutez le code suivant à la méthode application(_:didRegisterForRemoteNotificationsWithDeviceToken:) de votre application :

1
AppDelegate.braze?.notifications.register(deviceToken: deviceToken)

Ajoutez le code suivant à la méthode application:didRegisterForRemoteNotificationsWithDeviceToken: de votre application :

1
[AppDelegate.braze.notifications registerDeviceToken:deviceToken];

Étape 3.3 : Activer la gestion des notifications push

Ensuite, transmettez les notifications push reçues à Braze. Cette étape est nécessaire pour la journalisation de l’analyse/analytique push et la gestion des liens. Assurez-vous d’appeler tout le code d’intégration push dans le thread principal de votre application.

Traitement par défaut des notifications push

Pour activer la gestion du push par défaut de Braze, ajoutez le code suivant à la méthode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) de votre application :

1
2
3
4
5
6
7
if let braze = AppDelegate.braze, braze.notifications.handleBackgroundNotification(
  userInfo: userInfo,
  fetchCompletionHandler: completionHandler
) {
  return
}
completionHandler(.noData)

Ensuite, ajoutez ce qui suit à la méthode userNotificationCenter(_:didReceive:withCompletionHandler:) de votre application :

1
2
3
4
5
6
7
if let braze = AppDelegate.braze, braze.notifications.handleUserNotification(
  response: response,
  withCompletionHandler: completionHandler
) {
  return
}
completionHandler()

Pour activer la gestion du push par défaut de Braze, ajoutez le code suivant à la méthode application:didReceiveRemoteNotification:fetchCompletionHandler: de votre application :

1
2
3
4
5
6
7
BOOL processedByBraze = AppDelegate.braze != nil && [AppDelegate.braze.notifications handleBackgroundNotificationWithUserInfo:userInfo
                                                                                                       fetchCompletionHandler:completionHandler];
if (processedByBraze) {
  return;
}

completionHandler(UIBackgroundFetchResultNoData);

Puis ajoutez le code suivant à la méthode (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: de votre application :

1
2
3
4
5
6
7
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 de userNotificationCenter(_:didReceive:withCompletionHandler:) sera appelé et Braze enregistrera l’événement push click.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 de userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: sera appelé et Braze enregistrera l’événement push click.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (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);
  }
}

Notifications d’essais

Si vous souhaitez tester des notifications push et in-app à l’aide de la ligne de commande, vous pouvez envoyer une seule notification par le terminal via cURL et l’API d’envoi de messages. Vous devrez remplacer les champs suivants par les valeurs correctes pour votre cas de test :

  • YOUR_API_KEY - disponible dans Réglages > Clés API.
  • YOUR_EXTERNAL_USER_ID - disponible sur la page Recherche d’utilisateurs. Pour plus d’informations, reportez-vous à la rubrique Attribution d’ID d’utilisateur.
  • 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, reportez-vous à notre documentation API pour savoir à quel endpoint adresser vos requêtes.

1
2
3
4
5
6
7
8
9
10
11
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 par notification push

Pour accéder aux charges utiles des notifications push traitées par Braze, utilisez la méthode Braze.Notifications.subscribeToUpdates(payloadTypes:_:).

Vous pouvez utiliser le paramètre payloadTypes pour indiquer si vous souhaitez vous abonner à des notifications concernant des événements push ouverts, des événements push reçus ou les deux.

1
2
3
4
5
6
// 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)'")
}
1
2
3
4
5
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);
}];

Amorces de notifications push

Les campagnes d’amorces de notifications push encouragent vos utilisateurs à activer les notifications push sur leur appareil pour votre appli. Ceci peut se faire sans personnalisation du SDK, grâce à notre amorce de notifications push sans code.

Gestion dynamique des passerelles APN

La gestion dynamique de la passerelle du service de notification push d’Apple (APNs) améliore la fiabilité et l’efficacité des notifications push d’iOS en détectant automatiquement l’environnement APNs adéquat. Auparavant, vous deviez sélectionner manuellement des environnements APN (développement ou production) pour vos notifications push, ce qui entraînait parfois des configurations de passerelle incorrectes, des échecs de réception/distribution et des erreurs BadDeviceToken.

Grâce à la gestion dynamique des passerelles APN, vous aurez :

  • Amélioration de la fiabilité : Les notifications sont toujours envoyées à l’environnement des APN corrects, ce qui réduit les échecs de réception/distribution.
  • Configuration simplifiée : Vous n’avez plus besoin de gérer manuellement les paramètres des passerelles APN.
  • Résilience aux erreurs : Les valeurs invalides ou manquantes de la passerelle sont traitées avec élégance, ce qui permet d’assurer un service ininterrompu.

Conditions préalables

Braze prend en charge la gestion des passerelles APN dynamiques pour les notifications push sur iOS avec la condition de version du SDK suivante :

Fonctionnement

Lorsqu’une app iOS s’intègre au SDK Swift de Braze, elle envoie des données liées à l’appareil, notamment […] aps-environment à l’API SDK de Braze, si elle est disponible. La valeur apns_gateway indique si l’application utilise l’environnement APN de développement (dev) ou de production (prod).

Braze enregistre également la valeur de la passerelle signalée pour chaque appareil. Si une nouvelle valeur de passerelle valide est reçue, Braze met automatiquement à jour la valeur stockée.

Lorsque Braze envoie une notification push :

  • Si une valeur de passerelle valide (dev ou prod) est enregistrée pour l’appareil, Braze l’utilise pour déterminer l’environnement APN correct.
  • Si aucune valeur de passerelle n’est enregistrée, Braze utilise par défaut l’environnement des APN configuré dans la page Paramètres de l’application.

Foire aux questions

Pourquoi cette fonctionnalité a-t-elle été introduite ?

Grâce à la gestion dynamique des passerelles APN, l’environnement adéquat est sélectionné automatiquement. Auparavant, vous deviez configurer manuellement la passerelle APN, ce qui pouvait entraîner des erreurs sur BadDeviceToken, l’invalidation des jetons et d’éventuels problèmes de limitation du débit des APN.

Quel est l’impact sur la performance de la réception/distribution ?

Cette fonctionnalité améliore les taux de réception/distribution en acheminant toujours les jetons push vers l’environnement des APN corrects, évitant ainsi les échecs causés par des passerelles mal configurées.

Puis-je désactiver cette fonctionnalité ?

La gestion dynamique des passerelles APN est activée par défaut et permet d’améliorer la fiabilité. Si vous avez des cas d’utilisation spécifiques qui nécessitent une sélection manuelle de la passerelle, contactez l’assistance de Braze.

À propos des notifications push pour Android TV

Bien qu’il ne s’agisse pas d’une fonctionnalité native, l’intégration d’une notification push pour Android TV est rendue possible en exploitant le SDK Braze pour Android et la messagerie cloud Firebase pour enregistrer un jeton de notification push pour Android TV. Il est cependant nécessaire de construire une interface utilisateur pour afficher la charge utile de la notification après sa réception.

Conditions préalables

Pour utiliser cette fonctionnalité, vous devez effectuer les opérations suivantes :

Mise en place des notifications push

Pour configurer les notifications push pour Android TV :

  1. Créez une vue personnalisée dans votre application pour afficher vos notifications.
  2. Créez une usine de notification personnalisée. Elle remplacera le comportement SDK par défaut et vous permet d’afficher manuellement les notifications. En retournant null, elle empêchera le SDK de la traiter et nécessitera un code personnalisé pour afficher la notification. Après avoir terminé ces étapes, vous pouvez commencer à envoyer des notifications push à Android TV !

  3. (Facultatif) Pour un suivi efficace de l’analyse/analytique des clics, configurez le suivi de l’analyse/analytique des clics. Cela peut être réalisé en créant un callback de push pour écouter les intentions de push ouvertes et reçues de Braze.

Tester les notifications push d’Android TV

Pour tester si votre implémentation de notification push est réussie, 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 affichera une notification de toast à l’écran.
  • Si l’application est ouverte: Vous avez la possibilité d’afficher le message dans votre propre IU hébergée. Nous vous recommandons de suivre le style IU de nos messages in-app du SDK Android Mobile.

Bonnes pratiques

Pour les marketeurs utilisant Braze, lancer une campagne vers Android TV sera identique à lancer un push vers les applications mobiles Android. Pour cibler exclusivement ces appareils, nous vous recommandons de sélectionner l’application Android TV dans la segmentation.

La réponse fournie et cliquée retournée par FCM suivra la même convention que l’appareil mobile Android. Par conséquent, toute erreur sera visible dans le journal des activités du message.

Conditions préalables

Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK Braze de Cordova. Une fois que vous avez intégré le SDK, la fonctionnalité de base des notifications push est activée par défaut. Pour utiliser les notifications push riches et les contenus push, vous devrez les configurer individuellement. Pour utiliser les messages push d’iOS, vous devez également télécharger un certificat push valide.

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, voir Configurations optionnelles.

1
2
3
4
<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>

Conditions préalables

Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK de Flutter Braze.

Mise en place des notifications push

Étape 1 : Terminer la configuration initiale

Étape 1.1 : Enregistrer la notification push

Enregistrez-vous pour les notifications push en utilisant l’API Firebase Cloud Messaging (FCM) de Google. Pour accéder à une présentation complète, reportez-vous aux étapes suivantes du guide d’intégration des notifications push Native Android :

  1. Ajoutez Firebase à votre projet.
  2. Ajoutez Cloud Messaging à vos dépendances.
  3. Créez un compte de service.
  4. Générez des identifiants JSON.
  5. Téléchargez vos informations d’identification JSON sur Braze.

Étape 1.2 : Obtenez votre ID d’expéditeur Google

Tout d’abord, accédez à la console Firebase, ouvrez votre projet, puis sélectionnez Paramètres > Paramètres du projet.

Le projet Firebase avec le menu "Settings" ouvert.

Sélectionnez Messagerie Cloud, puis sous API Firebase Cloud Messaging (V1), copiez l’ID de l’expéditeur dans votre presse-papiers.

La page "Cloud Messaging" du projet Firebase avec l'"ID de l'expéditeur" en surbrillance.

Étape 1.3 : Mettez à jour votre braze.xml

Ajoutez ce qui suit à votre fichier braze.xml. Remplacez FIREBASE_SENDER_ID par l’ID de l’expéditeur que vous avez copié précédemment.

1
2
<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 : Télécharger les certificats APN

Générez un certificat pour le service de notification push d’Apple (APNs) et téléchargez-le dans le tableau de bord de Braze. Pour accéder à une description complète, voir Charger votre certificat APN.

Étape 1.2 : Ajoutez la prise en charge des notifications push à votre application.

Suivez le guide d’intégration native pour iOS.

Étape 2 : Écouter les événements de notification push (facultatif).

Pour écouter les événements de notifications push que Braze a détectés et traités, appelez subscribeToPushNotificationEvents() et transmettez un argument à exécuter.

1
2
3
4
5
6
7
8
9
10
// 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 d’événements de la notification push

Pour obtenir une liste complète des champs de notifications push, reportez-vous au tableau ci-dessous :

Étape 3 : Tester l’affichage des notifications push

Pour tester votre intégration après avoir configuré les notifications push dans la couche native :

  1. Configurez un utilisateur actif dans l’application Flutter. Pour ce faire, initialisez votre plug-in en appelant braze.changeUser('your-user-id').
  2. Allez dans Campagnes et créez une nouvelle campagne de notification push. Choisissez les plateformes que vous souhaitez tester.
  3. Composez votre notification test et sélectionnez l’onglet Test. Ajoutez le même user-id que l’utilisateur test et cliquez sur Envoyer le test.
  4. Vous devriez recevoir rapidement la notification sur votre appareil. Vous devrez peut-être vérifier le centre de notification ou mettre à jour les paramètres si elle ne s’affiche pas.

Conditions préalables

Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK Android Braze.

Mise en place des notifications push

Les téléphones récents fabriqués par Huawei sont équipés des services mobiles Huawei (HMS), un service utilisé pour envoyer des notifications push au lieu de recourir à Firebase Cloud Messaging (FCM) de Google.

Étape 1 : Enregistrer un compte de développeur Huawei

Avant de commencer, vous devrez vous enregistrer et configurer un compte de développeur Huawei. Dans votre compte Huawei, allez dans Mes projets > Paramètres du projet > Informations sur l’application, et notez les adresses App ID et App secret.

Étape 2 : Créer une nouvelle application Huawei dans le tableau de bord de Braze

Dans le tableau de bord de Braze, allez dans Paramètres de l’application, répertorié sous la navigation Paramètres.

Cliquez sur + Ajouter une application, fournissez un nom (comme Mon application Huawei) et sélectionnez Android comme plateforme.

Une fois que votre nouvelle application Braze a été créée, trouvez les paramètres de notification push et sélectionnez Huawei en tant que fournisseur de notification push. Ensuite, fournissez votre Huawei Client Secret et Huawei App ID.

Étape 3 : Intégrer le SDK de messagerie Huawei à votre application

Huawei a fourni un codelab d’intégration Android détaillant l’intégration du Huawei Messaging Service dans votre application. Suivez ces étapes pour commencer.

Après avoir terminé le codelab, vous devrez créer un service de messages Huawei personnalisé pour obtenir des jetons de poussée et envoyer des messages au SDK de Braze.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
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 de notification push personnalisé, ajoutez les éléments suivants à votre AndroidManifest.xml :

1
2
3
4
5
6
7
<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 : Testez 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 de développeur Huawei et avez intégré les SDK Braze et Huawei dans votre application.

Ensuite, nous pouvons tester l’intégration en essayant une nouvelle campagne de notifications push dans Braze.

Étape 4.1 : Créer une nouvelle campagne de notifications push

Dans la page Campagnes, créez une nouvelle campagne et choisissez Notification push comme type de message.

Après avoir nommé votre campagne, choisissez Android Push comme plateforme de push.

Le compositeur de création de campagne affichant les plates-formes de poussée disponibles.

Ensuite, composez votre campagne de notification push avec un titre et un message.

Étape 4.2 : Envoyer un test de notification push

Dans l’onglet Test, entrez votre ID utilisateur, que vous avez défini dans votre application à l’aide de la méthodechangeUser(USER_ID_STRING) , et cliquez sur Envoyer le test pour envoyer un push de test.

L'onglet test du compositeur de création de campagne montre que vous pouvez vous envoyer un message test à vous-même en fournissant votre ID utilisateur et en le saisissant dans le champ "Ajouter des utilisateurs individuels".

À ce stade, vous devriez recevoir une notification push de test sur votre appareil Huawei (HMS) de la part de Braze.

Étape 4.3 : Mise en place de la segmentation Huawei (facultatif)

Étant donné que votre application Huawei dans le tableau de bord de Braze est basée sur la plateforme de notification push Android, vous avez la possibilité d’envoyer des notifications push à tous les utilisateurs Android (Firebase Cloud Messaging et Huawei Mobile Services), ou vous pouvez choisir de segmenter votre audience de campagne pour des applications spécifiques.

Pour envoyer des messages 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 le même push à tous les fournisseurs de push Android, vous pouvez choisir de ne pas spécifier l’application qui enverra à 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 Braze.

Mise en place des notifications push

Étape 1 : Terminer la configuration initiale

Conditions préalables

Avant de pouvoir utiliser Expo pour les notifications push, vous devez configurer le plugin Expo de Braze.

Étape 1.1 : Mettez à 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 Paramètres > Paramètres du projet.

Le projet Firebase avec le menu "Settings" ouvert.

Sélectionnez Messagerie Cloud, puis sous API Firebase Cloud Messaging (V1), copiez l’ID de l’expéditeur dans votre presse-papiers.

La page "Cloud Messaging" du projet Firebase avec l'"ID de l'expéditeur" en surbrillance.

Ensuite, ouvrez le fichier app.json de votre projet et attribuez à la propriété firebaseCloudMessagingSenderId l’ID de l’expéditeur figurant dans votre presse-papiers. Par exemple :

1
"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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "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 souhaitez plutôt configurer ces paramètres de manière native, inscrivez-vous à push en vous référant au guide d’intégration native de push Android.

Si vous n’utilisez pas le plugin Braze Expo, ou si vous souhaitez plutôt configurer ces paramètres de manière native, inscrivez-vous à push en vous référant aux étapes suivantes du guide de l’intégration push iOS native :

Étape 1.1 : Demande d’autorisation de pousser

Si vous n’avez pas l’intention de demander des permissions 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 d’iOS.

Étape 1.2 (facultative) : Migrer votre clé de notifications 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 téléchargée sur le tableau de bord de Braze.

Étape 2 : Demander une autorisation de notification push

Utilisez la méthode Braze.requestPushPermission() (disponible sur v1.38.2 et supérieures) pour demander une autorisation des notifications push à l’utilisateur sur iOS et Android 13 et supérieurs. Pour Android 12 et inférieurs, cette méthode n’est pas opérationnelle.

Cette méthode intègre in paramètre requis qui précise les autorisations que SDK doit demander à l’utilisateur sur iOS. Ces options n’ont pas d’effet sur Android.

1
2
3
4
5
6
7
8
const permissionOptions = {
  alert: true,
  sound: true,
  badge: true,
  provisional: false
};

Braze.requestPushPermission(permissionOptions);

Étape 2.1 : Écouter les notifications push (facultatif)

Vous pouvez en outre vous abonner aux événements au cours desquels Braze a détecté et traité une notification push entrante. Utilisez la clé d’auditeur Braze.Events.PUSH_NOTIFICATION_EVENT.

1
2
3
4
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 la notification push

Pour obtenir une liste complète des champs de notifications push, reportez-vous au tableau ci-dessous :

Étape 3 : Activer la création de liens profonds (facultatif)

Pour permettre à Braze de gérer les liens profonds à l’intérieur des composants React lorsqu’une notification push est cliquée, mettez d’abord en œuvre les étapes décrites dans la bibliothèque React Native Linking, ou avec la solution de votre choix. Ensuite, suivez les étapes supplémentaires ci-dessous.

Pour en savoir plus sur les liens profonds, consultez notre article de FAQ.

Si vous utilisez le plugin Braze Expo, vous pouvez gérer automatiquement les liens profonds de notification push en réglant androidHandlePushDeepLinksAutomatically sur true dans votre app.json.

Pour gérer manuellement les liens profonds, reportez-vous à la documentation native d’Android : Création de liens profonds.

Étape 3.1 : Stocker la charge utile de la notification push au lancement de l’application.

Pour iOS, ajoutez populateInitialPayloadFromLaunchOptions à la méthode didFinishLaunchingWithOptions de votre AppDelegate. Par exemple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  self.moduleName = @"BrazeProject";
  self.initialProps = @{};

  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];
}

Étape 3.2 : Gestion des liens profonds à partir d’un état fermé

En plus des scénarios de base gérés par React Native Linking, mettez en œuvre la méthode Braze.getInitialPushPayload et récupérez la valeur url pour prendre en compte les liens profonds issus des notifications push qui ouvrent votre application lorsqu’elle n’est pas en cours d’exécution. Par exemple :

1
2
3
4
5
6
7
8
9
// Handles deep links when an iOS app is launched from a hard close via push click.
// This edge case is not handled in the React Native Linking library and is provided as a workaround by Braze.
Braze.getInitialPushPayload(pushPayload => {
  if (pushPayload) {
    console.log('Braze.getInitialPushPayload is ' + pushPayload);
    showToast('Initial URL is ' + pushPayload.url);
    handleOpenUrl({ pushPayload.url });
  }
});

Étape 3.3 Activer les liens universels (facultatif)

Pour activer la prise en charge de la liaison universelle, créez un fichier BrazeReactDelegate.h dans votre répertoire iOS, puis ajoutez l’extrait de code suivant.

1
2
3
4
5
6
#import <Foundation/Foundation.h>
#import <BrazeKit/BrazeKit-Swift.h>

@interface BrazeReactDelegate: NSObject<BrazeDelegate>

@end

Ensuite, créez un fichier BrazeReactDelegate.m et ajoutez-y l’extrait de code suivant. Remplacez YOUR_DOMAIN_HOST par votre domaine réel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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, référez-vous à notre exemple d’application ici.

Étape 4 : Envoyer une notification push test

À ce stade, vous devriez pouvoir envoyer des notifications aux appareils. Suivez ces étapes pour tester votre intégration de notification push.

  1. Définissez un utilisateur actif dans l’application React native en appelant la méthode Braze.changeUserId('your-user-id').
  2. Allez dans Campagnes et créez une nouvelle campagne de notification push. Choisissez les plateformes que vous souhaitez tester.
  3. Composez votre notification test et sélectionnez l’onglet Test. Ajoutez le même user-id que l’utilisateur test et cliquez sur Envoyer le test. Vous devriez recevoir rapidement la notification sur votre appareil.

Une campagne de notifications push Braze montrant que vous pouvez ajouter votre propre ID utilisateur en tant que destinataire de test pour essayer votre notification push.

Utiliser le plugin Expo

Après avoir configuré les notifications push pour Expo, vous pouvez l’utiliser pour gérer les comportements de notifications push suivants - sans avoir besoin d’écrire le moindre code dans les couches natives d’Android ou d’iOS.

Transférer les notifications push Android vers un autre FMS

Si vous souhaitez utiliser un service de messagerie Firebase (FMS) supplémentaire, vous pouvez spécifier un FMS de repli à appeler si votre application reçoit une notification push qui ne provient pas de Braze. Par exemple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          ...
          "androidFirebaseMessagingFallbackServiceEnabled": true,
          "androidFirebaseMessagingFallbackServiceClasspath": "com.company.OurFirebaseMessagingService"
        }
      ]
    ]
  }
}

Utiliser les extensions d’applications 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. Vous pouvez aborder cette étape de plusieurs manières, selon la façon 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’applications d’Expo. Vous pouvez également définir 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 de résolution des problèmes les plus courantes pour les intégrations de notifications push avec le SDK React Native et le plugin Expo de Braze.

Les notifications push ne fonctionnent plus

Si les notifications push via le plugin Expo ont cessé de fonctionner :

  1. Vérifiez que le SDK de Braze assure toujours le suivi des sessions.
  2. Vérifiez que le SDK n’a pas été désactivé par un appel explicite ou implicite à wipeData.
  3. Examinez les mises à jour récentes d’Expo ou des bibliothèques associées, car il peut y avoir des conflits avec votre configuration Braze.
  4. Examinez les dépendances de projet récemment ajoutées et vérifiez si elles remplacent manuellement vos méthodes de délégué de notification push existantes.

Le jeton de l’appareil ne s’enregistre pas dans Braze

Si le jeton de votre appareil ne s’enregistre pas dans Braze, examinez d’abord les notifications push qui ne fonctionnent plus.

Si votre problème persiste, il se peut qu’une dépendance distincte interfère avec votre configuration de notification push de Braze. Vous pouvez essayer de le supprimer ou d’appeler manuellement Braze.registerPushToken à la place.

Conditions préalables

Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK de Braze. Vous devrez également configurer les notifications push pour le SDK Web. Notez que vous ne pouvez envoyer des notifications push qu’aux utilisateurs d’iOS et d’iPadOS qui utilisent Safari v16.4 ou une version ultérieure.

Configurer Safari push pour les mobiles

Étape 1 : Créer un fichier de 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 que l’App Switcher utilise, si le rendu est en plein écran pour ressembler à une application native, ou 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.

1
2
3
4
5
6
7
8
9
{
  "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 ici.

Ajouter la balise suivante <link> à l’élément <head> de votre site Web pointant vers l’endroit où votre fichier de manifeste est hébergé.

1
<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 services 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 ultérieures. Pour demander une autorisation push sur iOS ou iPadOS, votre site web doit être ajouté à l’écran d’accueil de l’utilisateur en sélectionnant Partager vers > Ajouter à l’écran d’accueil. Ajouter à l’écran d’accueil permet aux utilisateurs de mettre votre site web en signet, en ajoutant votre icône à leur précieux écran d’accueil.

Un iPhone montrant les options permettant de mettre un site web en signet et de l'enregistrer sur l'écran d'accueil.

Étape 5 : Afficher l’invite de notification push native

Une fois l’application ajoutée à votre écran d’accueil, vous pouvez désormais demander une autorisation push lorsque l’utilisateur effectue une action (en cliquant sur un bouton, par exemple). Ceci peut être effectué à l’aide de la méthode requestPushPermission ou à l’aide d’un message in-app d’amorce de notification push sans code.

Une notification push demandant d'autoriser ou de ne pas autoriser les notifications

Par exemple :

1
2
3
4
5
6
7
8
9
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 de test pour valider l’intégration. Une fois votre intégration terminée, vous pouvez utiliser nos messages d’amorce de notification 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 d’Unity Braze.

Mise en place de la notification push

Étape 1 : Mise en place de la plate-forme

Étape 1.1 : Activer Firebase

Pour commencer, suivez la documentation de configuration de Firebase Unity.

Étape 1.2 : Définir vos informations d’identification 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 Firebase Developers Console et sélectionnez votre projet Firebase. Ensuite, sélectionnez l’option Cloud Messaging sous Settings et copiez la clé du serveur et l’ID de l’expéditeur :

Dans Braze, sélectionnez votre application Android sur la page Paramètres de l’application, sous Gérer les paramètres. Saisissez ensuite votre clé de serveur Firebase dans le champ Clé du serveur Firebase Cloud Messaging et ID d’expéditeur Firebase dans le champ ID Expéditeur de Firebase Cloud Messaging.

Étape 1.1 : Vérifier la méthode d’intégration

Braze fournit une solution Unity native pour l’automatisation des intégrations de notifications push iOS. Si vous souhaitez plutôt configurer et gérer votre intégration manuellement, consultez Swift : Notifications push.

Sinon, passez à l’étape suivante.

Étape 1.1 : Activer ADM

  1. Créez un compte sur le portail des développeurs Amazon Apps & Games si vous ne l’avez pas encore fait.
  2. Obtenez les identifiants OAuth (ID client et secret client) et une clé API ADM.
  3. Activez Enregistrement ADM automatique activé dans la fenêtre de configuration de Braze Unity.
    • Vous pouvez également ajouter la ligne suivante à votre res/values/braze.xml pour activer l’enregistrement ADM :
1
  <bool name="com_braze_push_adm_messaging_registration_enabled">true</bool>

Étape 2 : Configurer les notifications push

Étape 2.1 : Configurer les paramètres de poussée

Le SDK Braze peut gérer automatiquement l’enregistrement des notifications push avec les 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 notification push suivants.

Étape 2.1 : Téléchargez votre jeton APN

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:

  1. Dans votre compte de développeur Apple, allez dans Certificats, identifiants & Profils.
  2. Sous Clés, sélectionnez Tous et cliquez sur le bouton d’ajout (+) dans le coin supérieur droit.
  3. Sous Description de la clé, saisissez un nom unique pour la clé de signature.
  4. Sous Services clés, cochez la case Service de notification push d’Apple (APN), puis cliquez sur Continuer. Cliquez sur Confirmer.
  5. Notez l’ID de la clé. Cliquez sur Télécharger pour générer et télécharger la clé. Assurez-vous d’enregistrer le fichier téléchargé dans un endroit sécurisé, car vous ne pouvez pas le télécharger plus d’une fois.
  6. Dans Braze, allez dans Paramètres > Paramètres des applications et téléchargez le fichier .p8 sous Certificat de notification push Apple. Vous pouvez charger votre certificat de notifications push de développement ou de production. Pour tester les notifications push une fois que votre application est en ligne dans l’App Store, il est recommandé de créer un espace de travail distinct pour la version de développement de votre application.
  7. Lorsque vous y êtes invité, saisissez l’ ID de l’offre groupée, 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, qui est défini par son profil de provisionnement.
  8. Lorsque vous avez terminé, sélectionnez Enregistrer.

Étape 2.2 : Activer la poussée automatique

Ouvrez les paramètres de configuration de Braze dans l’éditeur Unity en sélectionnant Braze > Configuration Braze.

Cochez Intégrer Push avec Braze pour inscrire automatiquement les utilisateurs aux notifications push, transmettre les jetons push à Braze, suivre l’analyse/analytique des ouvertures de push et tirer parti de notre gestion par défaut des notifications push.

Étape 2.3 : Activer la poussée en arrière-plan (facultatif)

Cochez Enable Background Push si vous souhaitez activer background mode pour les notifications push. Cela permet au système de réveiller votre application à partir de l’état suspended lorsqu’une notification push est reçue, permettant à votre application de télécharger le contenu en réponse aux notifications push. Le fait de cocher cette option est nécessaire pour notre fonctionnalité de suivi de la désinstallation.

L’éditeur Unity affiche les options de configuration Braze. Dans cet éditeur, « Automate Unity iOS integration » (Automatiser l’intégration d’Unity iOS », « Integrate push with Braze » (Intégrer les notifications push avec Braze), et « Enable background push » (Activer les notifications push en arrière-plan) sont activés.

Étape 2.4 : Désactiver l’enregistrement automatique (optionnel)

Les utilisateurs qui n’ont pas encore opté pour des notifications push seront automatiquement autorisés aux notifications push lors de l’ouverture de votre application. Pour désactiver cette fonctionnalité et enregistrer manuellement les utilisateurs pour le push, cochez Désactiver l’enregistrement push automatique.

  • Si la case Désactiver l’autorisation provisoire n’est pas cochée sous iOS 12 ou une version ultérieure, l’utilisateur sera provisoirement (silencieusement) autorisé à recevoir le push silencieux. Si cette option est cochée, l’utilisateur affiche l’invite de notification push native.
  • Si vous devez configurer exactement quand l’invite est affichée lors de l’exécution, désactivez l’enregistrement automatique de l’éditeur de configuration Braze et utilisez AppboyBinding.PromptUserForPushPermissions() à la place.

L’éditeur Unity affiche les options de configuration Braze. Dans cet éditeur, « Automate Unity iOS integration » (Automatiser l’intégration d’Unity iOS), « integrate push with braze » (Intégrer les notifications push avec Braze), et « disable automatic push registration » (Désactiver l’enregistrement automatique des notifications push) sont activés.

Étape 2.1 : Mise à jour AndroidManifest.xml

Si votre application n’a pas de AndroidManifest.xml, vous pouvez utiliser ce qui suit comme modèle. Sinon, si vous avez déjà un AndroidManifest.xml, assurez-vous que l’une des sections manquantes suivantes est ajoutée à votre AndroidManifest.xml existant.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?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 : Stocker 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.

Ensuite, dans votre fichier mainTemplate.gradle, ajoutez ce qui suit :

1
2
3
4
5
6
7
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 un Jar ADM

Le fichier Jar ADM requis peut être placé n’importe où dans votre projet, conformément à la documentation JAR d’Unity.

Étape 2.4 : Ajouter un identifiant secret client et un identifiant client à votre tableau de bord de Braze

Enfin, vous devez ajouter le Secret Client et l’ID Client que vous avez obtenus dans l’Étape 1 à la page Gérer les paramètres du tableau de bord de Braze.

Étape 3 : Définir les auditeurs de notifications push

Étape 3.1 : Activer l’écoute des messages reçus par push

L’auditeur de notification push reçu est déclenché lorsqu’un utilisateur reçoit une notification push. Pour envoyer la charge utile push à Unity, définissez le nom de votre objet de jeu et poussez la méthode de rappel de l’auditeur reçu sous la rubrique Définir l’auditeur reçu des notifications push.

Étape 3.2 : Activation de l’auditeur push ouvert

L’auditeur ouvert est déclenché lorsqu’un utilisateur lance l’application en cliquant sur une notification push. Pour envoyer la charge utile de notification push à Unity, définissez le nom de votre objet de jeu et appuyez sur la méthode de rappel de l’écoute ouverte dans Définir l’auditeur ouvert de notifications push.

Étape 3.3 : Activation de l’auditeur “push deleted

L’auditeur push supprimé est déclenché lorsqu’un utilisateur balaye ou rejette une notification push. Pour envoyer la charge utile push à Unity, définissez le nom de votre objet de jeu et la méthode de rappel push deleted listener sous la rubrique Définir l’auditeur supprimé des notifications push.

Exemple d’écoute push

L’exemple suivant implémente l’objet de jeu BrazeCallback utilisant respectivement un nom de méthode de rappel de PushNotificationReceivedCallback, PushNotificationOpenedCallback, et PushNotificationDeletedCallback.

Ce graphique d’exemple d’implémentation montre les options de configuration Braze mentionnées dans les sections précédentes et un extrait de code C#.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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’écoute des messages reçus par push

Le récepteur push reçu 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). Définissez l’auditeur de notification push reçu dans l’éditeur de configuration Braze. Si vous devez configurer votre auditeur d’objet de jeu lors de l’exécution, utilisez AppboyBinding.ConfigureListener() et spécifiez BrazeUnityMessageType.PUSH_RECEIVED.

L’éditeur Unity affiche les options de configuration Braze. Dans cet éditeur, l’option « Set Push Received Listener » (Définir l’écoute reçue par le push) est étendue, et le « Game Object Name » (Nom de l’objet de jeu) et « Callback Method Name » (Nom de la méthode de rappel) (PushNotificationAdministredCallback) sont fournis.

Étape 3.2 : Activation de l’auditeur push ouvert

L’auditeur ouvert est déclenché lorsqu’un utilisateur lance l’application en cliquant sur une notification push. Pour envoyer la charge utile de notifications push à Unity, définissez le nom de votre objet de jeu et de la méthode de rappel d’écoute ouverte des notifications push sous l’option Définir l’auditeur ouvert de notifications push :

L’éditeur Unity affiche les options de configuration Braze. Dans cet éditeur, l’option « Set Push Received Listener » (Définir l’écoute reçue par le push) est étendue, et le « Game Object Name » (Nom de l’objet de jeu) et « Callback Method Name » (Nom de la méthode de rappel) (PushNotificationOpenedCallback) sont fournis.

Si vous devez configurer votre auditeur d’objet de jeu lors de l’exécution, utilisez AppboyBinding.ConfigureListener() et spécifiez BrazeUnityMessageType.PUSH_OPENED.

Exemple d’écoute push

L’exemple suivant implémente l’objet de jeu AppboyCallback utilisant respectivement un nom de méthode de rappel de PushNotificationReceivedCallback et PushNotificationOpenedCallback.

Ce graphique d’exemple d’implémentation montre les options de configuration Braze mentionnées dans les sections précédentes et un extrait de code C#.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 site AndroidManifest.xml à l’étape précédente, des “push listeners” ont été automatiquement mis en place lorsque vous avez ajouté les lignes suivantes. Aucune autre configuration n’est donc nécessaire.

1
2
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />

Configurations optionnelles

Ressources liens profonds vers in-app

Bien que Braze puisse gérer des liens profonds standard par défaut (tels que les URL de sites Internet, les URI Android, etc.), la création de liens profonds personnalisés nécessite une configuration du Manifeste supplémentaire.

Pour obtenir des conseils sur la configuration, consultez la page Création de liens profonds vers des ressources In-App.

Ajout d’icônes de notification push Braze

Pour ajouter des icônes push à votre projet, créez un plug-in Android Archive (AAR) ou une bibliothèque Android contenant les fichiers d’image des icônes. Pour connaître les étapes et les informations, reportez-vous à la documentation d’Unity : Projets de bibliothèques Android et plug-ins Android Archive.

Fonction de rappel de jeton de notification push

Pour recevoir une copie des jetons d’appareil de Braze à partir du 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 à l’heure actuelle.

Conditions préalables

Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK .NET MAUI Braze.

Mise en place des notifications push

Pour intégrer les notifications push pour .NET MAUI (anciennement Xamarin), vous devrez suivre les étapes pour les notifications push natives Android. Les étapes suivantes ne sont qu’un résumé. Pour une présentation complète, consultez le guide sur les notifications push natives.

Étape 1 : Mettre à jour votre projet

  1. Ajoutez Firebase à votre projet Android.
  2. Ajoutez la bibliothèque Cloud Messaging au build.gradle de votre projet Android :
    1
    
      implementation "google.firebase:firebase-messaging:+"
    

Étape 2 : Créez vos identifiants JSON

  1. Dans Google Cloud, activez l’API Firebase Cloud Messaging.
  2. Sélectionnez Comptes de service > votre projet > Créer un compte de service, puis saisissez un nom de compte de service, un ID et une description. Lorsque vous avez terminé, sélectionnez Créer et continuer.
  3. Dans le champ Rôle, recherchez et sélectionnez Firebase Cloud Messaging API Admin dans la liste des rôles.
  4. Dans Comptes de service, choisissez votre projet, puis sélectionnez Actions > Gérer les clés > Ajouter une clé > Créer une nouvelle clé. Choisissez JSON, puis sélectionnez Créer.

Étape 3 : Téléchargez vos informations d’identification JSON

  1. Dans Braze, sélectionnez Paramètres > Paramètres des applications. Sous les paramètres de notifications push de votre application Android, choisissez Firebase, puis sélectionnez Charger un fichier JSON et chargez les identifiants que vous avez générés précédemment. Lorsque vous avez terminé, sélectionnez Enregistrer.
  2. Activez l’enregistrement automatique des jetons FCM à partir de la console Firebase. Ouvrez votre projet, puis sélectionnez  Paramètres > Paramètres du projet. Sélectionnez Cloud Messaging, puis sous API Firebase Cloud Messaging (V1), copiez le numéro dans le champ ID de l’expéditeur.
  3. Dans votre projet Android Studio, ajoutez ce qui suit à votre braze.xml.
1
2
  <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 : Terminer la configuration initiale

Consultez les instructions d’intégration de Swift pour obtenir des informations sur la configuration de votre application avec push et le stockage de vos identifiants sur notre serveur. Reportez-vous à l’exemple d’application iOS MAUI pour plus de détails.

Étape 2 : Demander une autorisation de notification push

Notre SDK .NET MAUI prend désormais en charge la configuration automatique de la fonction “push”. Configurez l’automatisation du push et les autorisations en ajoutant le code suivant à la configuration de votre instance Braze :

1
2
configuration.Push.Automation = new BRZConfigurationPushAutomation(true);
configuration.Push.Automation.RequestAuthorizationAtLaunch = false;

Reportez-vous à l’exemple d’application iOS MAUI pour plus de détails. Pour plus de détails, consultez la documentation Xamarin relative aux notifications utilisateur améliorées sur Xamarin.iOS.

New Stuff!