Skip to content

Logo BrazeIntégrer le SDK Braze

Découvrez comment intégrer le SDK de Braze. Chaque SDK est hébergé dans son propre dépôt public GitHub, qui comprend des exemples d’applications entièrement constructibles que vous pouvez utiliser pour tester les fonctionnalités de Braze ou mettre en œuvre parallèlement à vos propres applications. Pour en savoir plus, consultez les références, les référentiels et les exemples d’applications. Pour plus d’informations générales sur le SDK, consultez le site Getting started : Aperçu de l’intégration.

À propos du SDK Web Braze

Le SDK Web Braze vous permet de collecter des données analytiques et d’afficher des messages in-app enrichis, des notifications push et des messages Content Cards à vos utilisateurs Web. Pour plus d’informations, consultez la documentation de référence JavaScript de Braze.

Intégrer le SDK Web

Vous pouvez intégrer le SDK Web Braze en utilisant les méthodes suivantes. Pour des options supplémentaires, consultez les autres méthodes d’intégration.

  • Intégration basée sur le code : Intégrez le SDK Web Braze directement dans votre base de code à l’aide de votre gestionnaire de paquets préféré ou du réseau de diffusion de contenu Braze. Cela vous permet de contrôler entièrement le chargement et la configuration du SDK.
  • Google Tag Manager : Une solution sans code qui vous permet d’intégrer le SDK Web Braze sans modifier le code de votre site. Pour plus d’informations, consultez Google Tag Manager avec le SDK Braze.

Étape 1 : Installer la bibliothèque Braze

Vous pouvez installer la bibliothèque Braze en utilisant l’une des méthodes suivantes. Toutefois, si votre site web utilise un Content-Security-Policy, consultez la politique de sécurité du contenu avant de poursuivre.

Si votre site utilise les gestionnaires de paquets NPM ou Yarn, vous pouvez ajouter le paquet NPM de Braze comme dépendance.

Les définitions TypeScript sont désormais incluses à partir de la version v3.0.0. Pour les notes sur la mise à jour de 2.x vers 3.x, consultez notre journal des modifications.

1
2
3
npm install --save @braze/web-sdk
# or, using yarn:
# yarn add @braze/web-sdk

Une fois installé, vous pouvez import ou require la bibliothèque de la manière habituelle :

1
2
3
import * as braze from "@braze/web-sdk";
// or, using `require`
const braze = require("@braze/web-sdk");

Ajoutez le SDK Web Braze directement à votre code HTML en faisant référence à notre script hébergé par le réseau de diffusion de contenu, qui charge la bibliothèque de manière asynchrone.

Étape 2 : Initialiser le SDK

Une fois le SDK Web Braze ajouté à votre site web, initialisez la bibliothèque à l’aide de la clé API et de l’URL de l’endpoint SDK disponibles dans Paramètres > Paramètres des applications dans votre tableau de bord de Braze. Pour obtenir la liste complète des options de braze.initialize(), ainsi que nos autres méthodes JavaScript, consultez la documentation JavaScript de Braze.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// initialize the SDK
braze.initialize('YOUR-API-KEY-HERE', {
    baseUrl: "YOUR-SDK-ENDPOINT-HERE",
    enableLogging: false, // set to `true` for debugging
    allowUserSuppliedJavascript: false, // set to `true` to support custom HTML messages
});

// Enable automatic display of in-app messages
// Required if you want in-app messages to display automatically when triggered
braze.automaticallyShowInAppMessages();

// if you use Content Cards
braze.subscribeToContentCardsUpdates(function(cards){
    // cards have been updated
});

// optionally set the current user's external ID before starting a new session
// you can also call `changeUser` later in the session after the user logs in
if (isLoggedIn){
    braze.changeUser(userIdentifier);
}

// `openSession` should be called last - after `changeUser` and `automaticallyShowInAppMessages`
braze.openSession();

Résolution des problèmes de sessions manquantes pour les utilisateurs anonymes

Si vous constatez un comportement de « session manquante » ou si vous n’êtes pas en mesure de suivre la session des utilisateurs anonymes sur le web, assurez-vous que votre intégration appelle braze.openSession() lors de l’initialisation.

  • Scénario : Les utilisateurs anonymes peuvent renvoyer un ID Braze, mais les données de session sont vides ou manquantes.
  • Cause : L’implémentation n’appelle pas braze.openSession().
  • Résolution : Appelez toujours braze.openSession() après l’initialisation (et après braze.changeUser() si vous définissez un ID externe).

Pour plus d’informations, consultez l’étape 2 : Initialiser le SDK.

Conditions préalables

Avant de pouvoir utiliser cette méthode d’intégration, vous devez créer un compte et un conteneur pour Google Tag Manager.

Dans Google Tag Manager, sélectionnez votre espace de travail, puis choisissez Templates. Dans le volet Tag Template, sélectionnez Search Gallery.

La page des modèles pour un exemple d'espace de travail dans Google Tag Manager.

Étape 2 : Ajouter le modèle de balise d’initialisation

Dans la galerie de modèles, recherchez braze-inc, puis sélectionnez Braze Initialization Tag.

La galerie de modèles présentant les différents modèles « braze-inc ».

Sélectionnez Add to workspace > Add.

La page « Braze Initialization Tag » dans Google Tag Manager.

Étape 3 : Configurer la balise

Dans la section Templates, sélectionnez le modèle que vous venez d’ajouter.

La page « Templates » dans Google Tag Manager affichant le modèle Braze Initialization Tag.

Sélectionnez l’icône en forme de crayon pour ouvrir le menu déroulant Tag Configuration.

La vignette Tag Configuration avec l'icône « crayon » affichée.

Saisissez les informations minimales requises :

Champ Description
API Key Votre clé API Braze, disponible dans le tableau de bord de Braze sous Settings > App Settings.
API Endpoint L’URL de votre endpoint REST. Votre endpoint dépend de l’URL de Braze pour votre instance.
SDK Version La version MAJOR.MINOR la plus récente du SDK Web Braze indiquée dans le journal des modifications. Par exemple, si la dernière version est 4.1.2, saisissez 4.1. Pour en savoir plus, consultez À propos de la gestion des versions du SDK.

Pour accéder à des paramètres d’initialisation supplémentaires, sélectionnez Braze Initialization Options et choisissez les options dont vous avez besoin.

La liste des options d'initialisation Braze sous « Tag Configuration ».

Étape 4 : Choisir les options d’initialisation

La balise d’initialisation Braze propose les options suivantes. La plupart correspondent directement aux InitializationOptions du SDK Web, et certaines correspondent à des méthodes du SDK Web que la balise appellera lors de l’initialisation. Sélectionnez les options qui correspondent à vos besoins d’intégration :

Option GTM Configuration ou méthode du SDK Web Description
Allow HTML In-App Messages allowUserSuppliedJavascript Active les messages in-app HTML, les bannières et les actions de clic JavaScript fournies par l’utilisateur. Nécessaire pour les messages in-app HTML et les bannières utilisant du HTML personnalisé. Activez cette option uniquement si vous faites confiance au contenu HTML et JavaScript, car elle autorise l’exécution de JavaScript fourni par l’utilisateur.
App Version Number appVersion, appVersionNumber Version de l’application pour la segmentation (par exemple, 1.2.3.4).
Automatically Open New Session braze.openSession() Ouvre une nouvelle session après l’initialisation du SDK en appelant cette méthode automatiquement.
Automatically show new in app messages braze.automaticallyShowInAppMessages() Affiche automatiquement les nouveaux messages in-app lorsqu’ils arrivent du serveur, en appelant cette méthode après l’initialisation.
Disable Automatic Push Token Maintenance disablePushTokenMaintenance Empêche le SDK de synchroniser les jetons de notification push avec le backend de Braze lors des nouvelles sessions.
Disable Automatic Service Worker Registration manageServiceWorkerExternally À utiliser si vous enregistrez et gérez vous-même le service de traitement.
Disable Cookies noCookies Utilise localStorage à la place des cookies pour les données utilisateur/session. Empêche la reconnaissance entre sous-domaines.
Disable Font Awesome doNotLoadFontAwesome Empêche le SDK de charger Font Awesome depuis le réseau de diffusion de contenu. À utiliser si votre site dispose déjà de Font Awesome.
Enable SDK Authentication enableSdkAuthentication Active l’authentification SDK.
Enable Web SDK Logging enableLogging Active la journalisation dans la console à des fins de débogage. À retirer avant la mise en production.
Minimum Interval Between Triggered Messages minimumIntervalBetweenTriggerActionsInSeconds Nombre minimum de secondes entre les actions de déclenchement (valeur par défaut : 30).
Open Cards in New Tab openCardsInNewTab Ouvre les liens des cartes de contenu dans un nouvel onglet lorsque l’interface par défaut du flux est utilisée.
Service Worker Location serviceWorkerLocation Chemin personnalisé pour le fichier du service de traitement (par défaut : /service-worker.js).
Session Timeout (seconds) sessionTimeoutInSeconds Délai d’expiration de la session en secondes (valeur par défaut : 1 800).

Pour les options non exposées dans le modèle GTM (telles que contentSecurityNonce, localization ou devicePropertyAllowlist), utilisez plutôt l’initialisation à l’exécution.

Étape 5 : Configurer le déclenchement sur toutes les pages

La balise d’initialisation doit être exécutée sur toutes les pages de votre site. Cela vous permet d’utiliser les méthodes du SDK Braze et d’enregistrer les analyses des notifications push Web.

Étape 6 : Vérifier votre intégration

Vous pouvez vérifier votre intégration en utilisant l’une des options suivantes :

  • Option 1 : À l’aide de l’outil de débogage de Google Tag Manager, vérifiez que la balise d’initialisation Braze se déclenche correctement sur les pages ou événements configurés.
  • Option 2 : Vérifiez les requêtes réseau envoyées à Braze depuis votre page Web. De plus, la bibliothèque globale window.braze devrait maintenant être définie.

Filtrage du trafic des robots

Le nombre de MAU peut inclure un pourcentage d’utilisateurs robots, ce qui gonfle votre nombre d’utilisateurs actifs par mois. Bien que le SDK Web Braze intègre une détection de certains robots d’indexation courants (tels que les robots des moteurs de recherche et les robots de prévisualisation des réseaux sociaux), il est particulièrement important de rester proactif en mettant en place des solutions robustes pour détecter les robots, car les mises à jour du SDK ne permettent pas à elles seules de détecter systématiquement tous les nouveaux robots.

Limites de la détection des robots côté SDK

Le SDK Web comprend une détection de base des robots fondée sur l’agent utilisateur, qui filtre les robots d’indexation connus. Cependant, cette approche présente certaines limites :

  • De nouveaux robots apparaissent constamment : Les entreprises spécialisées dans l’intelligence artificielle et d’autres acteurs développent régulièrement de nouveaux robots qui peuvent se dissimuler afin d’échapper à la détection.
  • Usurpation de l’agent utilisateur : Les robots sophistiqués peuvent imiter les agents utilisateurs légitimes des navigateurs.
  • Robots personnalisés : Les utilisateurs non techniciens peuvent désormais créer facilement des robots à l’aide de grands modèles de langage (LLM), rendant le comportement des robots imprévisible.

Mise en œuvre du filtrage des robots

La solution la plus robuste consiste à mettre en œuvre votre propre logique de filtrage des robots avant d’initialiser le SDK Braze. Les approches courantes comprennent :

Exiger une interaction de l’utilisateur

Envisagez de retarder l’initialisation du SDK jusqu’à ce qu’un utilisateur effectue une interaction significative, telle que l’acceptation d’une bannière de consentement aux cookies, le défilement ou un clic. Cette approche est souvent plus facile à mettre en œuvre et peut s’avérer très efficace pour filtrer le trafic des robots.

Détection personnalisée des robots

Mettez en place une détection personnalisée en fonction des modèles de trafic spécifiques de vos robots, par exemple :

  • Analyse des chaînes de caractères des agents utilisateurs pour identifier les modèles que vous avez détectés dans votre trafic
  • Vérification des indicateurs de navigateur sans interface graphique
  • Utilisation de services tiers de détection des robots
  • Surveillance des signaux comportementaux spécifiques à votre site

Exemple d’initialisation conditionnelle :

1
2
3
4
5
6
7
8
// Only initialize Braze if your custom bot detection determines this is not a bot
if (!isLikelyBot()) {
  braze.initialize('YOUR-API-KEY-HERE', {
    baseUrl: "YOUR-SDK-ENDPOINT-HERE"
  });
  braze.automaticallyShowInAppMessages();
  braze.openSession();
}

Bonnes pratiques

  • Analysez régulièrement vos données MAU et les tendances de trafic web afin d’identifier tout nouveau comportement de robot.
  • Effectuez des tests approfondis pour vous assurer que votre filtrage des robots n’empêche pas le suivi des utilisateurs légitimes.
  • Mettez à jour votre logique de filtrage en fonction des modèles de trafic des robots que vous observez dans votre environnement.

Configurations optionnelles

Journalisation

Pour activer rapidement la journalisation, vous pouvez ajouter ?brazeLogging=true comme paramètre à l’URL de votre site web. Vous pouvez également activer la journalisation de base ou personnalisée. Pour un aperçu centralisé sur toutes les plateformes, consultez la section Journalisation détaillée.

Journalisation de base

Utilisez enableLogging pour enregistrer les messages de débogage de base dans la console JavaScript avant l’initialisation du SDK.

1
enableLogging: true

Votre méthode doit être similaire à la suivante :

1
2
3
4
5
braze.initialize('API-KEY', {
    baseUrl: 'API-ENDPOINT',
    enableLogging: true
});
braze.openSession();

Utilisez braze.toggleLogging() pour enregistrer les messages de débogage de base dans la console JavaScript après l’initialisation du SDK. Votre méthode doit être similaire à la suivante :

1
2
3
4
5
6
braze.initialize('API-KEY', {
    baseUrl: 'API-ENDPOINT',
});
braze.openSession();
...
braze.toggleLogging();

Journalisation personnalisée

Utilisez setLogger pour enregistrer des messages de débogage personnalisés dans la console JavaScript. Contrairement aux journaux de base, ces journaux ne sont pas visibles par les utilisateurs.

1
setLogger(loggerFunction: (message: STRING) => void): void

Remplacez STRING par votre message sous la forme d’un paramètre de chaîne de caractères unique. Votre méthode doit être similaire à la suivante :

1
2
3
4
5
braze.initialize('API-KEY');
braze.setLogger(function(message) {
    console.log("Braze Custom Logger: " + message);
});
braze.openSession();

Mise à niveau du SDK

Lorsque vous faites référence au SDK Web Braze à partir de notre réseau de diffusion de contenu, par exemple https://js.appboycdn.com/web-sdk/a.a/braze.min.js (comme recommandé par nos instructions d’intégration par défaut), vos utilisateurs reçoivent automatiquement les mises à jour mineures (corrections de bogues et fonctionnalités rétrocompatibles, versions a.a.a à a.a.z dans les exemples ci-dessus) lorsqu’ils actualisent votre site.

Cependant, lorsque nous publions des modifications majeures, nous vous demandons de mettre à jour manuellement le SDK Web Braze afin de garantir que les changements majeurs n’affectent pas votre intégration. De plus, si vous téléchargez notre SDK et l’hébergez vous-même, vous ne recevrez aucune mise à jour automatique et devrez effectuer la mise à niveau manuellement pour bénéficier des dernières fonctionnalités et corrections de bogues.

Vous pouvez vous tenir au courant de notre dernière version en suivant notre flux de publication avec le lecteur RSS ou le service de votre choix, et consulter notre journal des modifications pour un compte-rendu complet de l’historique des versions de notre SDK Web. Pour mettre à niveau le SDK Web Braze :

  • Mettez à jour la version de la bibliothèque Braze en modifiant le numéro de version de https://js.appboycdn.com/web-sdk/[OLD VERSION NUMBER]/braze.min.js ou dans les dépendances de votre gestionnaire de paquets.
  • Si vous avez intégré les notifications push web, mettez à jour le fichier du service de traitement sur votre site. Par défaut, celui-ci se trouve à /service-worker.js dans le répertoire racine de votre site, mais l’emplacement peut être personnalisé dans certaines intégrations. Vous devez accéder au répertoire racine pour héberger un fichier de service de traitement.

Vous devez mettre à jour ces deux fichiers de manière coordonnée afin d’assurer un fonctionnement correct.

Autres méthodes d’intégration

Pages mobiles accélérées (AMP)

Voir plus

Étape 1 : Inclure le script de notification push web AMP

Ajoutez la balise de script asynchrone suivante à votre en-tête :

1
<script async custom-element="amp-web-push" src="https://cdn.ampproject.org/v0/amp-web-push-0.1.js"></script>

Étape 2 : Ajouter des widgets d’abonnement

Ajoutez un widget au corps de votre code HTML qui permet aux utilisateurs de s’abonner et de se désabonner des notifications push.

1
2
3
4
5
6
7
8
9
<!-- A subscription widget -->
<amp-web-push-widget visibility="unsubscribed" layout="fixed" width="250" height="80">
  <button on="tap:amp-web-push.subscribe">Subscribe to Notifications</button>
</amp-web-push-widget>

<!-- An unsubscription widget -->
<amp-web-push-widget visibility="subscribed" layout="fixed" width="250" height="80">
  <button on="tap:amp-web-push.unsubscribe">Unsubscribe from Notifications</button>
</amp-web-push-widget>

Étape 3 : Ajouter helper-iframe et permission-dialog

Le composant AMP Web Push génère une fenêtre contextuelle pour gérer les abonnements push. Il est donc nécessaire d’ajouter les fichiers d’aide suivants à votre projet pour activer cette fonctionnalité :

Étape 4 : Créer un fichier de service de traitement

Créez un fichier service-worker.js dans le répertoire racine de votre site web et ajoutez-y l’extrait de code suivant :

Étape 5 : Configurer l’élément HTML de notification push web AMP

Ajoutez l’élément HTML amp-web-push suivant au corps de votre page HTML. Notez que vous devez ajouter vos paramètres de requête apiKey et baseUrl à service-worker-URL.

1
2
3
4
5
6
7
<amp-web-push
layout="nodisplay"
id="amp-web-push"
helper-iframe-url="FILE_PATH_TO_YOUR_HELPER_IFRAME"
permission-dialog-url="FILE_PATH_TO_YOUR_PERMISSION_DIALOG"
service-worker-url="FILE_PATH_TO_YOUR_SERVICE_WORKER?apiKey={YOUR_API_KEY}&baseUrl={YOUR_BASE_URL}"
>

