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 de carte de contenu à vos utilisateurs Web. Pour plus d’informations, veuillez consulter 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, veuillez consulter 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, veuillez consulter 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, veuillez examiner 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 comprises dans la version v3.0.0. Pour obtenir 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 Braze pour le Web directement à votre code HTML en faisant référence à notre script hébergé par le CDN (réseau de diffusion de contenu), qui charge la bibliothèque asynchrone.

Étape 2 : Initialiser le SDK

Une fois le SDK Web Braze ajouté à votre site Web, 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. Pour obtenir la liste complète des options disponiblesbraze.initialize(), ainsi que nos autres méthodes JavaScript, veuillez consulter 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 « Session manquante » ou si vous n’êtes pas en mesure de suivre la session des utilisateurs anonymes sur le Web, veuillez vous assurer que votre intégration appellebraze.openSession() lors de l’initialisation.

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

Pour plus d’informations, veuillez vous référer à l’étape 2 : Veuillez initialiser le SDK.

Conditions préalables

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

Étape 1 : Veuillez ouvrir la galerie de modèles de tags.

Dans Google Tag Manager, veuillez sélectionner votre espace de travail, puis choisissez Modèles. Dans le volet Modèle d’étiquette, veuillez sélectionner Rechercher dans la galerie.

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

Étape 2 : Veuillez ajouter le modèle de balise d’initialisation.

Dans la galerie de modèles, veuillez rechercherbraze-inc, puis sélectionner l’étiquette Braze Initialization.

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

Veuillez sélectionner Ajouter à l’espace de travail > Ajouter.

La page « Étiquette d'initialisation Braze » dans Google Tag Manager.

Étape 3 : Veuillez configurer l’étiquette.

Dans la section Modèles, veuillez sélectionner le modèle que vous venez d’ajouter.

La page « Modèles » dans Google Tag Manager affichant le modèle d'étiquette d'initialisation Braze.

Veuillez sélectionner l’icône en forme de crayon pour ouvrir le menu déroulant « Configuration des étiquettes ».

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

Veuillez saisir les informations minimales requises :

Pour accéder à des paramètres d’initialisation supplémentaires, veuillez sélectionner Options d’initialisation Braze et choisir les options qui vous sont nécessaires.

La liste des options d'initialisation Braze se trouve sous « Configuration des étiquettes ».

Étape 4 : Choisir les options d’initialisation

L’étiquette d’initialisation Braze propose les options suivantes. La plupart d’entre elles correspondent directement au SDK WebInitializationOptions, et certaines correspondent aux méthodes du SDK Web que l’étiquette appellera lors de l’initialisation. Veuillez sélectionner les options qui correspondent à vos besoins d’intégration :

Option GTM Configuration ou méthode du SDK Web Description
Autoriser les messages in-app HTML 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 qui utilisent du code HTML personnalisé. Veuillez activer cette option uniquement si vous avez confiance dans le contenu HTML et JavaScript, car elle autorise l’exécution de JavaScript fourni par l’utilisateur.
Numéro de version de l’application appVersion, appVersionNumber Version de l’application pour la segmentation (par exemple, 1.2.3.4).
Ouvrir automatiquement une nouvelle session braze.openSession() Ouvre une nouvelle session après l’initialisation du SDK en appelant cette méthode pour vous.
Afficher automatiquement les nouveaux messages in-app braze.automaticallyShowInAppMessages() Affiche automatiquement les nouveaux messages in-app lorsqu’ils arrivent du serveur en appelant cette méthode après l’initialisation.
Désactiver la maintenance automatique des jetons Push disablePushTokenMaintenance Empêche le SDK de synchroniser les jetons push avec le backend Braze lors de nouvelles sessions.
Désactiver l’enregistrement automatique des services de traitement manageServiceWorkerExternally Veuillez utiliser cette option si vous enregistrez et gérez vous-même le service de traitement.
Désactiver les cookies noCookies Utilise localStorage à la place des cookies pour les données utilisateur/session. Empêche la reconnaissance entre sous-domaines.
Désactiver Font Awesome doNotLoadFontAwesome Empêche le SDK de charger Font Awesome à partir du réseau de diffusion de contenu. Veuillez utiliser cette option si votre site dispose de sa propre police Font Awesome.
Activer l’authentification SDK enableSdkAuthentication Active l’authentification SDK.
Activer la journalisation du SDK Web enableLogging Active la journalisation de la console à des fins de débogage. Veuillez retirer avant la production du produit.
Intervalle minimal entre les messages déclenchés minimumIntervalBetweenTriggerActionsInSeconds Nombre minimum de secondes entre les actions de déclenchement (valeur par défaut : 30).
Ouvrir les cartes dans un nouvel onglet openCardsInNewTab Ouvre les liens des cartes de contenu dans un nouvel onglet lorsque l’interface utilisateur par défaut du flux est utilisée.
Localisation des travailleurs du service de traitement serviceWorkerLocation Chemin d’accès personnalisé pour le fichier du service de traitement (par défaut : /service-worker.js).
Délai d’expiration de la session (en secondes) sessionTimeoutInSeconds Délai d’expiration de la session en secondes (valeur par défaut : 1800).