Définition de module asynchrone (AMD)

Désactiver la prise en charge

Si votre site utilise RequireJS ou un autre chargeur de modules AMD, mais que vous préférez charger le SDK Web Braze via l’une des autres options de cette liste, vous pouvez charger une version de la bibliothèque qui n’inclut pas la prise en charge AMD. Cette version de la bibliothèque peut être chargée depuis l’emplacement suivant du réseau de diffusion de contenu :

Chargeur de modules

Si vous utilisez RequireJS ou d’autres chargeurs de modules AMD, nous vous recommandons d’auto-héberger une copie de notre bibliothèque et de la référencer comme vous le feriez avec d’autres ressources :

1
2
3
4
5
6
require(['path/to/braze.min.js'], function(braze) {
  braze.initialize('YOUR-API-KEY-HERE', { baseUrl: 'YOUR-SDK-ENDPOINT' });
  // Required if you want in-app messages to display automatically
  braze.automaticallyShowInAppMessages();
  braze.openSession();
});

Electron

Electron ne prend pas officiellement en charge les notifications push web (voir ce problème GitHub). Il existe d’autres solutions de contournement open source que vous pouvez essayer, mais qui n’ont pas été testées par Braze.

Framework Jest

Lorsque vous utilisez Jest, vous pouvez rencontrer une erreur similaire à SyntaxError: Unexpected token 'export'. Pour la corriger, ajustez votre configuration dans package.json pour ignorer le SDK Braze :

1
2
3
4
5
"jest": {
  "transformIgnorePatterns": [
    "/node_modules/(?!@braze)"
  ]
}

Frameworks SSR

Le SDK Web s’exécute dans un environnement de navigateur. Dans les frameworks SSR, initialisez Braze dans un composant côté client uniquement afin que votre serveur n’exécute jamais le code du SDK.

Import dynamique indépendant du framework

Si votre framework n’est pas répertorié dans cette section, vous pouvez importer dynamiquement Braze depuis un hook de cycle de vie côté client uniquement.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// MyComponent/braze-exports.js
// Export the parts of the SDK that you need.
export { initialize, openSession } from "@braze/web-sdk";

// MyComponent/MyComponent.js
useEffect(() => {
    import("./braze-exports.js").then(({ initialize, openSession }) => {
        initialize("YOUR-API-KEY-HERE", {
            baseUrl: "YOUR-SDK-ENDPOINT",
            enableLogging: true,
        });
        openSession();
    });
}, []);

Si vous utilisez webpack, vous pouvez importer dynamiquement uniquement les exports spécifiques du SDK.

1
2
3
4
5
6
7
8
9
10
11
12
13
// MyComponent.js
useEffect(() => {
    import(
        /* webpackExports: ["initialize", "openSession"] */
        "@braze/web-sdk"
    ).then(({ initialize, openSession }) => {
        initialize("YOUR-API-KEY-HERE", {
            baseUrl: "YOUR-SDK-ENDPOINT",
            enableLogging: true,
        });
        openSession();
    });
}, []);

Hook partagé pour Next.js et Remix

Créez un hook réutilisable useBraze et appelez-le à la racine de votre application.

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
// hooks/useBraze.ts
import { useEffect, useRef } from "react";

export function useBraze() {
  const didInit = useRef(false);

  useEffect(() => {
    if (didInit.current) {
      return;
    }
    didInit.current = true;

    import("@braze/web-sdk")
      .then((braze) => {
        const initialized = braze.initialize("YOUR-API-KEY-HERE", {
          // Use your Braze Web SDK endpoint, such as sdk.iad-01.braze.com.
          baseUrl: "YOUR-SDK-ENDPOINT",
          enableLogging: false,
        });
        if (!initialized) {
          return;
        }

        // Optional: Identify signed-in users before opening a session.
        // braze.changeUser("external-id");

        // Optional: Automatically display in-app messages.
        // braze.automaticallyShowInAppMessages();
        braze.openSession();
      })
      .catch((error) => {
        console.error("Unable to load Braze SDK:", error);
      });
  }, []);
}

Next.js (App Router)

Appelez useBraze dans un composant client qui encapsule votre application.

1
2
3
4
5
6
7
8
9
10
// app/components/AppRoot.tsx
"use client";

import type { ReactNode } from "react";
import { useBraze } from "../hooks/useBraze";

export function AppRoot({ children }: { children: ReactNode }) {
  useBraze();
  return <>{children}</>;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// app/layout.tsx
import type { ReactNode } from "react";
import { AppRoot } from "./components/AppRoot";

export default function RootLayout({
  children,
}: {
  children: ReactNode;
}) {
  return (
    <html lang="en">
      <body>
        <AppRoot>{children}</AppRoot>
      </body>
    </html>
  );
}

Next.js (Pages Router)

Appelez useBraze en haut de votre composant d’application personnalisé.

1
2
3
4
5
6
7
8
9
10
11
// pages/_app.tsx
import type { AppProps } from "next/app";
import { useBraze } from "../hooks/useBraze";

export default function App({ Component, pageProps }: AppProps) {
  useBraze();

  return (
    <Component {...pageProps} />
  );
}

Remix

Appelez useBraze en haut de votre composant de route racine.

Pour les exemples de validation Remix en local, exécutez PORT=4013 npm run dev.

1
2
3
4
5
6
7
8
9
// app/root.tsx
import { Outlet } from "@remix-run/react";
import { useBraze } from "./hooks/useBraze";

export default function App() {
  useBraze();

  return <Outlet />;
}

Journalisation des événements et mise à jour des utilisateurs

Une fois que useBraze a initialisé le SDK à la racine de votre application, d’autres composants côté client peuvent appeler les méthodes Braze. Un modèle courant consiste à les appeler dans des actions utilisateur, telles que onClick ou onSubmit. Dans l’exemple, les méthodes du SDK sont chargées dans le gestionnaire de clic plutôt qu’en haut du fichier. Cela permet de garder le SDK Web hors du code serveur et de ne charger que ce dont l’action a besoin. Le commentaire webpackExports indique à webpack quelles méthodes inclure, ce qui réduit la taille de votre bundle.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// app/components/BuyButton.tsx
"use client";

export function BuyButton() {
  const handleClick = async () => {
    const { logCustomEvent, logPurchase, getUser } = await import(
      /* webpackExports: ["logCustomEvent", "logPurchase", "getUser"] */
      "@braze/web-sdk"
    );

    getUser()?.setCustomUserAttribute("last_purchase_date", "2026-05-04");
    logCustomEvent("clicked_buy", { source: "product_page" });
    logPurchase("sku_123", 19.99, "USD");
  };

  return <button onClick={handleClick}>Buy</button>;
}

Cet exemple montre un composant BuyButton qui enregistre l’activité lorsqu’un utilisateur clique sur Acheter. Il commence par importer uniquement logCustomEvent, logPurchase et getUser au moment du clic. Ensuite, il met à jour un attribut utilisateur, enregistre un événement personnalisé et enregistre un achat. Ce modèle vous permet de centraliser l’initialisation dans useBraze, tout en suivant les actions significatives depuis n’importe quel composant côté client.

Si vous utilisez Remix avec Vite et que les imports depuis la racine du paquet échouent à l’exécution, utilisez la solution de contournement Vite existante. Pour plus d’informations, consultez Vite.

Pour une liste complète des méthodes disponibles, consultez la documentation de référence JavaScript de Braze.

Tealium iQ

Tealium iQ propose une intégration de base clé en main de Braze. Pour configurer l’intégration, recherchez Braze dans l’interface Tealium Tag Management et fournissez la clé API du SDK Web à partir de votre tableau de bord.

Pour plus de détails ou pour obtenir une assistance approfondie concernant la configuration de Tealium, consultez notre documentation sur l’intégration ou contactez votre gestionnaire de compte Tealium.

Vite

Si vous utilisez Vite et voyez un avertissement concernant des dépendances circulaires ou Uncaught TypeError: Class extends value undefined is not a constructor or null, vous devrez peut-être exclure le SDK Braze de sa découverte de dépendances :

1
2
3
optimizeDeps: {
    exclude: ['@braze/web-sdk']
},

Autres gestionnaires de balises

Braze peut également être compatible avec d’autres solutions de gestion des balises en suivant nos instructions d’intégration au sein d’une balise HTML personnalisée. Contactez un conseiller Braze si vous avez besoin d’aide pour évaluer ces solutions.

Intégration du SDK Android

Étape 1 : Mettre à jour votre configuration de compilation Gradle

Dans la configuration du dépôt de votre projet (par exemple, settings.gradle, settings.gradle.kts ou le fichier build.gradle de niveau supérieur), ajoutez mavenCentral() à votre liste de dépôts. Cette syntaxe est identique pour Groovy et Kotlin DSL.

1
2
3
repositories {
  mavenCentral()
}

Ensuite, ajoutez Braze à vos dépendances. Dans les exemples suivants, remplacez SDK_VERSION par la version actuelle de votre SDK Android Braze. Pour obtenir la liste complète des versions, consultez les journaux des modifications.

Si vous ne prévoyez pas d’utiliser les composants d’interface Braze, ajoutez les éléments suivants à vos dépendances.

1
2
3
4
dependencies {
    implementation 'com.braze:android-sdk-base:SDK_VERSION' // (Required) Adds dependencies for the base Braze SDK.
    implementation 'com.braze:android-sdk-location:SDK_VERSION' // (Optional) Adds dependencies for Braze location services.
}
1
2
3
4
dependencies {
    implementation("com.braze:android-sdk-base:SDK_VERSION") // (Required) Adds dependencies for the base Braze SDK.
    implementation("com.braze:android-sdk-location:SDK_VERSION") // (Optional) Adds dependencies for Braze location services.
}

Dans votre fichier gradle/libs.versions.toml :

1
2
3
4
5
6
[versions]
braze = "SDK_VERSION"

[libraries]
braze-android-sdk-base = { group = "com.braze", name = "android-sdk-base", version.ref = "braze" }
braze-android-sdk-location = { group = "com.braze", name = "android-sdk-location", version.ref = "braze" }

Ensuite, dans votre fichier build.gradle ou build.gradle.kts, ajoutez les dépendances suivantes. Cette syntaxe est identique pour Groovy et Kotlin DSL.

1
2
3
4
dependencies {
    implementation(libs.braze.android.sdk.base) // (Required) Adds dependencies for the base Braze SDK.
    implementation(libs.braze.android.sdk.location) // (Optional) Adds dependencies for Braze location services.
}

Si vous prévoyez d’utiliser les composants d’interface Braze, ajoutez les éléments suivants à vos dépendances.

1
2
3
4
dependencies {
    implementation 'com.braze:android-sdk-ui:SDK_VERSION' // (Required) Adds dependencies for the Braze SDK and Braze UI components.
    implementation 'com.braze:android-sdk-location:SDK_VERSION' // (Optional) Adds dependencies for Braze location services.
}
1
2
3
4
dependencies {
    implementation("com.braze:android-sdk-ui:SDK_VERSION") // (Required) Adds dependencies for the Braze SDK and Braze UI components.
    implementation("com.braze:android-sdk-location:SDK_VERSION") // (Optional) Adds dependencies for Braze location services.
}

Dans votre fichier gradle/libs.versions.toml :

1
2
3
4
5
6
[versions]
braze = "SDK_VERSION"

[libraries]
braze-android-sdk-ui = { group = "com.braze", name = "android-sdk-ui", version.ref = "braze" }
braze-android-sdk-location = { group = "com.braze", name = "android-sdk-location", version.ref = "braze" }

Ensuite, dans votre fichier build.gradle ou build.gradle.kts, ajoutez les dépendances suivantes. Cette syntaxe est identique pour Groovy et Kotlin DSL.

1
2
3
4
dependencies {
    implementation(libs.braze.android.sdk.ui) // (Required) Adds dependencies for the Braze SDK and Braze UI components.
    implementation(libs.braze.android.sdk.location) // (Optional) Adds dependencies for Braze location services.
}

Étape 2 : Configurer votre braze.xml

Créez un fichier braze.xml dans le dossier res/values de votre projet. Si vous êtes sur un cluster de données spécifique ou disposez d’un endpoint personnalisé préexistant, vous devez également spécifier l’endpoint dans votre fichier braze.xml.

Le contenu de ce fichier devrait ressembler à l’extrait de code suivant. Veillez à remplacer YOUR_APP_IDENTIFIER_API_KEY par l’identifiant figurant dans la page Gérer les paramètres du tableau de bord de Braze. Connectez-vous à dashboard.braze.com pour trouver l’adresse de votre cluster.

1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string translatable="false" name="com_braze_api_key">YOUR_APP_IDENTIFIER_API_KEY</string>
  <string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
</resources>

Étape 3 : Ajouter des autorisations à AndroidManifest.xml

Ensuite, ajoutez les autorisations suivantes à votre AndroidManifest.xml :

1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Étape 4 : Activer l’initialisation différée (facultatif)

Pour utiliser l’initialisation différée, la version minimale requise du SDK Braze est la suivante :

Étape 4.1 : Mettre à jour votre braze.xml

L’initialisation différée est désactivée par défaut. Pour l’activer, utilisez l’une des options suivantes :

Dans le fichier braze.xml de votre projet, définissez com_braze_enable_delayed_initialization sur true.

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

Pour activer l’initialisation différée à l’exécution, utilisez la méthode suivante.

1
Braze.enableDelayedInitialization(context);
1
Braze.enableDelayedInitialization(context)

Étape 4.2 : Configurer les analyses push (facultatif)

Lorsque l’initialisation différée est activée, les analyses push sont mises en file d’attente par défaut. Cependant, vous pouvez choisir de mettre explicitement en file d’attente ou de supprimer les analyses push.

Mettre explicitement en file d’attente

Pour mettre explicitement en file d’attente les analyses push, choisissez l’une des options suivantes :

Dans votre fichier braze.xml, définissez com_braze_delayed_initialization_analytics_behavior sur QUEUE :

1
<string name="com_braze_delayed_initialization_analytics_behavior">QUEUE</string>

Ajoutez QUEUE à votre méthode Braze.enableDelayedInitialization() :

1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE)
Supprimer

Pour supprimer les analyses push, choisissez l’une des options suivantes :

Dans votre fichier braze.xml, définissez com_braze_delayed_initialization_analytics_behavior sur DROP :

1
<string name="com_braze_delayed_initialization_analytics_behavior">DROP</string>

Ajoutez DROP à la méthode Braze.enableDelayedInitialization() :

1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP)

Étape 4.3 : Initialiser manuellement le SDK

Une fois le délai que vous avez choisi écoulé, utilisez la méthode Braze.disableDelayedInitialization() pour initialiser manuellement le SDK.

1
Braze.disableDelayedInitialization(context);
1
Braze.disableDelayedInitialization(context)

Étape 5 : Activer le suivi des sessions utilisateur

Lorsque vous activez le suivi des sessions utilisateur, les appels à openSession(), closeSession(), ensureSubscribedToInAppMessageEvents() et l’enregistrement de InAppMessageManager peuvent être gérés automatiquement.

Pour enregistrer les rappels du cycle de vie de l’activité, ajoutez le code suivant à la méthode onCreate() de votre classe Application.

1
2
3
4
5
6
7
public class MyApplication extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
  }
}
1
2
3
4
5
6
class MyApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
  }
}

Pour obtenir la liste des paramètres disponibles, consultez BrazeActivityLifecycleCallbackListener.

Tester le suivi de session

Si vous rencontrez des problèmes lors des tests, activez la journalisation détaillée, puis utilisez logcat pour détecter les appels openSession et closeSession manquants dans vos activités.

  1. Dans Braze, accédez à Overview, sélectionnez votre application, puis choisissez Today dans le menu déroulant Display Data For. La page « Overview » dans Braze, avec le champ « Display Data For » réglé sur « Today ».
  2. Ouvrez votre application, puis actualisez le tableau de bord de Braze. Vérifiez que vos indicateurs ont augmenté de 1.
  3. Naviguez dans votre application et vérifiez qu’une seule session a été enregistrée dans Braze.
  4. Mettez l’application en arrière-plan pendant au moins 10 secondes, puis ramenez-la au premier plan. Vérifiez qu’une nouvelle session a été enregistrée.

Configurations optionnelles

Configuration à l’exécution

Pour définir vos options Braze dans le code plutôt que dans votre fichier braze.xml, utilisez la configuration à l’exécution. Si une valeur existe aux deux endroits, la valeur définie à l’exécution sera utilisée à la place. Une fois tous les paramètres requis fournis à l’exécution, vous pouvez supprimer votre fichier braze.xml.

Dans l’exemple suivant, un objet builder est créé puis transmis à Braze.configure(). Notez que seules certaines des options d’exécution disponibles sont affichées—consultez notre KDoc pour obtenir la liste complète.

1
2
3
4
5
6
7
8
BrazeConfig brazeConfig = new BrazeConfig.Builder()
        .setApiKey("api-key-here")
        .setCustomEndpoint("YOUR_CUSTOM_ENDPOINT_OR_CLUSTER")
        .setSessionTimeout(60)
        .setHandlePushDeepLinksAutomatically(true)
        .setGreatNetworkDataFlushInterval(10)
        .build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
6
7
8
val brazeConfig = BrazeConfig.Builder()
        .setApiKey("api-key-here")
        .setCustomEndpoint("YOUR_CUSTOM_ENDPOINT_OR_CLUSTER")
        .setSessionTimeout(60)
        .setHandlePushDeepLinksAutomatically(true)
        .setGreatNetworkDataFlushInterval(10)
        .build()
Braze.configure(this, brazeConfig)

Identifiant publicitaire Google

L’identifiant publicitaire Google (GAID) est un identifiant facultatif, spécifique à l’utilisateur, anonyme, unique et réinitialisable, destiné à la publicité et fourni par les services Google Play. Le GAID permet aux utilisateurs de réinitialiser leur identifiant, de désactiver les publicités ciblées par centres d’intérêt dans les applications Google Play et offre aux développeurs un système simple et standard pour continuer à monétiser leurs applications.

L’identifiant publicitaire Google n’est pas automatiquement collecté par le SDK Braze et doit être défini manuellement via la méthode Braze.setGoogleAdvertisingId().

1
2
3
4
5
6
7
8
9
10
11
new Thread(new Runnable() {
  @Override
  public void run() {
    try {
      AdvertisingIdClient.Info idInfo = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext());
      Braze.getInstance(getApplicationContext()).setGoogleAdvertisingId(idInfo.getId(), idInfo.isLimitAdTrackingEnabled());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}).start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
suspend fun fetchAndSetAdvertisingId(
  context: Context,
  scope: CoroutineScope = GlobalScope
) {
  scope.launch(Dispatchers.IO) {
    try {
      val idInfo = AdvertisingIdClient.getAdvertisingIdInfo(context)
      Braze.getInstance(context).setGoogleAdvertisingId(
        idInfo.id,
        idInfo.isLimitAdTrackingEnabled
      )
    } catch (e: Exception) {
      e.printStackTrace()
    }
  }
}

Suivi de la localisation

Pour activer la collecte de localisation Braze, définissez com_braze_enable_location_collection sur true dans votre fichier braze.xml :

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

Journalisation

Par défaut, le niveau de journalisation du SDK Android Braze est défini sur INFO. Vous pouvez supprimer ces journaux ou définir un niveau de journalisation différent, tel que VERBOSE, DEBUG ou WARN.

Activer les journaux

Pour faciliter la résolution des problèmes dans votre application ou réduire les délais de traitement avec l’assistance Braze, vous pouvez activer les journaux détaillés pour le SDK. Lorsque vous envoyez des journaux détaillés à l’assistance Braze, assurez-vous qu’ils commencent dès le lancement de votre application et se terminent bien après l’apparition de votre problème. Pour un aperçu centralisé, consultez la journalisation détaillée. Pour apprendre à interpréter la sortie des journaux, consultez la lecture des journaux détaillés.

Gardez à l’esprit que les journaux détaillés ne sont destinés qu’à votre environnement de développement et que vous devez les désactiver avant de publier votre application.

Pour activer les journaux directement dans votre application, ajoutez ce qui suit à la méthode onCreate() de votre application avant toute autre méthode.

1
BrazeLogger.setLogLevel(Log.MIN_LOG_LEVEL);
1
BrazeLogger.logLevel = Log.MIN_LOG_LEVEL

Remplacez MIN_LOG_LEVEL par la constante du niveau de journalisation que vous souhaitez définir comme niveau minimum. Tous les journaux d’un niveau >= au MIN_LOG_LEVEL défini seront transmis à la méthode Log par défaut d’Android. Tous les journaux d’un niveau < au MIN_LOG_LEVEL défini seront ignorés.

Constante Valeur Description
VERBOSE 2 Enregistre les messages les plus détaillés pour le débogage et le développement.
DEBUG 3 Enregistre des messages descriptifs pour le débogage et le développement.
INFO 4 Enregistre des messages d’information pour les faits marquants.
WARN 5 Enregistre des messages d’avertissement pour identifier les situations potentiellement dangereuses.
ERROR 6 Enregistre des messages d’erreur pour indiquer les échecs de l’application ou les problèmes graves.
ASSERT 7 Enregistre des messages d’assertion lorsque les conditions sont fausses pendant le développement.

Par exemple, le code suivant transmettra les niveaux de journalisation 2, 3, 4, 5, 6 et 7 à la méthode Log.

1
BrazeLogger.setLogLevel(Log.VERBOSE);
1
BrazeLogger.logLevel = Log.VERBOSE

Pour activer les journaux dans le fichier braze.xml, ajoutez ce qui suit à votre fichier :

1
<integer name="com_braze_logger_initial_log_level">MIN_LOG_LEVEL</integer>

Remplacez MIN_LOG_LEVEL par la valeur du niveau de journalisation que vous souhaitez définir comme niveau minimum. Tous les journaux d’un niveau >= au MIN_LOG_LEVEL défini seront transmis à la méthode Log par défaut d’Android. Tous les journaux d’un niveau < au MIN_LOG_LEVEL défini seront ignorés.

Constante Valeur Description
VERBOSE 2 Enregistre les messages les plus détaillés pour le débogage et le développement.
DEBUG 3 Enregistre des messages descriptifs pour le débogage et le développement.
INFO 4 Enregistre des messages d’information pour les faits marquants.
WARN 5 Enregistre des messages d’avertissement pour identifier les situations potentiellement dangereuses.
ERROR 6 Enregistre des messages d’erreur pour indiquer les échecs de l’application ou les problèmes graves.
ASSERT 7 Enregistre des messages d’assertion lorsque les conditions sont fausses pendant le développement.

Par exemple, le code suivant transmettra les niveaux de journalisation 2, 3, 4, 5, 6 et 7 à la méthode Log.

1
<integer name="com_braze_logger_initial_log_level">2</integer>

Vérifier les journaux détaillés

Pour vérifier que vos journaux sont définis sur VERBOSE, vérifiez si V/Braze apparaît quelque part dans vos journaux. Si c’est le cas, les journaux détaillés ont été activés avec succès. Par exemple :

1
2077-11-19 16:22:49.591 ? V/Braze v9.0.01 .bo.app.d3: Request started

Supprimer les journaux

Pour supprimer tous les journaux du SDK Android Braze, définissez le niveau de journalisation sur BrazeLogger.SUPPRESS dans la méthode onCreate() de votre application avant toute autre méthode.

1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS);
1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS)

Clés API multiples

Le cas d’utilisation le plus courant pour les clés API multiples est la séparation des clés API entre les variantes de compilation de débogage et de production.

Pour basculer facilement entre plusieurs clés API dans vos compilations, nous vous recommandons de créer un fichier braze.xml distinct pour chaque variante de compilation pertinente. Une variante de compilation est une combinaison du type de compilation et de la variété du produit. Par défaut, les nouveaux projets Android sont configurés avec les types de compilation debug et release et aucune variété de produit.

Pour chaque variante de compilation pertinente, créez un nouveau fichier braze.xml dans le répertoire src/<build variant name>/res/values/. Lorsque la variante de compilation est compilée, elle utilisera la nouvelle clé API.

1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="com_braze_api_key">REPLACE_WITH_YOUR_BUILD_VARIANT_API_KEY</string>
</resources>

TalkBack exclusif pour les messages in-app

Conformément aux directives d’accessibilité Android, le SDK Android Braze propose Android TalkBack par défaut. Pour garantir que seul le contenu des messages in-app soit lu à voix haute, sans inclure d’autres éléments de l’écran tels que la barre de titre de l’application ou la navigation, vous pouvez activer le mode exclusif pour TalkBack.

Pour activer le mode exclusif pour les messages in-app :

1
<bool name="com_braze_device_in_app_message_accessibility_exclusive_mode_enabled">true</bool>
1
2
3
val brazeConfigBuilder = BrazeConfig.Builder()
brazeConfigBuilder.setIsInAppMessageAccessibilityExclusiveModeEnabled(true)
Braze.configure(this, brazeConfigBuilder.build())
1
2
3
BrazeConfig.Builder brazeConfigBuilder = new BrazeConfig.Builder()
brazeConfigBuilder.setIsInAppMessageAccessibilityExclusiveModeEnabled(true);
Braze.configure(this, brazeConfigBuilder.build());

R8 et ProGuard

La configuration de la réduction du code est automatiquement incluse dans votre intégration Braze.

Les applications clientes qui obfusquent le code Braze doivent stocker les fichiers de mappage de version pour que Braze puisse interpréter les traces de pile. Si vous souhaitez conserver l’intégralité du code Braze, ajoutez ce qui suit à votre fichier ProGuard :

1
2
-keep class bo.app.** { *; }
-keep class com.braze.** { *; }

Intégration du SDK Swift

Vous pouvez intégrer et personnaliser le SDK Braze Swift à l’aide du gestionnaire de paquets Swift (SPM), de CocoaPods ou de méthodes d’intégration manuelles. Pour plus d’informations sur les différents symboles du SDK, consultez la documentation de référence Braze Swift.

Conditions préalables

Avant de commencer, vérifiez que votre environnement est pris en charge par la dernière version du SDK Braze Swift.

Étape 1 : Installer le SDK Braze Swift

Nous vous recommandons d’utiliser le gestionnaire de paquets Swift (SwiftPM) ou CocoaPods pour installer le SDK Braze Swift. Vous pouvez également installer le SDK manuellement.

Étape 1.1 : Importer la version du SDK

Ouvrez votre projet et accédez aux paramètres de votre projet. Sélectionnez l’onglet Swift Packages et cliquez sur le bouton d’ajout sous la liste des paquets.

Saisissez l’URL de notre dépôt SDK Swift iOS https://github.com/braze-inc/braze-swift-sdk dans le champ de texte. Dans la section Dependency Rule, sélectionnez la version du SDK. Enfin, cliquez sur Add Package.

Étape 1.2 : Sélectionner vos paquets

Le SDK Swift de Braze sépare les fonctionnalités en bibliothèques autonomes pour offrir aux développeurs un meilleur contrôle sur les fonctionnalités à importer dans leurs projets.

Paquet Détails
BrazeKit Bibliothèque SDK principale avec prise en charge de l’analytique et des notifications push.
BrazeLocation Bibliothèque de localisation avec prise en charge de l’analytique de localisation et de la surveillance des géorepérages.
BrazeUI Bibliothèque d’interface utilisateur fournie par Braze pour les messages in-app, les Content Cards et les bannières. Importez cette bibliothèque si vous avez l’intention d’utiliser les composants d’interface utilisateur par défaut.
À propos des bibliothèques d’extension
Paquet Détails
BrazeNotificationService Bibliothèque d’extension du service de notification prenant en charge les notifications push enrichies.
BrazePushStory Bibliothèque d’extension de contenu de notification fournissant la prise en charge des Push Stories.

Sélectionnez le paquet qui correspond le mieux à vos besoins et cliquez sur Add Package. Veillez à sélectionner au minimum BrazeKit.

Étape 1.1 : Installer CocoaPods

Pour des instructions détaillées, consultez le guide de démarrage de CocoaPods. Sinon, vous pouvez exécuter la commande suivante pour démarrer rapidement :

1
$ sudo gem install cocoapods

Si vous rencontrez des difficultés, consultez le guide de résolution des problèmes de CocoaPods.

Étape 1.2 : Construire le Podfile

Ensuite, créez un fichier dans le répertoire de votre projet Xcode nommé Podfile.

Ajoutez la ligne suivante à votre Podfile :

1
2
3
target 'YourAppTarget' do
  pod 'BrazeKit'
end

BrazeKit contient la bibliothèque principale du SDK, avec la prise en charge de l’analytique et des notifications push.

Nous vous suggérons de versionner Braze afin que les mises à jour du pod récupèrent automatiquement tout ce qui est inférieur à une mise à jour mineure de version. Cela ressemble à pod 'BrazeKit' ~> Major.Minor.Build. Si vous souhaitez intégrer automatiquement la dernière version du SDK Braze, même avec des modifications majeures, vous pouvez utiliser pod 'BrazeKit' dans votre Podfile.

À propos des bibliothèques supplémentaires

Le SDK Swift de Braze sépare les fonctionnalités en bibliothèques autonomes pour offrir aux développeurs un meilleur contrôle sur les fonctionnalités à importer dans leurs projets. En plus de BrazeKit, vous pouvez ajouter les bibliothèques suivantes à votre Podfile :

Bibliothèque Détails
pod 'BrazeLocation' Bibliothèque de localisation avec prise en charge de l’analytique de localisation et de la surveillance des géorepérages.
pod 'BrazeUI' Bibliothèque d’interface utilisateur fournie par Braze pour les messages in-app, les Content Cards et les bannières. Importez cette bibliothèque si vous avez l’intention d’utiliser les composants d’interface utilisateur par défaut.
Bibliothèques d’extension

BrazeNotificationService et BrazePushStory sont des modules d’extension qui fournissent des fonctionnalités supplémentaires et ne doivent pas être ajoutés directement à la cible de votre application principale. Vous devrez créer des cibles d’extension distinctes pour chacun de ces modules et importer les modules Braze dans leurs cibles correspondantes.

Bibliothèque Détails
pod 'BrazeNotificationService' Bibliothèque d’extension du service de notification prenant en charge les notifications push enrichies.
pod 'BrazePushStory' Bibliothèque d’extension de contenu de notification fournissant la prise en charge des Push Stories.

Étape 1.3 : Installer le SDK

Pour installer le CocoaPod du SDK Braze, accédez au répertoire de votre projet d’application Xcode dans votre terminal et exécutez la commande suivante :

1
pod install

À ce stade, vous devriez pouvoir ouvrir le nouvel espace de travail du projet Xcode créé par CocoaPods. Assurez-vous d’utiliser cet espace de travail Xcode au lieu de votre projet Xcode.

Un dossier Braze Example décompressé pour afficher le nouveau fichier « BrazeExample.workspace ».

Mise à jour du SDK à l’aide de CocoaPods

Pour mettre à jour un CocoaPod, il vous suffit d’exécuter la commande suivante dans votre répertoire de projet :

1
pod update

Étape 1.1 : Télécharger le SDK Braze

Accédez à la page de publication du SDK Braze sur GitHub, puis téléchargez braze-swift-sdk-prebuilt.zip.

La page de publication du SDK Braze sur GitHub.

Étape 1.2 : Choisir vos frameworks

Le SDK Swift de Braze contient une variété de XCFrameworks autonomes, ce qui vous donne la liberté d’intégrer les fonctionnalités que vous souhaitez—sans avoir besoin de toutes les intégrer. Référez-vous au tableau suivant pour choisir vos XCFrameworks :

Paquet Requis ? Description
BrazeKit Oui Bibliothèque SDK principale avec prise en charge de l’analytique et des notifications push.
BrazeLocation Non Bibliothèque de localisation avec prise en charge de l’analytique de localisation et de la surveillance des géorepérages.
BrazeUI Non Bibliothèque d’interface utilisateur fournie par Braze pour les messages in-app, les Content Cards et les bannières. Importez cette bibliothèque si vous avez l’intention d’utiliser les composants d’interface utilisateur par défaut.
BrazeNotificationService Non Bibliothèque d’extension du service de notification prenant en charge les notifications push enrichies. N’ajoutez pas cette bibliothèque directement à la cible de votre application principale, mais ajoutez plutôt la bibliothèque BrazeNotificationService séparément.
BrazePushStory Non Bibliothèque d’extension de contenu de notification prenant en charge les Push Stories. N’ajoutez pas cette bibliothèque directement à la cible de votre application principale, mais ajoutez plutôt la bibliothèque BrazePushStory séparément.
BrazeKitCompat Non Bibliothèque de compatibilité contenant toutes les classes et méthodes Appboy et ABK* qui étaient disponibles dans le Appboy-iOS-SDK version 4.X.X. Pour plus de détails sur l’utilisation, reportez-vous au scénario de migration minimal dans le guide de migration.
BrazeUICompat Non Bibliothèque de compatibilité contenant toutes les classes et méthodes ABK* qui étaient disponibles dans la bibliothèque AppboyUI du Appboy-iOS-SDK version 4.X.X. Pour plus de détails sur l’utilisation, reportez-vous au scénario de migration minimal dans le guide de migration.
SDWebImage Non Dépendance utilisée uniquement par BrazeUICompat dans le scénario de migration minimal.

Étape 1.3 : Préparer vos fichiers

Décidez si vous souhaitez utiliser des XCFrameworks statiques ou dynamiques, puis préparez vos fichiers :

  1. Créez un répertoire temporaire pour vos XCFrameworks.
  2. Dans braze-swift-sdk-prebuilt, ouvrez le répertoire dynamic et déplacez BrazeKit.xcframework dans votre répertoire. Votre répertoire devrait ressembler à ceci :
    1
    2
    
     temp_dir
     └── BrazeKit.xcframework
    
  3. Déplacez chacun de vos XCFrameworks choisis dans votre répertoire temporaire. Votre répertoire devrait ressembler à ceci :
    1
    2
    3
    4
    5
    
     temp_dir
     ├── BrazeKit.xcframework
     ├── BrazeKitCompat.xcframework
     ├── BrazeLocation.xcframework
     └── SDWebImage.xcframework
    

Étape 1.4 : Intégrer vos frameworks

Ensuite, intégrez les XCFrameworks dynamiques ou statiques que vous avez préparés précédemment :

Dans votre projet Xcode, sélectionnez votre cible de build, puis General. Sous Frameworks, Libraries, and Embedded Content, glissez-déposez les fichiers que vous avez préparés précédemment.

Exemple de projet Xcode avec chaque bibliothèque Braze configurée sur « Embed & Sign ».

Erreurs courantes pour les projets Objective-C

Si votre projet Xcode ne contient que des fichiers Objective-C, il se peut que vous obteniez des erreurs de « symbole manquant » lorsque vous essayez de compiler votre projet. Pour corriger ces erreurs, ouvrez votre projet et ajoutez un fichier Swift vide à votre arborescence de fichiers. Cela forcera votre chaîne d’outils de compilation à intégrer le Swift Runtime et à lier les frameworks appropriés lors de la compilation.

1
FILE_NAME.swift

Remplacez FILE_NAME par n’importe quelle chaîne de caractères sans espace. Votre fichier devrait ressembler à ceci :

1
empty_swift_file.swift

Étape 2 : Configurer l’initialisation différée (facultatif)

Vous pouvez choisir de retarder l’initialisation du SDK Braze Swift, ce qui est utile si votre application doit charger une configuration ou attendre le consentement de l’utilisateur avant de démarrer le SDK. L’initialisation différée garantit que les notifications push Braze et les jetons push reçus avant l’initialisation du SDK sont mis en file d’attente et traités une fois le SDK initialisé.

Pour utiliser l’initialisation différée, la version minimale requise du SDK Braze est la suivante :

Étape 2.1 : Préparer l’initialisation différée

Appelez Braze.prepareForDelayedInitialization() le plus tôt possible dans le cycle de vie de votre application, idéalement dans ou avant application(_:didFinishLaunchingWithOptions:). Cela garantit que les notifications push reçues avant l’initialisation du SDK sont correctement capturées et traitées ultérieurement.

1
2
3
4
5
6
7
8
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  // Prepare the SDK for delayed initialization
  Braze.prepareForDelayedInitialization()

  // ... Additional non-Braze setup code

  return true
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@main
struct MyApp: App {
  @UIApplicationDelegateAdaptor var appDelegate: AppDelegate

  var body: some Scene {
    WindowGroup {
      ContentView()
    }
  }
}

class AppDelegate: NSObject, UIApplicationDelegate {
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    // Prepare the SDK for delayed initialization
    Braze.prepareForDelayedInitialization()

    // ... Additional non-Braze setup code

    return true
  }
}
1
2
3
4
5
6
7
8
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Prepare the SDK for delayed initialization
  [Braze prepareForDelayedInitialization];

  // ... Additional non-Braze setup code

  return YES;
}