Pour les options non exposées dans le modèle GTM (telles que contentSecurityNonce, localization, ou devicePropertyAllowlist), veuillez utiliser l’initialisation à l’exécution à la place.

Étape 5 : Définir pour être un déclencheur sur toutes les pages

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

Étape 6 : Veuillez 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, vous pouvez vérifier si la balise d’initialisation Braze se déclenche correctement sur les pages ou les événements que vous avez configurés.
  • Option 2 : Veuillez vérifier si des requêtes réseau ont été envoyées à Braze depuis votre page Web. De plus, la bibliothèque window.brazeglobale devrait maintenant être définie.

Filtrage du trafic des robots

Le nombre d’utilisateurs actifs par mois 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 fonctionnalité de 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 bots côté SDK

Le SDK Web comprend une fonctionnalité de détection des robots basé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 d’identité de l’agent utilisateur : Les robots sophistiqués peuvent imiter les agents utilisateurs légitimes des navigateurs.
  • Bots personnalisés : Les utilisateurs non techniciens peuvent désormais créer facilement des bots à l’aide de grands modèles linguistiques (LLM), rendant le comportement des bots imprévisible.

Mise en œuvre du filtrage des bots

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

Nécessite 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 bots

Mettez en place une détection personnalisée en fonction des modèles de trafic spécifiques de vos bots, tels que :

  • 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 bots
  • 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

  • Veuillez analyser régulièrement vos données MAU et les tendances de trafic Web afin d’identifier tout nouveau comportement de bot.
  • Veuillez effectuer des tests approfondis pour vous assurer que votre filtrage des bots n’empêche pas le suivi des utilisateurs légitimes.
  • Veuillez mettre à 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 obtenir un aperçu centralisé sur toutes les plateformes, veuillez consulter la section Journalisation détaillée.

Journalisation de base

Veuillez utiliser cette fonctionenableLogging 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();

Veuillez utiliser cettebraze.toggleLogging()méthode 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

Veuillez utiliser cette fonctionsetLogger 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’une 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.jscomme recommandé par nos instructions d’intégration par défaut), vos utilisateurs reçoivent automatiquement des mises à jour mineures (corrections de bogues et fonctionnalités rétrocompatibles, versionsa.a.adansa.a.zles exemples ci-dessus) lorsqu’ils actualisent votre site.

Cependant, lorsque nous publions des modifications importantes, nous vous demandons de mettre à jour manuellement le SDK Web Braze afin de garantir que les modifications majeures 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 Braze pour le Web :

  • 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 responsable de packages.
  • Si vous avez intégré des notifications push pour le Web, mettez à jour le fichier du service de traitement sur votre site. Par défaut, ce paramètre est situé à /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.

Il est nécessaire de mettre à jour ces deux fichiers de manière coordonnée afin d’assurer un fonctionnement optimal.

Autres méthodes d’intégration

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

See more

Étape 1 : Inclure le script de notification push pour le Web en 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

Veuillez ajouter 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 : Veuillez ajouterhelper-iframeet 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

Veuillez créer unservice-worker.jsfichier dans le répertoire racine de votre site web et y ajouter l’extrait de code suivant :

Étape 5 : Configurer l’élément HTML des notifications push pour le Web en AMP

Veuillez ajouter l’élément HTML amp-web-pushsuivant à votre corps HTML. Veuillez noter que vous devez ajouter vos paramètres apiKeyde baseUrlrequête et à 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)

Veuillez désactiver le support.

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. Il est possible de charger cette version de la bibliothèque depuis l’endroit suivant du CDN :

Chargeur de modules

Si vous utilisez RequireJS ou d’autres chargeurs de module 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();
});

Électron

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.

Cadre Jest

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

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

Cadres SSR

Si vous utilisez un framework de rendu côté serveur (SSR) tel que Next.js, vous pourriez rencontrer des erreurs car le SDK est conçu pour fonctionner dans un environnement de navigateur. Vous pouvez résoudre ces problèmes en important le SDK de façon dynamique.

Vous pouvez conserver les bénéfices du nettoyage lorsque vous y procédez en exportant les parties du SDK dont vous avez besoin dans un fichier séparé et en important ensuite de façon dynamique ce fichier dans votre composant.

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

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