Lorsque vous utilisez l’initialisation différée, l’automatisation des notifications push est implicitement activée. Vous pouvez personnaliser la configuration de l’automatisation des notifications push en transmettant un paramètre pushAutomation.

Étape 2.2 : Configurer le comportement de l’analytique push (facultatif)

Lorsque l’initialisation différée est activée, les données analytiques push sont mises en file d’attente par défaut. Cependant, vous pouvez choisir de mettre explicitement en file d’attente ou d’ignorer les données analytiques push.

Mettre explicitement en file d’attente

Pour mettre explicitement en file d’attente les données analytiques push (comportement par défaut), transmettez .queue au paramètre analyticsBehavior. Les événements analytiques push mis en file d’attente avant l’initialisation seront traités et envoyés au serveur lors de l’initialisation.

1
Braze.prepareForDelayedInitialization(analyticsBehavior: .queue)
1
[Braze prepareForDelayedInitializationWithAnalyticsBehavior:BRZPushEnqueueBehaviorQueue];
Ignorer

Pour ignorer les données analytiques push reçues avant l’initialisation du SDK, transmettez .drop au paramètre analyticsBehavior. Avec cette option, tout événement analytique push qui se produit alors que le SDK n’est pas initialisé sera ignoré.

1
Braze.prepareForDelayedInitialization(analyticsBehavior: .drop)
1
[Braze prepareForDelayedInitializationWithAnalyticsBehavior:BRZPushEnqueueBehaviorDrop];

Étape 2.3 : Personnaliser l’automatisation des notifications push (facultatif)

Vous pouvez personnaliser la configuration de l’automatisation des notifications push en transmettant un paramètre pushAutomation. Par défaut, toutes les fonctionnalités d’automatisation sont activées, à l’exception de requestAuthorizationAtLaunch.

1
2
3
4
5
6
7
8
// Enable all push automation
featuresBraze.prepareForDelayedInitialization(pushAutomation: true)

// Or customize specific automation options
let automation = Braze.Configuration.Push.Automation()
automation.automaticSetup = true
automation.requestAuthorizationAtLaunch = false
Braze.prepareForDelayedInitialization(pushAutomation: automation)
1
2
3
4
5
6
7
8
// Enable all push automation features
[Braze prepareForDelayedInitializationWithPushAutomation:[[BRZConfigurationPushAutomation alloc] initWithAutomationEnabled:YES]];

// Or customize specific automation options
BRZConfigurationPushAutomation *automation = [[BRZConfigurationPushAutomation alloc] init];
automation.automaticSetup = YES;
automation.requestAuthorizationAtLaunch = NO;
[Braze prepareForDelayedInitializationWithPushAutomation:automation analyticsBehavior:BRZPushEnqueueBehaviorQueue];

Étape 2.4 : Initialiser le SDK

Après la période de délai que vous avez choisie (par exemple, après avoir récupéré la configuration depuis un serveur ou après avoir obtenu le consentement de l’utilisateur), initialisez le SDK comme d’habitude :

1
2
3
4
5
6
7
8
9
10
func initializeBraze() {
  let configuration = Braze.Configuration(apiKey: "YOUR-API-KEY", endpoint: "YOUR-ENDPOINT")

  // Enable push automation to match the delayed initialization configuration
  configuration.push.automation = true
  let braze = Braze(configuration: configuration)

  // Store the Braze instance for later use
  AppDelegate.braze = braze
}
1
2
3
4
5
6
7
8
9
10
- (void)initializeBraze {
  BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"YOUR-API-KEY" endpoint:@"YOUR-ENDPOINT"];

  // Enable push automation to match the delayed initialization configuration
  configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initWithAutomationEnabled:YES];
  Braze *braze = [[Braze alloc] initWithConfiguration:configuration];

  // Store the Braze instance for later use
  AppDelegate.braze = braze;
}

Étape 3 : Mettre à jour le délégué de votre application

Ajoutez la ligne de code suivante à votre fichier AppDelegate.swift pour importer les fonctionnalités incluses dans le SDK Swift de Braze :

1
import BrazeKit

Ensuite, ajoutez une propriété statique à votre classe AppDelegate afin de conserver une référence forte à l’instance de Braze pendant toute la durée de vie de votre application :

1
2
3
class AppDelegate: UIResponder, UIApplicationDelegate {
  static var braze: Braze? = nil
}

Le SDK nécessite que votre application conserve une référence forte à l’instance de Braze tout au long de son utilisation. Pour éviter tout effet secondaire inattendu, assurez-vous d’avoir entièrement capturé cette référence avant d’accéder à ou de modifier des propriétés ou méthodes de l’instance de Braze.

Enfin, dans AppDelegate.swift, ajoutez l’extrait de code suivant à votre méthode application:didFinishLaunchingWithOptions: :

1
2
3
4
5
6
let configuration = Braze.Configuration(
    apiKey: "YOUR-APP-IDENTIFIER-API-KEY",
    endpoint: "YOUR-BRAZE-ENDPOINT"
)
let braze = Braze(configuration: configuration)
AppDelegate.braze = braze

Mettez à jour YOUR-APP-IDENTIFIER-API-KEY et YOUR-BRAZE-ENDPOINT avec la valeur correcte depuis votre page Paramètres des applications. Consultez nos types d’identifiants API pour plus d’informations sur l’endroit où trouver la clé API de votre identifiant d’application.

Ajoutez la ligne de code suivante à votre fichier AppDelegate.m :

1
@import BrazeKit;

Ensuite, ajoutez une variable statique à votre fichier AppDelegate.m afin de conserver une référence à l’instance de Braze pendant toute la durée de vie de votre application :

1
2
3
4
5
6
7
8
9
10
11
static Braze *_braze;

@implementation AppDelegate
+ (Braze *)braze {
  return _braze;
}

+ (void)setBraze:(Braze *)braze {
  _braze = braze;
}
@end

Le SDK nécessite que votre application conserve une référence forte à l’instance de Braze tout au long de son utilisation. Pour éviter tout effet secondaire inattendu, assurez-vous d’avoir entièrement capturé cette référence avant d’accéder à ou de modifier des propriétés ou méthodes de l’instance de Braze.

Enfin, dans votre fichier AppDelegate.m, ajoutez l’extrait de code suivant dans votre méthode application:didFinishLaunchingWithOptions: :

1
2
3
4
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:"YOUR-APP-IDENTIFIER-API-KEY"
                                                                  endpoint:"YOUR-BRAZE-ENDPOINT"];
Braze *braze = [[Braze alloc] initWithConfiguration:configuration];
AppDelegate.braze = braze;

Mettez à jour YOUR-APP-IDENTIFIER-API-KEY et YOUR-BRAZE-ENDPOINT avec la valeur correcte depuis votre page Gérer les paramètres. Consultez notre documentation API pour plus d’informations sur l’endroit où trouver la clé API de votre identifiant d’application.

Configurations optionnelles

Journalisation

Pour obtenir un aperçu centralisé sur toutes les plateformes, consultez la section Journalisation détaillée. Pour apprendre à interpréter les résultats des journaux, consultez la section Lecture des journaux détaillés.

Niveaux de journalisation

Le niveau de journalisation par défaut pour le SDK Braze Swift est .error—il s’agit également du niveau minimum pris en charge lorsque les journaux sont activés. Voici la liste complète des niveaux de journalisation :

Swift Objective-C Description
.debug BRZLoggerLevelDebug Journalise les informations de débogage + .info + .error.
.info BRZLoggerLevelInfo Journalise les informations générales du SDK (changements utilisateur, etc.) + .error.
.error BRZLoggerLevelError Journalise les erreurs.
.disabled BRZLoggerLevelDisabled Aucune journalisation n’a lieu.

Définir le niveau de journalisation

Vous pouvez définir le niveau de journalisation lors de l’exécution dans votre objet Braze.Configuration. Pour des informations détaillées sur l’utilisation, consultez Braze.Configuration.Logger.

1
2
3
4
5
6
7
let configuration = Braze.Configuration(
  apiKey: "<BRAZE_API_KEY>",
  endpoint: "<BRAZE_ENDPOINT>"
)
// Enable logging of general SDK information (such as user changes, etc.)
configuration.logger.level = .info
let braze = Braze(configuration: configuration)
1
2
3
4
5
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:self.APIKey
                                                                  endpoint:self.apiEndpoint];
// Enable logging of general SDK information (such as user changes, etc.)
[configuration.logger setLevel:BRZLoggerLevelInfo];
Braze *braze = [[Braze alloc] initWithConfiguration:configuration];

Intégration du SDK Cordova

Conditions préalables

Avant de commencer, vérifiez que votre environnement est pris en charge par la dernière version du SDK Braze Cordova.

Étape 1 : Ajoutez le SDK à votre projet

Si vous utilisez Cordova 6 ou une version ultérieure, vous pouvez ajouter le SDK directement depuis GitHub. Vous pouvez également télécharger un ZIP du dépôt GitHub et ajouter le SDK manuellement.

Si vous ne prévoyez pas d’utiliser la collecte de localisation et les géorepérages, utilisez la branche master de GitHub.

1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#master

Si vous prévoyez d’utiliser la collecte de localisation et les géorepérages, utilisez la geofence-branch de GitHub.

1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#geofence-branch

Étape 2 : Configurez votre projet

Ensuite, ajoutez les préférences suivantes à l’élément platform dans le fichier config.xml de votre projet.

1
2
<preference name="com.braze.ios_api_key" value="BRAZE_API_KEY" />
<preference name="com.braze.ios_api_endpoint" value="CUSTOM_API_ENDPOINT" />
1
2
<preference name="com.braze.android_api_key" value="BRAZE_API_KEY" />
<preference name="com.braze.android_api_endpoint" value="CUSTOM_API_ENDPOINT" />

Remplacez les éléments suivants :

Valeur Description
BRAZE_API_KEY Votre clé API REST de Braze.
CUSTOM_API_ENDPOINT Un endpoint d’API personnalisé. Cet endpoint est utilisé pour acheminer les données de votre instance Braze vers le groupe d’applications adéquat dans votre tableau de bord de Braze.

L’élément platform de votre fichier config.xml devrait ressembler à ce qui suit :

1
2
3
4
<platform name="ios">
    <preference name="com.braze.ios_api_key" value="BRAZE_API_KEY" />
    <preference name="com.braze.ios_api_endpoint" value="sdk.fra-01.braze.eu" />
</platform>
1
2
3
4
<platform name="android">
    <preference name="com.braze.android_api_key" value="BRAZE_API_KEY" />
    <preference name="com.braze.android_api_endpoint" value="sdk.fra-01.braze.eu" />
</platform>

Syntaxe spécifique à la plateforme

La section suivante traite de la syntaxe spécifique à la plateforme lors de l’utilisation de Cordova avec iOS ou Android.

Entiers

Les préférences entières sont lues comme des représentations de chaînes de caractères, comme dans l’exemple suivant :

1
2
3
4
<platform name="ios">
    <preference name="com.braze.ios_flush_interval_seconds" value="10" />
    <preference name="com.braze.ios_session_timeout" value="5" />
</platform>

En raison de la manière dont le framework Cordova 8.0.0+ gère les préférences, les préférences de nombres entiers uniquement (comme les identifiants d’expéditeur) doivent être définies sur des chaînes de caractères précédées de str_, comme dans l’exemple suivant :

1
2
3
4
<platform name="android">
    <preference name="com.braze.android_fcm_sender_id" value="str_64422926741" />
    <preference name="com.braze.android_default_session_timeout" value="str_10" />
</platform>

Booléens

Les préférences booléennes sont lues par le SDK en utilisant les mots-clés YES et NO comme représentation sous forme de chaîne de caractères, comme dans l’exemple suivant :

1
2
3
4
<platform name="ios">
    <preference name="com.braze.should_opt_in_when_push_authorized" value="YES" />
    <preference name="com.braze.ios_disable_automatic_push_handling" value="NO" />
</platform>

Les préférences booléennes sont lues par le SDK en utilisant les mots-clés true et false comme représentation sous forme de chaîne de caractères, comme dans l’exemple suivant :

1
2
3
4
<platform name="android">
    <preference name="com.braze.should_opt_in_when_push_authorized" value="true" />
    <preference name="com.braze.is_session_start_based_timeout_enabled" value="false" />
</platform>

Configurations optionnelles

Vous pouvez ajouter l’une des préférences suivantes à l’élément platform dans le fichier config.xml de votre projet :

Méthode Description
ios_api_key Définit la clé API pour votre application.
ios_api_endpoint Définit l’endpoint SDK pour votre application.
ios_disable_automatic_push_registration Détermine si l’enregistrement automatique des notifications push doit être désactivé.
ios_disable_automatic_push_handling Détermine si la gestion automatique des notifications push doit être désactivée.
ios_enable_idfa_automatic_collection Détermine si le SDK Braze doit collecter automatiquement les informations IDFA. Pour plus d’informations, consultez la documentation relative à la méthode Braze IDFA.
enable_location_collection Détermine si la collecte automatique de la localisation est activée (si l’utilisateur l’autorise). La geofence-branch
geofences_enabled Détermine si les géorepérages sont activés.
ios_session_timeout Définit le délai d’expiration de la session Braze pour votre application en secondes. La valeur par défaut est de 10 secondes.
sdk_authentication_enabled Détermine si la fonctionnalité d’authentification SDK doit être activée.
display_foreground_push_notifications Détermine si les notifications push doivent s’afficher lorsque l’application est au premier plan.
ios_disable_un_authorization_option_provisional Détermine si UNAuthorizationOptionProvisional doit être désactivé.
trigger_action_minimum_time_interval_seconds Définit l’intervalle de temps minimum en secondes entre les déclencheurs. La valeur par défaut est de 30 secondes.
ios_push_app_group Définit l’ID du groupe d’applications pour les extensions push iOS.
ios_forward_universal_links Détermine si le SDK reconnaît et transfère automatiquement les liens universels vers les méthodes système. Nécessaire pour que les liens profonds à partir des notifications push fonctionnent sur iOS. Désactivé par défaut.
ios_log_level Définit le niveau de journalisation minimum pour Braze.Configuration.Logger.
ios_use_uuid_as_device_id Détermine si un UUID généré aléatoirement doit être utilisé comme identifiant de l’appareil.
ios_flush_interval_seconds Définit l’intervalle en secondes entre les vidages automatiques des données. La valeur par défaut est de 10 secondes.
ios_use_automatic_request_policy Détermine si la politique de requête pour Braze.Configuration.Api doit être automatique ou manuelle.
should_opt_in_when_push_authorized Détermine si l’état d’abonnement aux notifications d’un utilisateur doit être automatiquement défini sur optedIn lorsque les autorisations push sont accordées.
Méthode Description
android_api_key Définit la clé API pour votre application.
android_api_endpoint Définit l’endpoint SDK pour votre application.
android_small_notification_icon Définit la petite icône de notification.
android_large_notification_icon Définit la grande icône de notification.
android_notification_accent_color Définit la couleur d’accentuation des notifications à l’aide d’une représentation hexadécimale.
android_default_session_timeout Définit le délai d’expiration de la session Braze pour votre application en secondes. La valeur par défaut est de 10 secondes.
android_handle_push_deep_links_automatically Détermine si le SDK Braze gère automatiquement les liens profonds push. Nécessaire pour que les liens profonds à partir des notifications push fonctionnent sur Android. Désactivé par défaut.
android_log_level Définit le niveau de journalisation pour votre application. Le niveau par défaut est 4 et enregistre un minimum d’informations. Pour activer la journalisation détaillée à des fins de débogage, utilisez le niveau 2.
firebase_cloud_messaging_registration_enabled Détermine s’il convient d’utiliser Firebase Cloud Messaging pour les notifications push.
android_fcm_sender_id Définit l’ID de l’expéditeur Firebase Cloud Messaging.
enable_location_collection Détermine si la collecte automatique de la localisation est activée (si l’utilisateur l’autorise).
geofences_enabled Détermine si les géorepérages sont activés.
android_disable_auto_session_tracking Désactive le suivi automatique des sessions par le plug-in Android Cordova. Pour plus d’informations, consultez Désactivation du suivi automatique des sessions.
sdk_authentication_enabled Détermine si la fonctionnalité d’authentification SDK doit être activée.
trigger_action_minimum_time_interval_seconds Définit l’intervalle de temps minimum en secondes entre les déclencheurs. La valeur par défaut est de 30 secondes.
is_session_start_based_timeout_enabled Détermine si le comportement de délai d’expiration de session doit être basé sur les événements de début ou de fin de session.
default_notification_channel_name Définit le nom visible par l’utilisateur via NotificationChannel.getName pour le NotificationChannel par défaut de Braze.
default_notification_channel_description Définit la description visible par l’utilisateur via NotificationChannel.getDescription pour le NotificationChannel par défaut de Braze.
does_push_story_dismiss_on_click Détermine si une Push Story est automatiquement fermée lorsqu’on clique dessus.
is_fallback_firebase_messaging_service_enabled Détermine si l’utilisation d’un service Firebase Cloud Messaging de secours est activée.
fallback_firebase_messaging_service_classpath Définit le chemin d’accès aux classes pour le service Firebase Cloud Messaging de secours.
is_content_cards_unread_visual_indicator_enabled Détermine si l’indicateur visuel de Content Cards non lues est activé.
is_firebase_messaging_service_on_new_token_registration_enabled Détermine si le SDK Braze enregistrera automatiquement les jetons dans com.google.firebase.messaging.FirebaseMessagingService.onNewToken.
is_push_deep_link_back_stack_activity_enabled Détermine si Braze ajoutera une activité à la pile arrière lors du suivi automatique des liens profonds pour les notifications push.
push_deep_link_back_stack_activity_class_name Définit l’activité que Braze ajoutera à la pile arrière lors du suivi automatique des liens profonds pour les notifications push.
should_opt_in_when_push_authorized Détermine si Braze doit automatiquement abonner l’utilisateur lorsque les notifications push sont autorisées.