Alternativement, si vous utilisez un pack Web pour regrouper votre application, vous pouvez tirer parti de ses commentaires magiques pour importer de façon dynamique uniquement les parties du SDK dont vous avez besoin.

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();
    });
}, []);

Tealium iQ

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

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

Vite

Si vous utilisez Vite et voyez un avertissement autour des dépendances circulaires ou Uncaught TypeError: Class extends value undefined is not a constructor or null, vous pourriez devoir exclure le SDK de Braze de sa découverte de dépendance :

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. Veuillez contacter un conseiller Braze si vous avez besoin d’aide pour évaluer ces solutions.

Intégration du SDK Android

Étape 1 : Veuillez mettre à jour votre configuration de compilation Gradle.

Dans la configuration du référentiel de votre projet (par exemple,settings.gradle settings.gradle.kts, ou au niveau supérieurbuild.gradle), veuillez ajoutermavenCentral()à votre liste de référentiels. Cette syntaxe est identique pour Groovy et Kotlin DSL.

1
2
3
repositories {
  mavenCentral()
}

Ensuite, veuillez ajouter Braze à vos dépendances. Dans les exemples suivants, veuillez remplacerSDK_VERSIONpar la version actuelle de votre SDK Android Braze. Pour obtenir la liste complète des versions, veuillez consulter les journaux des modifications.

Si vous ne prévoyez pas d’utiliser les composants Braze UI, veuillez ajouter 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 votregradle/libs.versions.tomlfichier :

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 fichierbuild.gradle build.gradle.ktsou , veuillez ajouter 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 envisagez d’utiliser les composants Braze UI, veuillez ajouter 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 votregradle/libs.versions.tomlfichier :

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 fichierbuild.gradle build.gradle.ktsou , veuillez ajouter 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 : Veuillez configurer votre braze.xml

Veuillez créer unbraze.xmlfichier dans le dossierres/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 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 : Veuillez ajouter des autorisations à AndroidManifest.xml

Ensuite, veuillez ajouter 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 : Mettez à jour votre braze.xml

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

Dans le fichierbraze.xml de votre projet, veuillez définircom_braze_enable_delayed_initializationsur true.

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

Pour activer l’initialisation différée lors de l’exécution, veuillez utiliser 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, veuillez sélectionner l’une des options suivantes :

Dans votrebraze.xmlfichier, veuillezcom_braze_delayed_initialization_analytics_behaviordéfinir QUEUE:

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

Veuillez ajouterQUEUEà votreBraze.enableDelayedInitialization()méthode :

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

Pour désactiver les analyses push, veuillez sélectionner l’une des options suivantes :

Dans votrebraze.xmlfichier, veuillezcom_braze_delayed_initialization_analytics_behaviordéfinir DROP:

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

Veuillez ajouterDROPà laBraze.enableDelayedInitialization()méthode :

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

Étape 4.3 : Veuillez initialiser manuellement le SDK.

Une fois le délai que vous avez choisi écoulé, veuillez utiliser laBraze.disableDelayedInitialization()méthode 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 vers openSession(), closeSession(),ensureSubscribedToInAppMessageEvents(), etInAppMessageManager registration peuvent être traités automatiquement.

Pour enregistrer les rappels du cycle de vie de l’activité, veuillez ajouter le code suivant à laonCreate()méthode de votreApplicationclasse.

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, veuillez consulter BrazeActivityLifecycleCallbackListener.

Tester le suivi de session

Si vous rencontrez des problèmes lors des tests, veuillez activer la journalisation détaillée, puis utiliser logcat pour détecter lescloseSessionopenSessionappels manquants dans vos activités.

  1. Dans Braze, veuillez vous rendre dans la section « Aperçu », sélectionner votre application, puis choisir « Aujourd’hui » dans le menu déroulant « Afficher les données pour ». La page « Aperçu » dans Braze, avec le champ « Afficher les données pour » réglé sur « Aujourd'hui ».
  2. Veuillez ouvrir votre application, puis actualiser le tableau de bord de Braze. Veuillez vérifier que vos indicateurs ont augmenté de 1.
  3. Veuillez naviguer dans votre application et vérifier qu’une seule session a été enregistrée dans Braze.
  4. Veuillez mettre l’application en arrière-plan pendant au moins 10 secondes, puis la ramener au premier plan. Veuillez vérifier qu’une nouvelle session a bien été enregistrée.

Configurations optionnelles

Configuration du temps d’exécution

Pour définir vos options Braze dans le code plutôt que dans votrebraze.xmlfichier, veuillez utiliser la configuration d’exécution. Si une valeur existe aux deux endroits, la valeur d’exécution sera utilisée à la place. Une fois tous les paramètres requis fournis lors de l’exécution, vous pouvez supprimer votrebraze.xmlfichier.