Voici un exemple de fichier config.xml avec des configurations supplémentaires :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<platform name="ios">
    <preference name="com.braze.ios_disable_automatic_push_registration" value="NO"/"YES" />
    <preference name="com.braze.ios_disable_automatic_push_handling" value="NO"/"YES" />
    <preference name="com.braze.ios_enable_idfa_automatic_collection" value="YES"/"NO" />
    <preference name="com.braze.enable_location_collection" value="NO"/"YES" />
    <preference name="com.braze.geofences_enabled" value="NO"/"YES" />
    <preference name="com.braze.ios_session_timeout" value="5" />
    <preference name="com.braze.sdk_authentication_enabled" value="YES"/"NO" />
    <preference name="com.braze.display_foreground_push_notifications" value="YES"/"NO" />
    <preference name="com.braze.ios_disable_un_authorization_option_provisional" value="NO"/"YES" />
    <preference name="com.braze.trigger_action_minimum_time_interval_seconds" value="30" />
    <preference name="com.braze.ios_push_app_group" value="PUSH_APP_GROUP_ID" />
    <preference name="com.braze.ios_forward_universal_links" value="YES"/"NO" />
    <preference name="com.braze.ios_log_level" value="2" />
    <preference name="com.braze.ios_use_uuid_as_device_id" value="YES"/"NO" />
    <preference name="com.braze.ios_flush_interval_seconds" value="10" />
    <preference name="com.braze.ios_use_automatic_request_policy" value="YES"/"NO" />
    <preference name="com.braze.should_opt_in_when_push_authorized" value="YES"/"NO" />
</platform>
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
<platform name="android">
    <preference name="com.braze.android_small_notification_icon" value="RESOURCE_ENTRY_NAME_FOR_ICON_DRAWABLE" />
    <preference name="com.braze.android_large_notification_icon" value="RESOURCE_ENTRY_NAME_FOR_ICON_DRAWABLE" />
    <preference name="com.braze.android_notification_accent_color" value="str_ACCENT_COLOR_INTEGER" />
    <preference name="com.braze.android_default_session_timeout" value="str_SESSION_TIMEOUT_INTEGER" />
    <preference name="com.braze.android_handle_push_deep_links_automatically" value="true"/"false" />
    <preference name="com.braze.android_log_level" value="str_LOG_LEVEL_INTEGER" />
    <preference name="com.braze.firebase_cloud_messaging_registration_enabled" value="true"/"false" />
    <preference name="com.braze.android_fcm_sender_id" value="str_YOUR_FCM_SENDER_ID" />
    <preference name="com.braze.enable_location_collection" value="true"/"false" />
    <preference name="com.braze.geofences_enabled" value="true"/"false" />
    <preference name="com.braze.android_disable_auto_session_tracking" value="true"/"false" />
    <preference name="com.braze.sdk_authentication_enabled" value="true"/"false" />
    <preference name="com.braze.trigger_action_minimum_time_interval_seconds" value="str_MINIMUM_INTERVAL_INTEGER" />
    <preference name="com.braze.is_session_start_based_timeout_enabled" value="false"/"true" />
    <preference name="com.braze.default_notification_channel_name" value="DEFAULT_NAME" />
    <preference name="com.braze.default_notification_channel_description" value="DEFAULT_DESCRIPTION" />
    <preference name="com.braze.does_push_story_dismiss_on_click" value="true"/"false" />
    <preference name="com.braze.is_fallback_firebase_messaging_service_enabled" value="true"/"false" />
    <preference name="com.braze.fallback_firebase_messaging_service_classpath" value="FALLBACK_FIREBASE_MESSAGING_CLASSPATH" />
    <preference name="com.braze.is_content_cards_unread_visual_indicator_enabled" value="true"/"false" />
    <preference name="com.braze.is_firebase_messaging_service_on_new_token_registration_enabled" value="true"/"false" />
    <preference name="com.braze.is_push_deep_link_back_stack_activity_enabled" value="true"/"false" />
    <preference name="com.braze.push_deep_link_back_stack_activity_class_name" value="DEEPLINK_BACKSTACK_ACTIVITY_CLASS_NAME" />
    <preference name="com.braze.should_opt_in_when_push_authorized" value="true"/"false" />
</platform>

Désactivation du suivi automatique des sessions (Android uniquement)

Par défaut, le plug-in Android Cordova assure automatiquement le suivi des sessions. Pour désactiver le suivi automatique des sessions, ajoutez la préférence suivante à l’élément platform dans le fichier config.xml de votre projet :

1
2
3
<platform name="android">
    <preference name="com.braze.android_disable_auto_session_tracking" value="true" />
</platform>

Pour recommencer à suivre les sessions, appelez BrazePlugin.startSessionTracking(). Gardez à l’esprit que seules les sessions démarrées après le prochain Activity.onStart() seront suivies.

À propos du SDK Flutter Braze

Une fois le SDK Braze Flutter intégré sur Android et iOS, vous pourrez utiliser l’API Braze dans vos applications Flutter écrites en Dart. Ce plug-in offre des fonctionnalités d’analyse de base et vous permet d’intégrer des messages in-app et des Content Cards pour iOS et Android à l’aide d’une base de code unique.

Intégration du SDK Flutter

Conditions préalables

Avant d’intégrer le SDK Braze Flutter, vous devez effectuer les opérations suivantes :

Prérequis Description
Identifiant d’application API Braze Pour trouver l’identifiant de votre application, rendez-vous dans Paramètres > Clés API > Identifiants d’application. Pour plus d’informations, consultez Types d’identifiants API.
Endpoint du SDK Braze L’URL de votre endpoint SDK (par exemple, sdk.<cluster>.braze.com). Votre endpoint dépendra de l’URL de Braze pour votre instance.
SDK Flutter Installez le SDK Flutter officiel et assurez-vous qu’il répond aux exigences de la version minimale prise en charge par le SDK Braze Flutter.

Étape 1 : Intégrez la bibliothèque Braze

Ajoutez le package du SDK Braze Flutter depuis la ligne de commande. Cela ajoutera la ligne appropriée à votre pubspec.yaml.

1
flutter pub add braze_plugin

Étape 2 : Configuration complète du SDK natif

2.1 Configurer Android {#21-set-up-android}

Fournir les identifiants à la compilation

Créez un fichier braze.xml dans le dossier android/res/values de votre projet. La clé API et l’endpoint sont fournis au moment de l’exécution depuis Dart, ils ne sont donc pas requis dans ce fichier. Pour activer l’initialisation différée, ajoutez com_braze_enable_delayed_initialization au fichier :

1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <bool name="com_braze_enable_delayed_initialization">true</bool>
  <!-- API key and endpoint are not required here. They are set at runtime via Dart. -->
</resources>
Fournir les identifiants au moment de l’exécution

Vous pouvez également activer l’initialisation différée de manière programmatique dans votre MainActivity.kt :

1
2
3
4
5
6
7
8
import com.braze.Braze

class MainActivity : FlutterActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    Braze.enableDelayedInitialization(context = this)
  }
}

Ajoutez les autorisations requises à votre fichier AndroidManifest.xml :

1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2.2 Configurer iOS {#22-set-up-ios}

Dans votre méthode application(_:didFinishLaunchingWithOptions:) existante, ajoutez un appel à BrazePlugin.configure(_:postInitialization:) pour enregistrer votre configuration. L’instance Braze est créée ultérieurement lorsque initialize() est appelé depuis Dart. La clé API et l’endpoint ne sont pas définis ici.

Ajoutez le code suivant à votre fichier AppDelegate.swift :

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
import BrazeKit
import braze_plugin

// ...

override func application(
  _ application: UIApplication,
  didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
  // ... your existing didFinishLaunchingWithOptions setup ...

  BrazePlugin.configure(
    { configuration in
      configuration.logger.level = .info
      // Set other non-API-key configurations here, such as:
      // configuration.push.automation = true
      // configuration.sessionTimeout = 60
    },
    postInitialization: { braze in
      // Optional: Customize the Braze instance after creation.
      // For example, set a custom in-app message presenter:
      // let customPresenter = CustomInAppMessagePresenter()
      // braze.inAppMessagePresenter = customPresenter
    }
  )

  return true
}

Ajoutez le code suivant à votre fichier AppDelegate.m :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@import BrazeKit;
@import braze_plugin;

// ...

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [BrazePlugin configure:^(BRZConfiguration *configuration) {
    configuration.logger.level = BRZLoggerLevelInfo;
    // Set other non-API-key configurations here, such as:
    // configuration.push.automation = ...
    // configuration.sessionTimeout = 60;
  } postInitialization:^(Braze *braze) {
    // Optional: customize the Braze instance after creation.
  }];

  return YES;
}

2.1 Configurer Android

Pour vous connecter aux serveurs Braze, créez un fichier braze.xml dans le dossier android/res/values de votre projet. Collez le code suivant et remplacez la clé API d’identification et l’endpoint par vos valeurs :

1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string translatable="false" name="com_braze_api_key">YOUR_APP_IDENTIFIER_API_KEY</string>
  <string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
</resources>

Ajoutez les autorisations requises à votre fichier AndroidManifest.xml :

1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2.2 Configurer iOS

Ajoutez l’importation du SDK Braze en haut du fichier AppDelegate.swift :

1
2
import BrazeKit
import braze_plugin

Dans le même fichier, créez l’objet de configuration Braze dans la méthode application(_:didFinishLaunchingWithOptions:) et remplacez la clé API et l’endpoint par les valeurs de votre application. Ensuite, créez l’instance Braze à l’aide de la configuration et créez une propriété statique sur AppDelegate pour y accéder facilement :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static var braze: Braze? = nil

override func application(
  _ application: UIApplication,
  didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
  // Setup Braze
  let configuration = Braze.Configuration(
    apiKey: "<BRAZE_API_KEY>",
    endpoint: "<BRAZE_ENDPOINT>"
  )
  // - Enable logging or customize configuration here
  configuration.logger.level = .info
  let braze = BrazePlugin.initBraze(configuration)
  AppDelegate.braze = braze

  return true
}

Importez le SDK Braze en haut du fichier AppDelegate.m :

1
2
@import BrazeKit;
@import braze_plugin;

Dans le même fichier, créez l’objet de configuration Braze dans la méthode application:didFinishLaunchingWithOptions: et remplacez la clé API et l’endpoint par les valeurs de votre application. Ensuite, créez l’instance Braze à l’aide de la configuration et créez une propriété statique sur AppDelegate pour y accéder facilement :

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
- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Setup Braze
  BRZConfiguration *configuration =
      [[BRZConfiguration alloc] initWithApiKey:@"<BRAZE_API_KEY>"
                                      endpoint:@"<BRAZE_ENDPOINT>"];
  // - Enable logging or customize configuration here
  configuration.logger.level = BRZLoggerLevelInfo;
  Braze *braze = [BrazePlugin initBraze:configuration];
  AppDelegate.braze = braze;

  [self.window makeKeyAndVisible];
  return YES;
}

#pragma mark - AppDelegate.braze

static Braze *_braze = nil;

+ (Braze *)braze {
  return _braze;
}

+ (void)setBraze:(Braze *)braze {
  _braze = braze;
}

Étape 3 : Configurez le plug-in

Importez le plug-in et créez une instance unique de BrazePlugin :

1
2
3
import 'package:braze_plugin/braze_plugin.dart';

final BrazePlugin braze = BrazePlugin();

Appelez ensuite initialize() avec votre clé API d’identifiant d’application et votre endpoint SDK pour créer l’instance Braze. Consultez les options ci-dessous pour savoir où appeler cette méthode dans votre application.

Initialisation standard

Pour initialiser le SDK au démarrage de votre application, appelez initialize() dans initState() :

1
2
3
4
5
@override
void initState() {
  super.initState();
  braze.initialize("<BRAZE_API_KEY>", "<BRAZE_ENDPOINT>");
}

Initialisation différée

Pour reporter l’initialisation du SDK à un moment ultérieur de la session — par exemple, après que l’utilisateur a donné son consentement ou s’est connecté — appelez initialize() lorsque vous êtes prêt :

1
2
3
4
// ...
void onUserConsent() {
  braze.initialize("<BRAZE_API_KEY>", "<BRAZE_ENDPOINT>");
}

Clés API spécifiques à chaque plateforme

Étant donné que vos applications Android et iOS utilisent des clés API différentes, utilisez la détection de plateforme :

1
2
3
4
5
6
7
import 'dart:io' show Platform;

if (Platform.isAndroid) {
  braze.initialize("<ANDROID_API_KEY>", "<BRAZE_ENDPOINT>");
} else if (Platform.isIOS) {
  braze.initialize("<IOS_API_KEY>", "<BRAZE_ENDPOINT>");
}

Réinitialisation

Vous pouvez appeler initialize() plusieurs fois pour réinitialiser le SDK avec une clé API et un endpoint différents en cours de session. Chaque appel détruit l’instance Braze précédente et en crée une nouvelle.

Pour importer le plug-in dans votre code Dart, utilisez ce qui suit :

1
import 'package:braze_plugin/braze_plugin.dart';

Ensuite, initialisez une instance du plug-in Braze en appelant new BrazePlugin() comme dans notre exemple d’application.

Test de l’intégration

Vous pouvez vérifier que le SDK est correctement intégré en consultant les statistiques de session dans le tableau de bord. Si vous exécutez votre application sur l’une ou l’autre plateforme, vous devriez voir apparaître une nouvelle session dans le tableau de bord (dans la section Overview).

Ouvrez une session pour un utilisateur spécifique en appelant le code suivant dans votre application.

1
2
3
BrazePlugin braze = BrazePlugin();
braze.initialize("<BRAZE_API_KEY>", "<BRAZE_ENDPOINT>");
braze.changeUser("{some-user-id}");
1
2
BrazePlugin braze = BrazePlugin();
braze.changeUser("{some-user-id}");

Recherchez l’utilisateur {some-user-id} dans le tableau de bord sous Audience > Rechercher des utilisateurs. Vous pouvez y vérifier que les données de session et d’appareil ont bien été enregistrées.

À propos du SDK React Native Braze

L’intégration du SDK React Native Braze fournit des fonctionnalités d’analyse de base et vous permet d’intégrer des messages in-app et des Content Cards pour iOS et Android à partir d’une seule base de code.

Compatibilité avec la nouvelle architecture

La version minimale suivante du SDK est compatible avec toutes les applications utilisant la nouvelle architecture de React Native :

À partir de la version 6.0.0 du SDK, Braze utilise un module React Native Turbo, compatible à la fois avec la nouvelle architecture et l’architecture pont héritée. Aucune configuration supplémentaire n’est donc nécessaire.

Intégration du SDK React Native

Conditions préalables

Pour intégrer le SDK, la version 0.71 ou ultérieure de React Native est requise. Pour obtenir la liste complète des versions prises en charge, consultez notre dépôt GitHub du SDK React Native.

Étape 1 : Intégrer la bibliothèque Braze

1
npm install @braze/react-native-sdk
1
yarn add @braze/react-native-sdk

Étape 2 : Configuration native complète

Si votre application utilise Expo, consultez Utiliser le plugin Expo. Si votre application utilise React Native pur, consultez Utiliser React Native CLI. Choisissez une méthode de configuration dans chaque onglet de version : plugin Expo ou React Native CLI.

Méthode 1 : Utiliser le plugin Expo

2.1 Installer le plugin Braze Expo {#21-install-the-braze-expo-plugin}

Assurez-vous que votre version du plugin Braze Expo est au minimum 4.1.0. Pour obtenir la liste complète des versions prises en charge, consultez le dépôt du plugin Braze Expo.

L’extrait de code suivant montre la commande pour installer le plugin Braze Expo :

1
npx expo install @braze/expo-plugin
2.2 Ajouter le plugin à votre app.json {#22-add-the-plugin-to-your-appjson}

Dans votre app.json, ajoutez le plugin Braze Expo. La clé API et l’endpoint ne sont plus définis ici. Fournissez-les au moment de l’exécution via Braze.initialize() depuis JavaScript. Ajoutez les paramètres de configuration facultatifs suivants en fonction des besoins de votre implémentation :

Méthode Type Description
enableBrazeIosPush booléen iOS uniquement. Détermine si Braze gère les notifications push sur iOS.
enableFirebaseCloudMessaging booléen Android uniquement. Détermine si Firebase Cloud Messaging est utilisé pour les notifications push.
firebaseCloudMessagingSenderId chaîne de caractères Android uniquement. Votre ID expéditeur Firebase Cloud Messaging.
sessionTimeout entier Le délai d’expiration de session Braze pour votre application, en secondes.
enableSdkAuthentication booléen Détermine si la fonctionnalité Authentification SDK est activée.
logLevel entier Le niveau de journalisation pour votre application. Le niveau par défaut est 8 et enregistre un minimum d’informations. Pour activer la journalisation détaillée pour le débogage, utilisez le niveau 0.
minimumTriggerIntervalInSeconds entier L’intervalle minimum en secondes entre les déclenchements. 30 secondes par défaut.
enableAutomaticLocationCollection booléen Détermine si la collecte automatique de localisation est activée (si l’utilisateur l’autorise).
enableGeofence booléen Détermine si les géorepérages sont activés.
enableAutomaticGeofenceRequests booléen Détermine si les demandes de géorepérage doivent être effectuées automatiquement.
dismissModalOnOutsideTap booléen iOS uniquement. Détermine si un message in-app modal est fermé lorsque l’utilisateur clique en dehors du message.
androidHandlePushDeepLinksAutomatically booléen Android uniquement. Détermine si le SDK Braze doit gérer automatiquement les liens profonds des notifications push.
androidPushNotificationHtmlRenderingEnabled booléen Android uniquement. Définit si le contenu textuel d’une notification push doit être interprété et rendu en HTML via android.text.Html.fromHtml.
androidNotificationAccentColor chaîne de caractères Android uniquement. Définit la couleur d’accentuation des notifications Android.
androidNotificationLargeIcon chaîne de caractères Android uniquement. Définit la grande icône des notifications Android.
androidNotificationSmallIcon chaîne de caractères Android uniquement. Définit la petite icône des notifications Android.
iosRequestPushPermissionsAutomatically booléen iOS uniquement. Détermine si l’utilisateur doit être automatiquement invité à autoriser les notifications push au lancement de l’application.
enableBrazeIosRichPush booléen iOS uniquement. Détermine si les fonctionnalités de push riche sont activées pour iOS.
enableBrazeIosPushStories booléen iOS uniquement. Détermine si Braze Push Stories est activé pour iOS.
iosPushStoryAppGroup chaîne de caractères iOS uniquement. Le groupe d’applications utilisé pour iOS Push Stories.
iosUseUUIDAsDeviceId booléen iOS uniquement. Détermine si l’ID de l’appareil utilise un UUID généré aléatoirement.
iosForwardUniversalLinks booléen iOS uniquement. Indique si le SDK doit automatiquement reconnaître et transmettre les liens universels aux méthodes système (par défaut : false).

L’extrait de code suivant montre un exemple de configuration app.json :

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
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          "sessionTimeout": 60,
          "enableGeofence": false,
          "enableBrazeIosPush": false,
          "enableFirebaseCloudMessaging": false,
          "firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
          "androidHandlePushDeepLinksAutomatically": true,
          "enableSdkAuthentication": false,
          "logLevel": 0,
          "minimumTriggerIntervalInSeconds": 0,
          "enableAutomaticLocationCollection": false,
          "enableAutomaticGeofenceRequests": false,
          "dismissModalOnOutsideTap": true,
          "androidPushNotificationHtmlRenderingEnabled": true,
          "androidNotificationAccentColor": "#ff3344",
          "androidNotificationLargeIcon": "@drawable/custom_app_large_icon",
          "androidNotificationSmallIcon": "@drawable/custom_app_small_icon",
          "iosRequestPushPermissionsAutomatically": false,
          "enableBrazeIosPushStories": true,
          "iosPushStoryAppGroup": "group.com.example.myapp.PushStories",
          "iosForwardUniversalLinks": false
        }
      ]
    ]
  }
}
Configuration des icônes de notification push Android