Dans l’exemple suivant, un générateur est créé puis transmis à Braze.configure(). Veuillez noter que seules certaines des options d’exécution disponibles sont affichées. Pour obtenir la liste complète, veuillez consulter notre KDoc.

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)

ID publicitaire Google

L’identifiant publicitaire Google (GAID) est un ID 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 axées sur les centres d’intérêt dans les applications Google Play et de fournir aux développeurs un système simple et standard pour continuer à monétiser leurs applications.

L’ID 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 localisation

Pour activer la collecte d’emplacements Braze, veuillez définircom_braze_enable_location_collection surtrue dans votrebraze.xmlfichier :

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

Journalisation

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

Activation des journaux

Afin de faciliter la résolution des problèmes dans votre application ou de 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 verbeux à l’assistance Braze, veillez à ce qu’ils commencent dès le lancement de votre application et se terminent bien après l’apparition de votre problème. Pour obtenir un aperçu centralisé, veuillez consulter la section Journalisation détaillée. Pour apprendre à interpréter les résultats du journal, veuillez consulter la section Lecture des journaux détaillés.

Gardez à l’esprit que les journaux verbeux ne sont destinés qu’à votre environnement de développement, et que vous devez donc les désactiver avant de rendre votre application publique.

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 de journalisation minimum. Tous les journaux d’un niveau >= au MIN_LOG_LEVEL que vous avez défini seront transmis à la méthode Log par défaut d’Android. Tous les journaux < au MIN_LOG_LEVEL que vous avez défini seront rejetés.

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 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 de journalisation minimum. Tous les journaux d’un niveau >= au MIN_LOG_LEVEL que vous avez défini seront transmis à la méthode Log par défaut d’Android. Tous les journaux < au MIN_LOG_LEVEL que vous avez défini seront rejetés.

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érification des journaux de bord (verbose logs)

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, c’est que l’option de journalisation en mode verbeux a été activée avec succès. Par exemple :

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

Suppression des journaux

Pour désactiver tous les journaux du SDK Android Braze, veuillez définir le niveau de journalisation surBrazeLogger.SUPPRESSdans la méthodeonCreate() de votre application avant toute autre méthode.

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

Plusieurs clés API

Le cas d’usage le plus fréquent pour les clés API multiples est la séparation des clés API entre les variantes de version de débogage et de publication.

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

Pour chaque variante de compilation pertinente, veuillez créer un nouveau fichierbraze.xml dans lesrc/<build variant name>/res/values/répertoire. Lorsque la variante de version 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>

Message in-app exclusif dans l’application TalkBack

Conformément aux directives d’accessibilité Android, le SDK Android Braze propose Android Talkback par défaut. Afin de 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 de Braze.

Les applications client qui obscurcissent le code Braze doivent stocker des fichiers de mappage de libération pour Braze afin d’interpréter les traces de pile. Si vous souhaitez continuer à conserver tous les codes 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 SDK, veuillez consulter la documentation de référence Braze Swift.

Conditions préalables

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

Étape 1 : Veuillez 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 SDK

Ouvrez votre projet et naviguez vers les paramètres de votre projet. Sélectionnez l’onglet Paquets Swift et cliquez sur le bouton d’ajout sous la liste des paquets.

Saisissez l’URL de notre référentiel de SDK Swift iOS https://github.com/braze-inc/braze-swift-sdk dans le champ de texte. Dans la section Dependency Rule (Règle de dépendance), sélectionnez la version du SDK. Enfin, cliquez sur Ajouter un paquet.

Étape 1.2 : Veuillez sélectionner vos forfaits

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.

Offre Détails
BrazeKit Bibliothèque SDK principale avec prise en charge des analyses et des notifications push.
BrazeLocation Bibliothèque de localisations avec prise en charge des analyses 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 cartes de contenu et les bannières. Veuillez importer cette bibliothèque si vous avez l’intention d’utiliser les composants d’interface utilisateur par défaut.
À propos des bibliothèques d’extension
Offre Détails
BrazeNotificationService Bibliothèque d’extension du service de notification prenant en charge les notifications push riches.
BrazePushStory Bibliothèque d’extension de contenu de notification fournissant un support pour les contenus push.

Sélectionnez le paquet qui correspond le mieux à vos besoins et cliquez sur Ajouter un paquet. Veillez à sélectionner au moins BrazeKit.

Étape 1.1 : Installer CocoaPods

Pour obtenir des instructions détaillées, veuillez consulter 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, veuillez consulter le guide de résolution des problèmes de CocoaPods.

Étape 1.2 : Construction du Podfile

Ensuite, veuillez créer 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 des analyses et des notifications push.