Lorsque vous utilisez androidNotificationLargeIcon et androidNotificationSmallIcon, suivez ces bonnes pratiques pour un affichage correct des icônes :

Emplacement et format des icônes

Pour utiliser des icônes de notification push personnalisées avec le plugin Braze Expo :

  1. Créez vos fichiers d’icônes en respectant les exigences détaillées ci-dessous.
  2. Placez-les dans les répertoires natifs Android de votre projet à l’emplacement android/app/src/main/res/drawable-<density>/. Par exemple, utilisez android/app/src/main/res/drawable-mdpi/ et android/app/src/main/res/drawable-hdpi/.
  3. Sinon, si vous gérez vos ressources dans votre répertoire React Native, vous pouvez utiliser la configuration des icônes app.json d’Expo ou créer un plugin de configuration Expo pour copier les icônes dans les dossiers drawable Android pendant la précompilation.

Le plugin Braze Expo fait référence à ces icônes via le système de ressources drawable d’Android.

Exigences relatives aux icônes

  • Petite icône : doit être une silhouette blanche sur fond transparent (exigence de la plateforme Android).
  • Grande icône : peut être une image en couleur.
  • Format : le format PNG est recommandé.
  • Nommage : utilisez uniquement des lettres minuscules, des chiffres et des traits de soulignement (par exemple, my_large_icon.png).

Configuration dans app.json

L’extrait de code suivant montre comment référencer les icônes de notification Android dans app.json en utilisant le préfixe @drawable/ :

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          "androidNotificationLargeIcon": "@drawable/large_icon",
          "androidNotificationSmallIcon": "@drawable/small_icon"
        }
      ]
    ]
  }
}

Fonctionnement

Le plugin Braze Expo fait référence à vos fichiers d’icônes depuis les répertoires drawable Android. Lorsque vous exécutez npx expo prebuild, Expo génère la structure native du projet Android. Vos icônes doivent être présentes dans les dossiers drawable Android (placées manuellement ou copiées via un plugin de configuration) avant le processus de build. Le plugin configure ensuite le SDK Braze pour utiliser ces ressources drawable par leur nom (sans chemin ni extension), c’est pourquoi le préfixe @drawable/ est requis dans votre configuration.

Pour plus d’informations sur les icônes de notification Android, consultez les directives relatives aux icônes de notification Android.

2.3 Compiler et exécuter votre application {#23-build-and-run-your-application}

La précompilation de votre application génère les fichiers natifs nécessaires au fonctionnement du plugin Braze Expo.

L’extrait de code suivant montre la commande pour précompiler votre application :

1
npx expo prebuild

Exécutez votre application comme indiqué dans la documentation Expo. Si vous modifiez les options de configuration, précompilez et exécutez à nouveau l’application.

Méthode 2 : Utiliser React Native CLI

Configuration Android

2.1 Ajouter le plugin Kotlin Gradle

L’extrait de code suivant montre comment ajouter le plugin Kotlin Gradle dans le fichier build.gradle de niveau supérieur de votre projet, sous buildscript > dependencies :

1
2
3
4
5
6
7
buildscript {
    dependencies {
        ...
        // Choose your Kotlin version
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10")
    }
}

Cela ajoute Kotlin à votre projet.

2.2 Configurer le SDK Braze

Créez un fichier braze.xml dans le dossier res/values de votre projet. La clé API et l’endpoint sont fournis au moment de l’exécution depuis JavaScript, ils ne sont donc pas requis dans ce fichier. L’extrait de code suivant montre comment activer l’initialisation différée avec com_braze_enable_delayed_initialization :

1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <bool name="com_braze_enable_delayed_initialization">true</bool>
</resources>

L’extrait de code suivant montre les autorisations requises pour votre fichier AndroidManifest.xml :

1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2.3 Implémenter le suivi de session utilisateur

Les appels à openSession() et closeSession() sont gérés automatiquement. L’extrait de code suivant montre ce qu’il faut ajouter à la méthode onCreate() de votre classe MainApplication :

1
2
3
4
5
6
7
8
import com.braze.BrazeActivityLifecycleCallbackListener;

@Override
public void onCreate() {
    super.onCreate();
    ...
    registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
}
1
2
3
4
5
6
7
import com.braze.BrazeActivityLifecycleCallbackListener

override fun onCreate() {
    super.onCreate()
    ...
    registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
}

2.4 Gérer les mises à jour d’intention

Si votre MainActivity a android:launchMode défini sur singleTask, l’extrait de code suivant montre ce qu’il faut ajouter à votre classe MainActivity :

1
2
3
4
5
@Override
public void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}
1
2
3
4
override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    setIntent(intent)
}
Configuration iOS

2.5 (Facultatif) Configurer le Podfile pour les XCFrameworks dynamiques

Pour importer certaines bibliothèques Braze, telles que BrazeUI, dans un fichier Objective-C++, vous devez utiliser la syntaxe #import. À partir de la version 7.4.0 du SDK Braze Swift, les binaires disposent d’un canal de distribution facultatif sous forme de XCFrameworks dynamiques, compatibles avec cette syntaxe.

Si vous souhaitez utiliser ce canal de distribution, remplacez manuellement les emplacements des sources CocoaPods dans votre Podfile. Référez-vous à l’exemple ci-dessous et remplacez {your-version} par la version souhaitée :

1
2
3
pod 'BrazeKit', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeKit.podspec'
pod 'BrazeUI', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeUI.podspec'
pod 'BrazeLocation', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeLocation.podspec'

2.6 Installer les pods

Comme React Native lie automatiquement les bibliothèques à la plateforme native, vous pouvez installer le SDK à l’aide de CocoaPods.

L’extrait de code suivant montre comment installer les pods depuis le dossier racine du projet :

1
2
3
4
5
# To install using the React Native New Architecture
cd ios && pod install

# To install using the React Native legacy architecture
cd ios && RCT_NEW_ARCH_ENABLED=0 pod install

2.7 Configurer le SDK Braze

Utilisez BrazeReactInitializer.configure dans votre AppDelegate pour enregistrer la configuration native. Les closures que vous fournissez sont stockées et appliquées ultérieurement lorsque Braze.initialize(apiKey, endpoint) est appelé depuis JavaScript.

L’extrait de code suivant montre comment importer le SDK Braze en haut du fichier AppDelegate.swift :

1
2
import BrazeKit
import braze_react_native_sdk

Dans la méthode application(_:didFinishLaunchingWithOptions:), enregistrez votre configuration native à l’aide de BrazeReactInitializer.configure. Ne définissez pas la clé API ni l’endpoint ici. Ils sont fournis depuis JavaScript via Braze.initialize().

  • Closure configure : reçoit un objet Braze.Configuration et vous permet de définir les propriétés de configuration natives (journalisation, push, sessions, etc.).
  • Closure postInitialization (facultatif) : reçoit l’instance Braze active après sa création, pour les configurations nécessitant l’instance (par exemple, stocker une référence ou définir des délégués).

L’extrait de code suivant montre un exemple d’implémentation AppDelegate.swift utilisant BrazeReactInitializer.configure :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
  static var braze: Braze? = nil

  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
  ) -> Bool {
    BrazeReactInitializer.configure { configuration in
      configuration.logger.level = .info
      configuration.push.automation = true
    } postInitialization: { braze in
      AppDelegate.braze = braze
    }

    // ... React Native setup

    return true
  }
}

L’extrait de code suivant montre comment importer le SDK Braze en haut du fichier AppDelegate.m :

1
2
@import BrazeKit;
@import braze_react_native_sdk;

Dans la méthode application:didFinishLaunchingWithOptions:, enregistrez votre configuration native à l’aide de BrazeReactInitializer. Ne définissez pas la clé API ni l’endpoint ici. Ils sont fournis depuis JavaScript via Braze.initialize().

L’extrait de code suivant montre un exemple d’implémentation AppDelegate.m utilisant BrazeReactInitializer :

1
2
3
4
5
6
7
8
9
10
11
12
13
- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [BrazeReactInitializer configure:^(BRZConfiguration *configuration) {
    configuration.logger.level = BRZLoggerLevelInfo;
    configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initWithAutomationEnabled:YES];
  } postInitialization:^(Braze *braze) {
    // Store the Braze instance for later use.
  }];

  /* Other configuration */

  return YES;
}

Méthode 1 : Utiliser le plugin Expo

Étape 2.1 : Installer le plugin Braze Expo

Assurez-vous que votre version du SDK React Native de Braze est au minimum 1.37.0. Pour obtenir la liste complète des versions prises en charge, consultez le dépôt Braze React Native.

L’extrait de code suivant montre la commande pour installer le plugin Braze Expo :

1
npx expo install @braze/expo-plugin
Étape 2.2 : Ajouter le plugin à votre app.json

Dans votre app.json, ajoutez le plugin Braze Expo. Vous pouvez fournir les options de configuration suivantes :

Méthode Type Description
androidApiKey chaîne de caractères Requis. La clé API de votre application Android, située dans votre tableau de bord de Braze sous Gérer les paramètres.
iosApiKey chaîne de caractères Requis. La clé API de votre application iOS, située dans votre tableau de bord de Braze sous Gérer les paramètres.
baseUrl chaîne de caractères Requis. L’endpoint SDK de votre application, situé dans votre tableau de bord de Braze sous Gérer les paramètres.
enableBrazeIosPush booléen iOS uniquement. Détermine si Braze gère les notifications push sur iOS. Introduit dans le SDK React Native v1.38.0 et le plugin Expo v0.4.0.
enableFirebaseCloudMessaging booléen Android uniquement. Détermine si Firebase Cloud Messaging est utilisé pour les notifications push. Introduit dans le SDK React Native v1.38.0 et le plugin Expo v0.4.0.
firebaseCloudMessagingSenderId chaîne de caractères Android uniquement. Votre ID expéditeur Firebase Cloud Messaging. Introduit dans le SDK React Native v1.38.0 et le plugin Expo v0.4.0.
sessionTimeout entier Le délai d’expiration de session Braze pour votre application, en secondes.
enableSdkAuthentication booléen Détermine si la fonctionnalité Authentification SDK est activée.
logLevel entier Le niveau de journalisation pour votre application. Le niveau par défaut est 8 et enregistre un minimum d’informations. Pour activer la journalisation détaillée pour le débogage, utilisez le niveau 0.
minimumTriggerIntervalInSeconds entier L’intervalle minimum en secondes entre les déclenchements. 30 secondes par défaut.
enableAutomaticLocationCollection booléen Détermine si la collecte automatique de localisation est activée (si l’utilisateur l’autorise).
enableGeofence booléen Détermine si les géorepérages sont activés.
enableAutomaticGeofenceRequests booléen Détermine si les demandes de géorepérage doivent être effectuées automatiquement.
dismissModalOnOutsideTap booléen iOS uniquement. Détermine si un message in-app modal est fermé lorsque l’utilisateur clique en dehors du message.
androidHandlePushDeepLinksAutomatically booléen Android uniquement. Détermine si le SDK Braze doit gérer automatiquement les liens profonds des notifications push.
androidPushNotificationHtmlRenderingEnabled booléen Android uniquement. Définit si le contenu textuel d’une notification push doit être interprété et rendu en HTML via android.text.Html.fromHtml.
androidNotificationAccentColor chaîne de caractères Android uniquement. Définit la couleur d’accentuation des notifications Android.
androidNotificationLargeIcon chaîne de caractères Android uniquement. Définit la grande icône des notifications Android.
androidNotificationSmallIcon chaîne de caractères Android uniquement. Définit la petite icône des notifications Android.
iosRequestPushPermissionsAutomatically booléen iOS uniquement. Détermine si l’utilisateur doit être automatiquement invité à autoriser les notifications push au lancement de l’application.
enableBrazeIosRichPush booléen iOS uniquement. Détermine si les fonctionnalités de push riche sont activées pour iOS.
enableBrazeIosPushStories booléen iOS uniquement. Détermine si Braze Push Stories est activé pour iOS.
iosPushStoryAppGroup chaîne de caractères iOS uniquement. Le groupe d’applications utilisé pour iOS Push Stories.
iosUseUUIDAsDeviceId booléen iOS uniquement. Détermine si l’ID de l’appareil utilise un UUID généré aléatoirement.
iosForwardUniversalLinks booléen iOS uniquement. Indique si le SDK doit automatiquement reconnaître et transmettre les liens universels aux méthodes système (par défaut : false). Lorsque cette option est activée, le SDK transmet automatiquement les liens universels aux méthodes système définies dans Prise en charge des liens universels dans votre application. Introduit dans le SDK React Native v11.1.0 et le plugin Expo v3.2.0.

L’extrait de code suivant montre un exemple de configuration app.json :

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
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          "androidApiKey": "YOUR-ANDROID-API-KEY",
          "iosApiKey": "YOUR-IOS-API-KEY",
          "baseUrl": "YOUR-SDK-ENDPOINT",
          "sessionTimeout": 60,
          "enableGeofence": false,
          "enableBrazeIosPush": false,
          "enableFirebaseCloudMessaging": false,
          "firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
          "androidHandlePushDeepLinksAutomatically": true,
          "enableSdkAuthentication": false,
          "logLevel": 0,
          "minimumTriggerIntervalInSeconds": 0,
          "enableAutomaticLocationCollection": false,
          "enableAutomaticGeofenceRequests": false,
          "dismissModalOnOutsideTap": true,
          "androidPushNotificationHtmlRenderingEnabled": true,
          "androidNotificationAccentColor": "#ff3344",
          "androidNotificationLargeIcon": "@drawable/custom_app_large_icon",
          "androidNotificationSmallIcon": "@drawable/custom_app_small_icon",
          "iosRequestPushPermissionsAutomatically": false,
          "enableBrazeIosPushStories": true,
          "iosPushStoryAppGroup": "group.com.example.myapp.PushStories",
          "iosForwardUniversalLinks": false
        }
      ],
    ]
  }
}
Configuration des icônes de notification push Android

Lorsque vous utilisez androidNotificationLargeIcon et androidNotificationSmallIcon, suivez ces bonnes pratiques pour un affichage correct des icônes :

Emplacement et format des icônes

Pour utiliser des icônes de notification push personnalisées avec le plugin Braze Expo :

  1. Créez vos fichiers d’icônes en respectant les exigences détaillées ci-dessous.
  2. Placez-les dans les répertoires natifs Android de votre projet à l’emplacement android/app/src/main/res/drawable-<density>/ (par exemple, android/app/src/main/res/drawable-mdpi/, drawable-hdpi/, ou similaire).
  3. Sinon, si vous gérez vos ressources dans votre répertoire React Native, vous pouvez utiliser la configuration des icônes app.json d’Expo ou créer un plugin de configuration Expo pour copier les icônes dans les dossiers drawable Android pendant la précompilation.

Le plugin Braze Expo fait référence à ces icônes via le système de ressources drawable d’Android.

Exigences relatives aux icônes

  • Petite icône : doit être une silhouette blanche sur fond transparent (exigence de la plateforme Android).
  • Grande icône : peut être une image en couleur.
  • Format : le format PNG est recommandé.
  • Nommage : utilisez uniquement des lettres minuscules, des chiffres et des traits de soulignement (par exemple, my_large_icon.png).

Configuration dans app.json

L’extrait de code suivant montre comment référencer les icônes de notification Android dans app.json en utilisant le préfixe @drawable/ :

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          "androidNotificationLargeIcon": "@drawable/large_icon",
          "androidNotificationSmallIcon": "@drawable/small_icon"
        }
      ]
    ]
  }
}

Fonctionnement

Le plugin Braze Expo fait référence à vos fichiers d’icônes depuis les répertoires drawable Android. Lorsque vous exécutez npx expo prebuild, Expo génère la structure native du projet Android. Vos icônes doivent être présentes dans les dossiers drawable Android (placées manuellement ou copiées via un plugin de configuration) avant le processus de build. Le plugin configure ensuite le SDK Braze pour utiliser ces ressources drawable par leur nom (sans chemin ni extension), c’est pourquoi le préfixe @drawable/ est requis dans votre configuration.

Pour plus d’informations sur les icônes de notification Android, consultez les directives relatives aux icônes de notification Android.

Étape 2.3 : Compiler et exécuter votre application

La précompilation de votre application génère les fichiers natifs nécessaires au fonctionnement du plugin Braze Expo.

L’extrait de code suivant montre la commande pour précompiler votre application :

1
npx expo prebuild

Exécutez votre application comme indiqué dans la documentation Expo. Notez que si vous modifiez les options de configuration, vous devrez précompiler et exécuter à nouveau l’application.

Méthode 2 : Utiliser React Native CLI

Configuration Android

Étape 2.1 : Ajouter le plugin Kotlin Gradle

L’extrait de code suivant montre comment ajouter le plugin Kotlin Gradle dans le fichier build.gradle de niveau supérieur de votre projet, sous buildscript > dependencies :

1
2
3
4
5
6
7
buildscript {
    dependencies {
        ...
        // Choose your Kotlin version
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10")
    }
}

Cela ajoute Kotlin à votre projet.

Étape 2.2 : Configurer le SDK Braze

Pour vous connecter aux serveurs Braze, créez un fichier braze.xml dans le dossier res/values de votre projet. L’extrait de code suivant montre un exemple de configuration braze.xml. Remplacez la clé API et l’endpoint par vos valeurs :

1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string translatable="false" name="com_braze_api_key">YOU_APP_IDENTIFIER_API_KEY</string>
  <string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
</resources>

L’extrait de code suivant montre les autorisations requises pour votre fichier AndroidManifest.xml :

1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Étape 2.3 : Implémenter le suivi de session utilisateur