Nous vous suggérons la version Braze afin que les mises à jour du pod récupèrent automatiquement tout ce qui est plus petit qu’une mise à jour mineure de la version. Cela ressemble à pod 'BrazeKit' ~> Major.Minor.Build. Si vous souhaitez intégrer automatiquement la dernière version de Braze SDK, 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 localisations avec prise en charge des analyses 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 cartes de contenu et les bannières. Veuillez importer 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. Au lieu de cela, 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 riches.
pod 'BrazePushStory' Bibliothèque d’extension de contenu de notification fournissant un support pour les contenus push.

Étape 1.3 : Installer le SDK

Pour installer le SDK Cocoapod Braze, accédez au répertoire de votre projet d’application Xcode au sein de 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 de lancer la commande suivante dans votre répertoire de projet :

1
pod update

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

Accédez à la page 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 : Choisissez vos frameworks

Le SDK Swift Braze contient une série 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 :

Offre Requis ? Description
BrazeKit Oui Bibliothèque SDK principale avec prise en charge des analyses et des notifications push.
BrazeLocation Non Bibliothèque de localisations avec prise en charge des analyses 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 cartes de contenu et les bannières. Veuillez importer cette bibliothèque si vous avez l’intention d’utiliser les composants d’interface utilisateur par défaut.
BrazeNotificationService Non Bibliothèque d’extension de service de notification qui fournit une prise en charge des 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 qui fournit une prise en charge des 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.

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 être similaire à ce qui suit :
    1
    2
    
     temp_dir
     └── BrazeKit.xcframework
    
  3. Déplacez chacun de vos XCFrameworks choisis dans votre répertoire temporaire. Votre répertoire devrait être similaire à ce qui suit :
    1
    2
    3
    4
    5
    
     temp_dir
     ├── BrazeKit.xcframework
     ├── BrazeKitCompat.xcframework
     ├── BrazeLocation.xcframework
     └── SDWebImage.xcframework
    

Étape 1.4 : Intégrez 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 Général. Sous Frameworks, bibliothèques et contenu intégré, faites glisser et 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 créer votre projet. Pour corriger ces erreurs, ouvrez votre projet et ajoutez un fichier Swift vide à votre arborescence de fichiers. Ceci obligera votre chaîne d’outils de création à intégrer Swift Runtime et à lier les frameworks appropriés pendant le temps de création.

1
FILE_NAME.swift

Remplacez FILE_NAME par n’importe quelle chaîne sans espace. Votre fichier devrait ressembler à ce qui suit :

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 : Veuillez vous préparer à une initialisation retardée.

Veuillez appelerBraze.prepareForDelayedInitialization()dès que possible au cours du cycle de vie de votre application, idéalement avant ou pendantapplication(_: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 unpushAutomationparamètre.

Étape 2.2 : Configurer le comportement des 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 (comportement par défaut), veuillez transmettre.queueauanalyticsBehaviorparamètre. Les événements analytiques en file d’attente avant l’initialisation seront traités et transférés vers le serveur lors de l’initialisation.

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

Pour ignorer les analyses push reçues avant l’initialisation du SDK, veuillez transmettre.dropauanalyticsBehaviorparamètre. Avec cette option, tout événement d’analyse 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 unpushAutomationparamètre. 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), veuillez initialiser 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 la délégation 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
}

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 à partir de la page Paramètres de l’application. Consultez nos types d’identifiants d’API pour plus d’informations sur l’endroit où trouver la clé API de votre identifiant d’appli.

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

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 à partir de votre page Gérer les paramètres. Consultez notre documentation sur l’API pour savoir où trouver la clé API de votre identifiant d’application.

Configurations optionnelles

Journalisation

Pour obtenir un aperçu centralisé sur toutes les plateformes, veuillez consulter la section Journalisation détaillée. Pour apprendre à interpréter les résultats du journal, veuillez consulter 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 Objectif-C Description
.debug BRZLoggerLevelDebug Enregistrer les informations de débogage..info.error
.info BRZLoggerLevelInfo Enregistrer des informations générales sur le SDK (changements au niveau des utilisateurs, etc.) + .error.
.error BRZLoggerLevelError Erreurs de journalisation.
.disabled BRZLoggerLevelDisabled Aucun enregistrement n’a lieu.

Vous pouvez définir le niveau de journalisation lors de l’exécution dans votreBraze.Configurationobjet. Pour obtenir des informations détaillées sur l’utilisation, veuillez consulter 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, veuillez vérifier 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 référentiel GitHub et ajouter le SDK manuellement.

Si vous ne prévoyez pas d’utiliser la collecte des localisations 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 des localisations 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 :

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, 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 une 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 une 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 :

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 plugin 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 du 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 commencées après le prochain Activity.onStart() seront suivies.