Les appels à openSession() et closeSession() sont gérés automatiquement. L’extrait de code suivant montre ce qu’il faut ajouter à la méthode onCreate() de votre classe MainApplication :

1
2
3
4
5
6
7
8
import com.braze.BrazeActivityLifecycleCallbackListener;

@Override
public void onCreate() {
    super.onCreate();
    ...
    registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
}
1
2
3
4
5
6
7
import com.braze.BrazeActivityLifecycleCallbackListener

override fun onCreate() {
    super.onCreate()
    ...
    registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
}

Étape 2.4 : Gérer les mises à jour d’intention

Si votre MainActivity a android:launchMode défini sur singleTask, l’extrait de code suivant montre ce qu’il faut ajouter à votre classe MainActivity :

1
2
3
4
5
@Override
public void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}
1
2
3
4
override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    setIntent(intent)
}
Configuration iOS

Étape 2.5 : (Facultatif) Configurer le Podfile pour les XCFrameworks dynamiques

Pour importer certaines bibliothèques Braze, telles que BrazeUI, dans un fichier Objective-C++, vous devez utiliser la syntaxe #import. À partir de la version 7.4.0 du SDK Braze Swift, les binaires disposent d’un canal de distribution facultatif sous forme de XCFrameworks dynamiques, compatibles avec cette syntaxe.

Si vous souhaitez utiliser ce canal de distribution, remplacez manuellement les emplacements des sources CocoaPods dans votre Podfile. L’extrait de code suivant montre un exemple de remplacement. Remplacez {your-version} par la version souhaitée :

1
2
3
pod 'BrazeKit', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeKit.podspec'
pod 'BrazeUI', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeUI.podspec'
pod 'BrazeLocation', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeLocation.podspec'

Étape 2.6 : Installer les pods

Comme React Native lie automatiquement les bibliothèques à la plateforme native, vous pouvez installer le SDK à l’aide de CocoaPods.

L’extrait de code suivant montre comment installer les pods depuis le dossier racine du projet :

1
2
3
4
5
# To install using the React Native New Architecture
cd ios && pod install

# To install using the React Native legacy architecture
cd ios && RCT_NEW_ARCH_ENABLED=0 pod install

Étape 2.7 : Configurer le SDK Braze

L’extrait de code suivant montre comment importer le SDK Braze en haut du fichier AppDelegate.swift :

1
2
import BrazeKit
import braze_react_native_sdk

Dans la méthode application(_:didFinishLaunchingWithOptions:), remplacez la clé API et l’endpoint par les valeurs de votre application. Ensuite, créez l’instance Braze à l’aide de la configuration et créez une propriété statique sur AppDelegate pour un accès facile.

L’extrait de code suivant montre un exemple de configuration AppDelegate.swift :

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
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
    // Setup Braze
    let configuration = Braze.Configuration(
        apiKey: "{BRAZE_API_KEY}",
        endpoint: "{BRAZE_ENDPOINT}")
    // Enable logging and customize the configuration here.
    configuration.logger.level = .info
    let braze = BrazeReactBridge.perform(
      #selector(BrazeReactBridge.initBraze(_:)),
      with: configuration
    ).takeUnretainedValue() as! Braze

    AppDelegate.braze = braze

    /* Other configuration */

    return true
}

// MARK: - AppDelegate.braze

static var braze: Braze? = nil

L’extrait de code suivant montre comment importer le SDK Braze en haut du fichier AppDelegate.m :

1
2
#import <BrazeKit/BrazeKit-Swift.h>
#import "BrazeReactBridge.h"

Dans la méthode application:didFinishLaunchingWithOptions:, remplacez la clé API et l’endpoint par les valeurs de votre application. Ensuite, créez l’instance Braze à l’aide de la configuration et créez une propriété statique sur AppDelegate pour un accès facile.

L’extrait de code suivant montre un exemple de configuration AppDelegate.m :

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
- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Setup Braze
  BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"{BRAZE_API_KEY}"
                                                                    endpoint:@"{BRAZE_ENDPOINT}"];
  // Enable logging and customize the configuration here.
  configuration.logger.level = BRZLoggerLevelInfo;
  Braze *braze = [BrazeReactBridge initBraze:configuration];
  AppDelegate.braze = braze;

  /* Other configuration */

  return YES;
}

#pragma mark - AppDelegate.braze

static Braze *_braze = nil;

+ (Braze *)braze {
  return _braze;
}

+ (void)setBraze:(Braze *)braze {
  _braze = braze;
}

Étape 3 : Initialiser le SDK

L’extrait de code suivant montre comment importer la bibliothèque dans votre code React Native :

1
import Braze from "@braze/react-native-sdk";

Appelez ensuite Braze.initialize() avec votre clé API d’identifiant d’application et l’endpoint SDK pour créer l’instance Braze. Consultez les options ci-dessous pour savoir où appeler cette méthode dans votre application.

Initialisation standard

L’extrait de code suivant montre comment initialiser le SDK au démarrage de votre application en appelant Braze.initialize() dans un useEffect :

1
2
3
4
5
6
7
8
9
10
11
12
import React, { useEffect } from "react";
import Braze from "@braze/react-native-sdk";

const App = () => {
  useEffect(() => {
    Braze.initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT");
  }, []);

  return (
    // Your app components
  );
};

Initialisation différée

L’extrait de code suivant montre comment reporter l’initialisation du SDK à plus tard dans la session. Par exemple, après que l’utilisateur a donné son consentement ou s’est connecté :

1
2
3
function onUserConsent() {
  Braze.initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT");
}

Clés API spécifiques à la plateforme

L’extrait de code suivant montre comment utiliser la détection de plateforme lorsque vos applications Android et iOS utilisent des clés API différentes :

1
2
3
4
5
6
7
8
9
import { Platform } from "react-native";
import Braze from "@braze/react-native-sdk";

const apiKey = Platform.select({
  android: "YOUR-ANDROID-API-KEY",
  ios: "YOUR-IOS-API-KEY",
}) ?? "";

Braze.initialize(apiKey, "YOUR-SDK-ENDPOINT");

Réinitialisation

Vous pouvez appeler Braze.initialize() plusieurs fois pour réinitialiser le SDK avec une clé API et un endpoint différents en cours de session. Chaque appel détruit l’instance Braze précédente et en crée une nouvelle.

Pour le SDK React Native 19.1.0 et antérieur, l’initialisation native se fait à l’étape 2. Importez la bibliothèque dans votre code React Native pour appeler les méthodes Braze. Pour plus de détails, consultez notre exemple de projet.

1
import Braze from "@braze/react-native-sdk";

Étape 4 : Tester l’intégration (facultatif)

Vous pouvez vérifier que le SDK est bien intégré en consultant les statistiques de session dans le tableau de bord. Si vous exécutez votre application sur l’une ou l’autre plateforme, vous devriez voir une nouvelle session apparaître dans le tableau de bord (dans la section Overview).

L’extrait de code suivant montre comment ouvrir une session pour un utilisateur particulier dans votre application :

1
2
3
4
import Braze from "@braze/react-native-sdk";

Braze.initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT");
Braze.changeUser("{some-user-id}");

Recherchez l’utilisateur avec {some-user-id} dans le tableau de bord sous Audience > Search Users. Vous pouvez y vérifier que les données de session et d’appareil ont bien été enregistrées.

Pour tester l’intégration du SDK, l’extrait de code suivant montre comment démarrer une nouvelle session sur l’une ou l’autre plateforme pour un utilisateur.

1
Braze.changeUser("userId");

L’extrait de code suivant montre un exemple d’attribution de l’ID utilisateur au démarrage de l’application :

1
2
3
4
5
6
7
8
9
10
11
12
13
import React, { useEffect } from "react";
import Braze from "@braze/react-native-sdk";

const App = () => {
  useEffect(() => {
    Braze.changeUser("some-user-id");
  }, []);

  return (
    <div>
      ...
    </div>
  )

Dans le tableau de bord de Braze, accédez à Recherche d’utilisateurs et recherchez l’utilisateur dont l’ID correspond à some-user-id. Vous pouvez y vérifier que les données de session et d’appareil ont bien été enregistrées.

Étapes suivantes

Après l’intégration du SDK Braze, vous pouvez commencer à mettre en œuvre les fonctionnalités d’envoi de messages courantes :

  • Notifications push : configurez et envoyez des notifications push à vos utilisateurs.
  • In-App Messages : affichez des messages contextuels au sein de votre application.
  • Bannières : affichez des bannières continuelles dans l’interface de votre application.

Intégration du SDK Roku

Étape 1 : Ajouter des fichiers

Les fichiers du SDK Braze sont disponibles dans le répertoire sdk_files du référentiel SDK Roku de Braze.

  1. Ajouter BrazeSDK.brs à votre application dans le répertoire source.
  2. Ajouter BrazeTask.brs et BrazeTask.xml à votre application dans le répertoire components.

Étape 2 : Ajouter des références

Ajouter une référence à BrazeSDK.brs dans votre scène principale, en utilisant l’élément script :

1
<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>

Étape 3 : Configurer

Dans main.brs, définissez la configuration Braze sur le nœud global :

1
2
3
4
5
6
7
8
globalNode = screen.getGlobalNode()
config = {}
config_fields = BrazeConstants().BRAZE_CONFIG_FIELDS
config[config_fields.API_KEY] = {YOUR_API_KEY}
' example endpoint: "https://sdk.iad-01.braze.com/"
config[config_fields.ENDPOINT] = {YOUR_ENDPOINT}
config[config_fields.HEARTBEAT_FREQ_IN_SECONDS] = 5
globalNode.addFields({brazeConfig: config})

Vous trouverez votre endpoint SDK et votre clé API dans le tableau de bord de Braze.

Étape 4 : Initialiser Braze

Initialiser l’instance Braze :

1
2
m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)

Configurations optionnelles

Journalisation

Pour déboguer votre intégration Braze, vous pouvez afficher la console de débogage Roku pour les journaux Braze. Pour en savoir plus, reportez-vous au Code de débogage des développeurs Roku.

À propos du SDK Unity Braze

Pour obtenir la liste complète des types, fonctions, variables et autres, consultez le fichier de déclaration Unity. En outre, si vous avez déjà intégré Unity manuellement pour iOS, vous pouvez passer à une intégration automatisée à la place.

Intégration du SDK Unity

Conditions préalables

Avant de commencer, vérifiez que votre environnement est pris en charge par la dernière version du SDK Braze Unity.

Étape 1 : Choisissez votre package Braze Unity

Le .unitypackage Braze regroupe des liaisons natives pour les plateformes Android et iOS, ainsi qu’une interface C#.

Plusieurs packages Braze Unity sont disponibles au téléchargement sur la page des versions de Braze Unity :

  • Appboy.unitypackage
    • Ce package regroupe les SDK Android et iOS de Braze ainsi que la dépendance SDWebImage pour le SDK iOS, nécessaire au bon fonctionnement des messages in-app et des fonctionnalités Content Cards de Braze sur iOS. Le framework SDWebImage est utilisé pour télécharger et afficher des images, y compris des GIF. Si vous souhaitez utiliser l’ensemble des fonctionnalités de Braze, téléchargez et importez ce package.
  • Appboy-nodeps.unitypackage
    • Ce package est similaire à Appboy.unitypackage, à l’exception du framework SDWebImage qui n’est pas inclus. Ce package est utile si vous ne souhaitez pas que le framework SDWebImage soit présent dans votre application iOS.

Le .unitypackage Braze regroupe des liaisons natives pour les plateformes Android et iOS, ainsi qu’une interface C#.

Le package Braze Unity est disponible au téléchargement sur la page des versions de Braze Unity avec deux options d’intégration :

  1. Appboy.unitypackage uniquement
    • Ce package regroupe les SDK Android et iOS de Braze sans aucune dépendance supplémentaire. Avec cette méthode d’intégration, les messages in-app et les fonctionnalités Content Cards de Braze ne fonctionneront pas correctement sur iOS. Si vous souhaitez utiliser l’ensemble des fonctionnalités de Braze sans code personnalisé, utilisez plutôt l’option ci-dessous.
    • Pour utiliser cette option d’intégration, assurez-vous que la case à côté de Import SDWebImage dependency est décochée dans l’interface Unity sous « Braze Configuration ».
  2. Appboy.unitypackage avec SDWebImage
    • Cette option d’intégration regroupe les SDK Android et iOS de Braze ainsi que la dépendance SDWebImage pour le SDK iOS, nécessaire au bon fonctionnement des messages in-app et des fonctionnalités Content Cards de Braze sur iOS. Le framework SDWebImage est utilisé pour télécharger et afficher des images, y compris des GIF. Si vous souhaitez utiliser l’ensemble des fonctionnalités de Braze, téléchargez et importez ce package.
    • Pour importer automatiquement SDWebImage, veillez à cocher la case à côté de Import SDWebImage dependency dans l’interface Unity sous « Braze Configuration ».

Étape 2 : Importer le package

Dans l’éditeur Unity, importez le package dans votre projet Unity en accédant à Assets > Import Package > Custom Package. Cliquez ensuite sur Import.

Vous pouvez également suivre les instructions d’importation de packages d’actifs Unity pour un guide plus détaillé sur l’importation de packages Unity personnalisés.

Dans l’éditeur Unity, importez le package dans votre projet Unity en accédant à Assets > Import Package > Custom Package. Cliquez ensuite sur Import.

Vous pouvez également suivre les instructions d’importation de packages d’actifs Unity pour un guide plus détaillé sur l’importation de packages Unity personnalisés.

Étape 3 : Configurer le SDK

Étape 3.1 : Configurer AndroidManifest.xml

Configurez AndroidManifest.xml pour que le SDK Braze puisse fonctionner. Si votre application ne dispose pas d’un AndroidManifest.xml, vous pouvez utiliser le modèle suivant. Sinon, si vous avez déjà un AndroidManifest.xml, assurez-vous que les sections manquantes suivantes sont ajoutées à votre AndroidManifest.xml existant.

  1. Accédez au répertoire Assets/Plugins/Android/ et ouvrez votre fichier AndroidManifest.xml. Il s’agit de l’emplacement par défaut dans l’éditeur Unity.
  2. Dans votre AndroidManifest.xml, ajoutez les permissions et activités requises à partir du modèle suivant.
  3. Lorsque vous aurez terminé, votre AndroidManifest.xml ne devrait contenir qu’une seule Activity avec "android.intent.category.LAUNCHER".
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
<?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" />

  <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:theme="@style/UnityThemeSelector"
      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>

    <!-- A Braze specific FirebaseMessagingService used to handle push notifications. -->
    <service android:name="com.braze.push.BrazeFirebaseMessagingService"
      android:exported="false">
      <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
      </intent-filter>
    </service>
  </application>
</manifest>

Étape 3.2 : Mettre à jour AndroidManifest.xml avec le nom de votre package

Pour trouver le nom de votre package, cliquez sur File > Build Settings > Player Settings > Android Tab.

Dans votre AndroidManifest.xml, toutes les instances de REPLACE_WITH_YOUR_PACKAGE_NAME doivent être remplacées par votre Package Name de l’étape précédente.

Étape 3.3 : Ajouter les dépendances Gradle

Pour ajouter des dépendances Gradle à votre projet Unity, activez d’abord « Custom Main Gradle Template » dans vos paramètres de publication. Cela créera un fichier Gradle modèle que votre projet utilisera. Un fichier Gradle gère la configuration des dépendances et d’autres paramètres du projet au moment de la compilation. Pour plus d’informations, consultez le fichier mainTemplate.gradle de l’application exemple Braze Unity.

Les dépendances suivantes sont requises :

1
2
3
4
5
6
implementation 'com.google.firebase:firebase-messaging:22.0.0'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation "androidx.recyclerview:recyclerview:1.2.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.6.0"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1"
implementation 'androidx.core:core:1.6.0'

Vous pouvez également définir ces dépendances à l’aide de l’External Dependency Manager.

Étape 3.4 : Automatiser l’intégration Unity Android

Braze fournit une solution Unity native pour automatiser l’intégration Unity Android.

  1. Dans l’éditeur Unity, ouvrez les paramètres de configuration de Braze en accédant à Braze > Braze Configuration.
  2. Cochez la case Automate Unity Android Integration.
  3. Dans le champ Braze API Key, saisissez la clé API de votre application disponible dans Gérer les paramètres depuis le tableau de bord de Braze.

Étape 3.1 : Définir votre clé API

Braze fournit une solution Unity native pour automatiser l’intégration Unity iOS. Cette solution modifie le projet Xcode compilé à l’aide du PostProcessBuildAttribute de Unity et crée une sous-classe de UnityAppController avec la macro IMPL_APP_CONTROLLER_SUBCLASS.

  1. Dans l’éditeur Unity, ouvrez les paramètres de configuration de Braze en accédant à Braze > Braze Configuration.
  2. Cochez la case Automate Unity iOS Integration.
  3. Dans le champ Braze API Key, saisissez la clé API de votre application disponible dans Gérer les paramètres.

Si votre application utilise déjà une autre sous-classe de UnityAppController, vous devrez fusionner votre implémentation de sous-classe avec AppboyAppDelegate.mm.

Personnaliser le package Unity

Étape 1 : Cloner le dépôt

Dans votre terminal, clonez le dépôt GitHub du SDK Braze Unity, puis naviguez jusqu’à ce dossier :

1
2
git clone [email protected]:braze-inc/braze-unity-sdk.git
cd ~/PATH/TO/DIRECTORY/braze-unity-sdk
1
2
git clone git@github.com:braze-inc/braze-unity-sdk.git
cd C:\PATH\TO\DIRECTORY\braze-unity-sdk

Étape 2 : Exporter le package depuis le dépôt

Tout d’abord, lancez Unity et laissez-le tourner en arrière-plan. Ensuite, à la racine du dépôt, exécutez la commande suivante pour exporter le package vers braze-unity-sdk/unity-package/.

1
/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -nographics -projectPath "$(pwd)" -executeMethod Appboy.Editor.Build.ExportAllPackages -quit
1
"%UNITY_PATH%" -batchmode -nographics -projectPath "%PROJECT_ROOT%" -executeMethod Appboy.Editor.Build.ExportAllPackages -quit

Étape 3 : Importer le package dans Unity

  1. Dans Unity, importez le package souhaité dans votre projet Unity en accédant à Assets > Import Package > Custom Package.
  2. S’il y a des fichiers que vous ne souhaitez pas importer, désélectionnez-les maintenant.
  3. Personnalisez le package Unity exporté situé dans Assets/Editor/Build.cs.

Passer à une intégration automatisée (Swift uniquement)

Pour profiter de l’intégration iOS automatisée proposée dans le SDK Braze Unity, suivez ces étapes pour passer d’une intégration manuelle à une intégration automatisée.

  1. Supprimez tout le code lié à Braze de la sous-classe UnityAppController de votre projet Xcode.
  2. Supprimez les bibliothèques iOS de Braze de votre projet Unity ou Xcode (telles que Appboy_iOS_SDK.framework et SDWebImage.framework).
  3. Importez à nouveau le package Braze Unity dans votre projet. Pour une procédure complète, consultez Étape 2 : Importer le package.
  4. Définissez à nouveau votre clé API. Pour une procédure complète, consultez Étape 3.1 : Définir votre clé API.

Configurations optionnelles

Journalisation détaillée

Pour activer la journalisation détaillée dans l’éditeur Unity, procédez comme suit :

  1. Ouvrez les paramètres de configuration de Braze en accédant à Braze > Braze Configuration.
  2. Cliquez sur le menu déroulant Show Braze Android Settings.
  3. Dans le champ SDK Log Level, saisissez la valeur « 0 ».

Compatibilité Prime 31

Pour utiliser le plug-in Braze Unity avec les plug-ins Prime31, modifiez le fichier AndroidManifest.xml de votre projet pour utiliser les classes Activity compatibles Prime31. Remplacez toutes les références de com.braze.unity.BrazeUnityPlayerActivity par com.braze.unity.prime31compatible.BrazeUnityPlayerActivity

Amazon Device Messaging (ADM)

Braze prend en charge l’intégration des notifications push ADM dans les applications Unity. Si vous souhaitez intégrer les notifications push ADM, créez un fichier appelé api_key.txt contenant votre clé API ADM et placez-le dans le dossier Plugins/Android/assets/. Pour plus d’informations sur l’intégration d’ADM avec Braze, consultez nos instructions d’intégration des notifications push ADM.

Extension du lecteur Braze Unity (Android uniquement)

L’exemple de fichier AndroidManifest.xml fourni contient une classe Activity enregistrée, BrazeUnityPlayerActivity. Cette classe est intégrée au SDK Braze et étend UnityPlayerActivity avec la gestion des sessions, l’enregistrement des messages in-app, la journalisation analytique des notifications push, et bien plus encore. Consultez Unity pour plus d’informations sur l’extension de la classe UnityPlayerActivity.

Si vous créez votre propre UnityPlayerActivity personnalisée dans un projet de bibliothèque ou de plug-in, vous devrez étendre notre BrazeUnityPlayerActivity pour intégrer votre fonctionnalité personnalisée avec Braze. Avant de commencer à étendre BrazeUnityPlayerActivity, suivez nos instructions pour intégrer Braze dans votre projet Unity.

  1. Ajoutez le SDK Android de Braze en tant que dépendance à votre projet de bibliothèque ou de plug-in, comme décrit dans les instructions d’intégration du SDK Android de Braze.
  2. Intégrez notre .aar Unity, qui contient nos fonctionnalités spécifiques à Unity, dans votre projet de bibliothèque Android que vous développez pour Unity. Le fichier appboy-unity.aar est disponible dans notre dépôt public. Une fois notre bibliothèque Unity intégrée avec succès, modifiez votre UnityPlayerActivity pour étendre BrazeUnityPlayerActivity.
  3. Exportez votre projet de bibliothèque ou de plug-in et déposez-le dans /<your-project>/Assets/Plugins/Android comme d’habitude. N’incluez pas de code source Braze dans votre bibliothèque ou votre plug-in, car il sera déjà présent dans /<your-project>/Assets/Plugins/Android.
  4. Modifiez votre /<your-project>/Assets/Plugins/Android/AndroidManifest.xml pour spécifier votre sous-classe de BrazeUnityPlayerActivity comme activité principale.

Vous devriez maintenant pouvoir générer un .apk depuis l’IDE Unity qui est entièrement intégré à Braze et contient votre fonctionnalité UnityPlayerActivity personnalisée.

Résolution des problèmes

Erreur : « File could not be read »

Les erreurs ressemblant à ce qui suit peuvent être ignorées en toute sécurité. Le logiciel Apple utilise une extension PNG propriétaire appelée CgBI, qu’Unity ne reconnaît pas. Ces erreurs n’affecteront ni votre compilation iOS ni l’affichage correct des images associées dans le bundle Braze.

1
Could not create texture from Assets/Plugins/iOS/AppboyKit/Appboy.bundle/...png: File could not be read

Intégration du SDK .NET MAUI

L’intégration du SDK Braze .NET MAUI (anciennement Xamarin) vous fournira des fonctionnalités d’analyse de base ainsi que des messages in-app qui vous permettront d’interagir avec vos utilisateurs.

Conditions préalables

Avant de pouvoir réaliser l’intégration du SDK .NET MAUI Braze, veuillez vous assurer que vous répondez aux exigences suivantes :

  • À partir de la version 3.0.0, ce SDK nécessite l’utilisation de .NET 6+ et supprime la prise en charge des projets utilisant le framework Xamarin.
  • À partir de version 4.0.0, ce SDK a cessé de prendre en charge Xamarin &Xamarin.Formset a ajouté la prise en charge de .NET MAUI. Voir la politique de Microsoft concernant la fin du support pour Xamarin.

Étape 1 : Obtenir la liaison .NET MAUI

Une liaison .NET MAUI est un moyen d’utiliser des bibliothèques natives dans les applications .NET MAUI. L’implémentation d’une liaison consiste à créer une interface C# avec la bibliothèque, puis à utiliser cette interface dans votre application. Veuillez consulter la documentation .NET MAUI. Il existe deux façons d’inclure la liaison du SDK de Braze : en utilisant NuGet ou en compilant à partir de la source.

La méthode d’intégration la plus simple consiste à obtenir le SDK de Braze à partir du référentiel central NuGet.org. Dans la barre latérale Visual Studio, cliquez avec le bouton droit de la souris le dossier Packages et cliquez sur Add Packages.... Recherchez « Braze » et installez le package BrazePlatform.BrazeAndroidBinding dans votre projet.

Pour utiliser les services de localisation et les géorepérages Braze, veuillez également installer leBrazePlatform.BrazeAndroidLocationBindingpackage.

La deuxième méthode d’intégration consiste à inclure la source de liaison. Vous appboy-component/src/androidnet6trouverez ci-dessous notre code source de liaison ; l’ajout d’une référence de projet au fichierBrazeAndroidBinding.csprojdans votre application .NET MAUI entraînera la création de la liaison avec votre projet et vous donnera accès au SDK Android Braze.

Pour utiliser les services d’emplacement et les géorepérages Braze, veuillez également ajouter une référence de projet au fichierBrazeAndroidLocationBinding.csprojsitué sous appboy-component/src/androidnet6/BrazeAndroidLocationBinding.

Une liaison .NET MAUI est un moyen d’utiliser des bibliothèques natives dans les applications .NET MAUI. L’implémentation d’une liaison consiste à créer une interface C# avec la bibliothèque, puis à utiliser cette interface dans votre application. Il existe deux façons d’inclure la liaison du SDK de Braze : en utilisant NuGet ou en compilant à partir de la source.

La méthode d’intégration la plus simple consiste à obtenir le SDK de Braze à partir du référentiel central NuGet.org. Dans la barre latérale Visual Studio, cliquez avec le bouton droit de la souris le dossier Packages et cliquez sur Add Packages.... Veuillez rechercher « Braze » et installer les derniers packages NuGet .NET MAUI iOS : Braze.iOS.BrazeKit, Braze.iOS.BrazeUI, etBraze.iOS.BrazeLocation dans votre projet.

Nous fournissons également les packages de bibliothèques de compatibilité : Braze.iOS.BrazeKitCompat et Braze.iOS.BrazeUICompat pour faciliter votre migration vers .NET MAUI.

La deuxième méthode d’intégration consiste à inclure la source de liaison. Vous appboy-component/src/iosnet6trouverez ci-dessous notre code source de liaison ; l’ajout d’une référence de projet au fichierBrazeiOSBinding.csprojdans votre application .NET MAUI entraînera la création de la liaison avec votre projet et vous donnera accès au SDK iOS Braze. Assurez-vous que BrazeiOSBinding.csproj apparaît dans le dossier « Référence » de votre projet.

Étape 2 : Configurez votre instance Braze

Étape 2.1 : Configurez le SDK de Braze dans Braze.xml

Maintenant que les bibliothèques ont été intégrées, vous devez créer un fichier Braze.xml dans le dossier Resources/values de votre projet. Le contenu de ce fichier devrait ressembler à l’extrait de code suivant :

1
2
3
4
5
6
7
8
9
  <?xml version="1.0" encoding="utf-8"?>
  <resources>
    <string translatable="false" name="com_braze_api_key">YOUR_API_KEY</string>
    <string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
    <string-array name="com_braze_internal_sdk_metadata">
      <item>XAMARIN</item>
      <item>NUGET</item>
    </string-array>
  </resources>

Si vous incluez manuellement la source de la liaison, retirez <item>NUGET</item> de votre code.

Étape 2.2 : Ajouter les autorisations requises au manifeste Android

Maintenant que vous avez ajouté votre clé API, vous devez ajouter les autorisations suivantes à votre fichier AndroidManifest.xml :

1
<uses-permission android:name="android.permission.INTERNET" />

Pour obtenir un exemple de votre AndroidManifest.xml, voir l’exemple d’application Android MAUI.

Étape 2.3 : Suivre les sessions des utilisateurs et l’enregistrement des messages in-app.

Pour activer le suivi de session utilisateur et enregistrer votre application pour les messages in-app, ajoutez l’appel suivant à la méthode de cycle de vie OnCreate() de la classe Application dans votre application :

1
RegisterActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());

Lors de la configuration de votre instance Braze, ajoutez l’extrait de code suivant pour configurer votre instance :

1
2
3
var configuration = new BRZConfiguration("YOUR_API_KEY", "YOUR_ENDPOINT");
configuration.Api.AddSDKMetadata(new[] { BRZSDKMetadata.Xamarin });
braze = new Braze(configuration);

Voir le fichier App.xaml.cs dans l’exemple d’application iOS MAUI.

Étape 3 : Tester l’intégration

Vous pouvez désormais lancer votre application et voir les sessions enregistrées dans le tableau de bord de Braze (ainsi que les informations relatives à l’appareil et d’autres analyses/analytiques). Pour obtenir une explication approfondie des bonnes pratiques pour l’intégration SDK de base, consultez les instructions d’intégration Android.

Vous pouvez maintenant lancer votre application et voir les sessions enregistrées dans le tableau de bord de Braze. Pour obtenir une explication approfondie des bonnes pratiques pour l’intégration SDK de base, consultez les instructions d’intégration iOS.

Intégration de l’application ChatGPT

Configuration

Étape 1 : Obtenir le fichier d’intégration Braze

Veuillez copier lebraze.jsfichier depuis notre référentiel d’intégration des applications ChatGPT vers votre projet. Ce fichier contient toutes les configurations et fonctions d’aide nécessaires au SDK Braze.

Étape 2 : Veuillez installer les dépendances.

Veuillez installer notre SDK Web pour bénéficier des fonctionnalités les plus récentes de Braze :

Pour l’intégration côté client :

1
npm install @braze/web-sdk

Mise en œuvre

Il existe deux méthodes pour réaliser l’intégration de Braze à votre application ChatGPT, en fonction de votre cas d’utilisation :

Intégration côté client (widgets personnalisés)

Pour afficher les messages Braze et suivre les interactions des utilisateurs dans les widgets personnalisés de votre application ChatGPT, veuillez utiliser l’intégration SDK. Un exemple complet d’envoi de messages est disponible dans notre référentiel d’exemples ici.

Configurer les métadonnées du widget

Veuillez ajouter les métadonnées suivantes à votre fichier serveur MCP afin d’autoriser les domaines Braze, en veillant à mettre à jour le domaine du réseau de diffusion de contenu en fonction de votre région :

1
2
3
4
5
6
7
8
9
"openai/widgetCSP": {
  connect_domains: ["https://YOUR-SDK-ENDPOINT"],
  resource_domains: [
    "https://appboy-images.com",
    "https://braze-images.com",
    "https://cdn.braze.eu",
    "https://use.fontawesome.com"
  ],
}

Veuillez remplacerYOUR-SDK-ENDPOINTpar votre endpoint SDK Braze réel.

Configurer le hook useBraze

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 { useBraze } from "./utils/braze";

function YourWidget() {
  const braze = useBraze({
    apiKey: "your-braze-api-key",
    baseUrl: "your-braze-endpoint.braze.com",
  });

  useEffect(() => {
    if (!braze.isInitialized) {
      return;
    }

    // Set user identity
    braze.changeUser("user-id-123");
    
    // Log widget interactions
    braze.logCustomEvent("viewed_pizzaz_list");
  }, [braze.isInitialized]);

  return (
    // Your widget JSX
  );
}

Afficher les cartes de contenu Braze

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const [cards, setCards] = useState([]);

useEffect(() => {
  // Get cached content cards
  setCards(braze.getCachedContentCards()?.cards ?? []);

  // Subscribe to content card updates
  braze.subscribeToContentCardsUpdates((contentCards) => {
    setCards(contentCards.cards);
  });

  // Open session
  braze.openSession();

  return () => {
    braze.removeAllSubscriptions();
  }
}, []);

Suivre les événements du widget

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Track user interactions within your widget
const handleButtonClick = () => {
  braze.logCustomEvent("widget_button_clicked", {
    button_type: "save_list",
    widget_name: "pizza_list"
  });
};

const handleItemInteraction = (itemId) => {
  braze.logCustomEvent("item_interacted", {
    item_id: itemId,
    interaction_type: "view_details"
  });
};

Intégration côté serveur (serveur MCP)

Si vous avez également besoin d’une intégration côté serveur pour l’envoi de messages sur votre serveur MCP, veuillez contacter [email protected]. Pour suivre les événements et les achats depuis votre serveur MCP, veuillez utiliser notre API REST.

À propos du SDK Braze Vega

Le SDK Braze Vega vous permet de collecter des données analytiques et d’afficher des messages in-app enrichis à l’intention de vos utilisateurs. La plupart des méthodes du SDK Braze Vega sont asynchrones et renvoient des promesses qui doivent être attendues ou résolues.

Intégration du SDK Braze Vega

Étape 1 : Installer la bibliothèque Braze

Veuillez installer le SDK Braze Vega à l’aide de votre gestionnaire de paquets préféré.

Si votre projet utilise NPM, vous pouvez ajouter le SDK Braze Vega en tant que dépendance.

1
npm install @braze/vega-sdk --save

Après l’installation, vous pouvez importer les méthodes dont vous avez besoin :

1
import { initialize, changeUser, openSession } from "@braze/vega-sdk";

Si votre projet utilise Yarn, vous pouvez ajouter le SDK Braze Vega en tant que dépendance.

1
yarn add @braze/vega-sdk

Après l’installation, vous pouvez importer les méthodes dont vous avez besoin :

1
import { initialize, changeUser, openSession } from "@braze/vega-sdk";

Étape 2 : Initialiser le SDK

Une fois le SDK Braze Vega ajouté à votre projet, veuillez initialiser la bibliothèque à l’aide de la clé API et de l’URL de l’endpoint SDK disponibles dans Paramètres > Paramètres de l’application dans votre tableau de bord de Braze.

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
38
39
import { useEffect } from "react-native";
import {
  initialize,
  changeUser,
  logCustomEvent,
  openSession,
  setCustomUserAttribute,
  setUserCountry
} from "@braze/vega-sdk";

const App = () => {
  useEffect(() => {
    const initBraze = async () => {
      // Initialize the SDK
      await initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
        sessionTimeoutInSeconds: 60,
        appVersionNumber: "1.2.3.4",
        enableLogging: true, // set to `true` for debugging
      });

      // Change user
      await changeUser("user-id-123");
      
      // Start a session
      await openSession();
      
      // Log custom events and set user attributes
      logCustomEvent("visited-page", { pageName: "home" });
      setCustomUserAttribute("my-attribute", "my-attribute-value");
      setUserCountry("USA");
    };
    
    initBraze();
  }, []);
  
  return (
    // Your app components
  );
};

Configurations optionnelles

Journalisation

Vous pouvez activer la journalisation SDK pour faciliter le débogage et la résolution des problèmes. Il existe plusieurs méthodes pour activer la journalisation.

Activer la journalisation lors de l’initialisation

Veuillez passerenableLogging: trueà l’option suivanteinitialize()pour enregistrer les messages de débogage dans la console :

1
2
3
initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
  enableLogging: true
});

Activer la journalisation après l’initialisation

Veuillez utiliser cette optiontoggleLogging() pour activer ou désactiver la journalisation du SDK après l’initialisation :

1
2
3
4
import { toggleLogging } from "@braze/vega-sdk";

// Enable logging
toggleLogging();

Journalisation personnalisée

Veuillez utiliser cettesetLogger()option pour fournir une fonction de journalisation personnalisée afin de mieux contrôler la manière dont les journaux SDK sont gérés.

1
2
3
4
5
6
import { setLogger } from "@braze/vega-sdk";

setLogger((message) => {
  console.log("Braze Custom Logger: " + message);
  // Add your custom logging logic here
});

Options de configuration

Vous pouvez transmettre des options de configuration supplémentaires àinitialize() pour personnaliser le comportement du SDK :

1
2
3
4
5
await initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
  sessionTimeoutInSeconds: 60,        // Configure session timeout (default is 30 seconds)
  appVersionNumber: "1.2.3.4",        // Set your app version
  enableLogging: true,                 // Enable SDK logging
});

Mise à niveau du SDK

Lorsque vous faites référence au SDK Braze Vega depuis NPM ou Yarn, vous pouvez passer à la dernière version en mettant à jour la dépendance de votre package :

1
2
3
npm update @braze/vega-sdk
# or, using yarn:
yarn upgrade @braze/vega-sdk

Vérification de votre intégration

Pour vérifier que l’intégration SDK fonctionne correctement :

  1. Veuillez initialiser le SDK avecenableLogging: truepour afficher les messages de débogage dans la console.
  2. Veuillez vous await changeUser()assurer de avant d’appeler d’autres méthodes SDK.
  3. Veuillez nous contacterawait openSession()pour démarrer une session.
  4. Veuillez vérifier dans votre tableau de bord de Braze, sous « Aperçu », que les données de session sont bien enregistrées.
  5. Veuillez enregistrer un événement personnalisé et vérifier qu’il apparaît bien dans votre tableau de bord.
New Stuff!