À propos du SDK Flutter Braze

Une fois que vous aurez effectué l’intégration du SDK Braze Flutter sur Android et iOS, vous pourrez utiliser l’API Braze dans vos applications Flutter écrites en Dart. Ce plug-in offre une fonctionnalité d’analytique de base et vous permet d’intégrer des messages in-app et des cartes de contenu pour iOS et Android à l’aide d’une base de code unique.

Intégration du SDK Flutter

Conditions préalables

Avant d’effectuer l’intégration du SDK Braze Flutter, veuillez effectuer les opérations suivantes :

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

Ajoutez le kit SDK Braze pour Flutter à partir de 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

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é d’identification 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">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" />

Ajoutez l’importation 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 le 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 :

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 BrazeKit en haut du fichier AppDelegate.m :

1
@import BrazeKit;

Dans le même fichier, créez l’objet de configuration Braze dans la méthode application:didFinishLaunchingWithOptions: et remplacez la clé API et le 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 :

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 plugin

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 l’intégration SDK est bien réalisée 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 dans le tableau de bord (dans la section Aperçu ).

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

1
2
BrazePlugin braze = BrazePlugin();
braze.changeUser("{some-user-id}");

Veuillez rechercher {some-user-id}l’utilisateur 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 é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 cartes de contenu 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, qui est compatible à la fois avec la nouvelle architecture et l’architecture pont héritée, ce qui signifie qu’aucune configuration supplémentaire n’est nécessaire.

Intégration du SDK React native

Conditions préalables

Pour l’intégration du 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 référentiel GitHub du SDK React Native.

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

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

Étape 2 : Veuillez sélectionner une option de configuration

Vous pouvez gérer le SDK Braze à l’aide du plugin Braze Expo ou via l’une des couches natives. Grâce au plugin Expo, vous pouvez configurer certaines fonctionnalités du SDK sans avoir à écrire de code dans aucune des couches natives. Veuillez sélectionner l’option qui correspond le mieux aux besoins de votre application.

Étape 2.1 : Installer le plugin Braze Expo

Assurez-vous que votre version du SDK React Native de Braze correspond au minimum à 1.37.0. Pour obtenir la liste complète des versions prises en charge, veuillez consulter le référentiel Braze React native.

Pour installer le plugin Braze Expo, veuillez exécuter la commande suivante :

1
npx expo install @braze/expo-plugin

Étape 2.2 : Ajoutez le plug-in à votre app.json

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

Exemple de configuration :

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 utilisezandroidNotificationLargeIcon et androidNotificationSmallIcon, veuillez suivre 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. Veuillez créer vos fichiers d’icônes conformément aux exigences Android détaillées dans la section Exigences relatives aux icônes.
  2. Veuillez les placer dans les répertoires natifs Android de votre projet à l’emplacementandroid/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 des ressources dans votre répertoire React native, vous pouvez utiliser la configuration des icônesapp.json d’Expo ou créer un plugin de configuration Expo pour copier les icônes dans les dossiers Android drawable pendant la précompilation.

Le plugin Braze Expo fait référence à ces icônes à l’aide du système de ressources graphiques d’Android.

Exigences relatives aux icônes
  • Petite icône : Il est nécessaire que ce soit une silhouette blanche sur fond transparent (il s’agit d’une exigence de la plateforme Android).
  • Grande icône : Peut être une image en couleur
  • Format : Le format PNG est recommandé.
  • Dénomination : Veuillez utiliser uniquement des lettres minuscules, des chiffres et des traits de soulignement (par exemple, my_large_icon.png)
Configuration dans app.json

Veuillez utiliser le@drawable/préfixe suivi du nom du fichier sans l’extension. Par exemple, si votre fichier icône est nommé large_icon.png, veuillez le référencer comme suit @drawable/large_icon:

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 icônes à partir des répertoiresdrawable 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 drawableAndroid (placées manuellement ou copiées via un plugin de configuration) avant de créer le programme. Le plugin configure ensuite le SDK Braze pour qu’il utilise ces ressources dessinables par leur nom (sans chemin d’accès ni extension), c’est pourquoi le@drawable/préfixe est requis dans votre configuration.

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

Étape 2.3 : Créer 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.

1
npx expo prebuild

Exécutez votre application tel qu’indiqué dans la documentation Expo. Veuillez noter que si vous modifiez les options de configuration, il sera nécessaire de précompiler et de réexécuter l’application.

Étape 2.1 : Ajouter notre référentiel

Dans votre projet de niveau supérieur build.gradle, ajoutez ce qui suit 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. Collez le code suivant et remplacez la clé API et le point de terminaison 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>

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" />

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

Les appels vers openSession() et closeSession() sont gérées automatiquement. Ajoutez le code suivant à 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 activité principale a android:launchMode défini sur singleTask, ajoutez le code suivant à 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)
}

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

Pour importer certaines bibliothèques Braze, telles que BrazeUI, dans un fichier Objective-C++, il est nécessaire d’utiliser la#importsyntaxe suivante. À partir de la version 7.4.0 du SDK Braze Swift, les binaires ont un canal de distribution facultatif sous forme de XCFrameworks dynamiques qui sont 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 pertinente que vous souhaitez importer :

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.2 : Installer les pods

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

Dans 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.3 : Configurer le SDK Braze

Ajoutez 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 le point de terminaison 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 :

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

Ajoutez 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 le point de terminaison 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 :

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 : Veuillez importer la bibliothèque.

Ensuite, veuillez importintégrer la bibliothèque dans votre code React native. Pour plus de détails, veuillez consulter notre exemple de projet.

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

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

Pour tester l’intégration SDK, veuillez démarrer une nouvelle session sur l’une ou l’autre des plateformes pour un utilisateur en appelant le code suivant dans votre application.

1
Braze.changeUser("userId");

Par exemple, vous pouvez attribuer 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, veuillez accéder à la section Recherche d’utilisateurs et recherchez l’utilisateur dont l’ID correspond à some-user-id. Ici, vous pouvez 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 :

  • Notification push : Configurez et envoyez des notifications push à vos utilisateurs.
  • Messages in-app: Affichez des messages contextuels au sein de votre application.
  • Bannières : Afficher 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 d’Unity Braze

Pour obtenir la liste complète des types, fonctions, variables et autres, consultez le fichier de déclaration d’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 paquets de Braze Unity peuvent être téléchargés sur la page des versions de Braze Unity:

  • Appboy.unitypackage
    • Ce package regroupe les SDK Android et iOS Braze et la dépendance SDWebImage du SDK iOS, nécessaire pour le fonctionnement approprié des messages in-app de Braze et des fonctionnalités de cartes de contenu sur iOS. L’infrastructure SDWebImage est utilisée pour télécharger et afficher des images, y compris des GIF. Si vous avez l’intention d’utiliser la fonctionnalité Braze dans son intégralité, 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 présent. Ce package est utile si vous ne souhaitez pas que l’infrastructure SDWebImage soit présente 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 paquet regroupe les SDK Android et iOS de Braze sans aucune dépendance supplémentaire. Cette méthode d’intégration ne permet pas d’utiliser pleinement l’envoi de messages in-app et les fonctionnalités de cartes de contenu de Braze sur iOS. Si vous avez l’intention d’utiliser toutes les 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 utilisateur Unity sous Configuration Braze.
  2. Appboy.unitypackage avec SDWebImage
    • Cette option d’intégration regroupe les SDK Android et iOS de Braze et la dépendance SDwebimage pour le SDK iOS, qui est nécessaire au bon fonctionnement de la messagerie in-app de Braze, et des fonctionnalités des cartes de contenu sur iOS. Le cadre SDWebImage est utilisé pour télécharger et afficher des images, y compris des GIF. Si vous avez l’intention d’utiliser la fonctionnalité Braze dans son intégralité, téléchargez et importez ce package.
    • Pour importer automatiquement SDWebImage, veillez à cocher la case à côté de Import SDWebImage dependency dans l’interface utilisateur Unity sous Configuration Braze.

Étape 2 : Importer le package

Dans Unity Editor, importez le package dans votre projet Unity en sélectionnant Actifs > Importer un package > Personnaliser le package. Cliquez ensuite sur Importer.

Vous pouvez également suivre les instructions pour Importer un package d’actifs Unity pour accéder à un guide plus détaillé sur l’importation des packages Unity personnalisés.

Dans Unity Editor, importez le package dans votre projet Unity en sélectionnant Actifs > Importer un package > Personnaliser le package. Cliquez ensuite sur Importer.

Vous pouvez également suivre les instructions pour Importer un package d’actifs Unity pour accéder à un guide plus détaillé sur l’importation des packages Unity personnalisés.

Étape 3 : Configurer le SDK

Étape 3.1 : Configurer AndroidManifest.xml

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

  1. Allez dans le répertoire Assets/Plugins/Android/ et ouvrez votre fichier AndroidManifest.xml. Il s’agit de l’emplacement/localisation par défaut dans l’éditeur Unity.
  2. Dans votre site AndroidManifest.xml, ajoutez les permissions et activités requises dans le modèle suivant.
  3. Lorsque vous aurez terminé, votre site AndroidManifest.xml ne devrait contenir qu’une seule activité 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 : Mettez à jour AndroidManifest.xml avec le nom de votre paquet

Pour trouver le nom de votre paquet, cliquez sur Fichier > Paramètres de création > Paramètres du lecteur > Onglet Android.

Dans votre AndroidManifest.xml, toutes les instances de REPLACE_WITH_YOUR_PACKAGE_NAME doivent être remplacées par Package Name par rapport à 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. Ceci créera un modèle gradle que votre projet utilisera. Un fichier gradle gère la mise en place des dépendances et d’autres paramètres du projet au moment de la création. Pour plus d’informations, consultez l’exemple d’application Braze Unity à la rubrique mainTemplate.gradle.

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 du gestionnaire de dépendances externes.

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

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

  1. Dans Unity Editor, ouvrez les paramètres de configuration de Braze en sélectionnant Braze > Configuration Braze.
  2. Cochez la case Automatiser l’intégration d’Unity Android.
  3. Dans le champ Clé API Braze, saisissez la clé API de votre application qui se trouve 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 l’automatisation de l’intégration Unity iOS. Cette solution modifie le projet Xcode conçu à l’aide du PostProcessBuildAttribute et des sous-classes UnityAppController de Unity avec la macro IMPL_APP_CONTROLLER_SUBCLASS.

  1. Dans Unity Editor, ouvrez les paramètres de configuration de Braze en sélectionnant Braze > Configuration Braze.
  2. Cochez la case Automatiser l’intégration d’Unity iOS.
  3. Dans le champ Clé API Braze, saisissez la clé API de votre application qui se trouve dans Gérer les paramètres.

Si votre application utilise déjà une autre sous-classe 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 Braze Unity SDK, 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 un paquet à partir d’un référentiel

Tout d’abord, lancez Unity et laissez-le tourner en arrière-plan. Ensuite, à la racine du référentiel, exécutez la commande suivante pour exporter le paquet 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 paquet dans Unity

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

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

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

  1. Supprimez tous les codes liés à Braze de votre sous-classe UnityAppController de 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 paquet Braze Unity dans votre projet. Pour une description complète, voir Étape 2 : Importez le paquet.
  4. Définissez à nouveau votre clé API. Pour une description complète, voir Étape 3.1 : Définissez votre clé API.

Configurations optionnelles

Consignation prolixe

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

  1. Ouvrez les paramètres de configuration de Braze en sélectionnant Braze > Configuration de Braze.
  2. Cliquez sur le menu déroulant Afficher les paramètres Android de Braze.
  3. Dans le champ Niveau de journalisation du SDK, saisissez la valeur 0.

Compatibilité Prime 31

Pour utiliser le plug-in Unity de Braze avec les plug-ins Prime31, modifiez le AndroidManifest.xml de votre projet pour utiliser les classes d’activité compatibles Prime31. Modifier toutes les références de com.braze.unity.BrazeUnityPlayerActivity vers com.braze.unity.prime31compatible.BrazeUnityPlayerActivity

Amazon Device Messaging (ADM)

Braze prend en charge l’intégration d’ADM push dans les applications Unity. Si vous souhaitez intégrer ADM push, 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 d’ADM push.

Extension du lecteur Braze Unity (Android uniquement)

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

Si vous créez votre propre UnityPlayerActivity dans un projet de bibliothèque ou de plugin, vous devrez étendre notre BrazeUnityPlayerActivity pour intégrer votre fonctionnalité personnalisée avec Braze. Avant de commencer à travailler sur l’extension 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 bibliothèque ou à votre projet 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 notre fonctionnalité spécifique à Unity, à votre projet de bibliothèque Android que vous constituez pour Unity. Le appboy-unity.aar est disponible dans notre dépôt public. Une fois que notre bibliothèque Unity a été intégrée avec succès, modifiez votre UnityPlayerActivity pour étendre BrazeUnityPlayerActivity.
  3. Exportez votre bibliothèque ou votre projet de plug-in et déposez-le dans /<your-project>/Assets/Plugins/Android de manière habituelle. N’incluez pas de code source Braze dans votre bibliothèque ou votre plug-in, car ils seront déjà présents dans /<your-project>/Assets/Plugins/Android.
  4. Modifier votre /<your-project>/Assets/Plugins/Android/AndroidManifest.xml pour spécifier votre sous-classe BrazeUnityPlayerActivity comme activité principale.

Vous devriez maintenant pouvoir mettre en package 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 : “Le fichier n’a pas pu être lu

Les erreurs ressemblant à ce qui suit peuvent être ignorées en toute sécurité. Le logiciel Apple utilise une extension PNG exclusive appelée CgBI, qu’Unity ne reconnaît pas. Ces erreurs n’affecteront ni votre iOS ni l’affichage approprié des images associées dans le paquet 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!