Integrieren Sie das Braze SDK
Erfahren Sie, wie Sie das Braze SDK integrieren können. Jedes SDK wird in seinem eigenen öffentlichen GitHub-Repository gehostet, das vollständig kompilierbare Beispiel-Apps enthält, mit denen Sie die Features von Braze testen oder neben Ihren eigenen Anwendungen implementieren können. Weitere Informationen finden Sie unter Referenzen, Repositories und Beispiel-Apps. Weitere allgemeine Informationen über das SDK finden Sie unter Erste Schritte: Übersicht über die Integration.
Gespiegelte SDK-README-Inhalte in der Dokumentation finden Sie unter Repository-Leitfäden.

Nach der Integration des SDK können Sie die SDK-Authentifizierung aktivieren, um eine zusätzliche Sicherheitsebene hinzuzufügen, indem Sie unbefugte SDK-Anfragen verhindern. Die SDK-Authentifizierung ist für Web, Android, Swift, React Native, Flutter, Unity, Cordova, .NET MAUI (Xamarin) und Expo verfügbar.
Über das Web Braze SDK
Mit dem Web Braze SDK können Sie Analytics erfassen und Ihren Web-Nutzer:innen umfangreiche In-App-Nachrichten, Push-Benachrichtigungen und Content-Card-Nachrichten anzeigen. Weitere Informationen finden Sie in der Braze JavaScript-Referenzdokumentation.

Diese Anleitung verwendet Codebeispiele aus dem Braze Web SDK 4.0.0+. Um ein Upgrade auf die neueste Web SDK-Version durchzuführen, siehe SDK Upgrade Guide.
Web SDK integrieren
Sie können das Web Braze SDK mithilfe der folgenden Methoden integrieren. Weitere Optionen finden Sie unter anderen Integrationsmethoden.
- Code-basierte Integration: Führen Sie die Integration des Web Braze SDK direkt in Ihre Codebasis durch, indem Sie Ihren bevorzugten Paketmanager oder das Braze CDN verwenden. Dadurch erhalten Sie die vollständige Kontrolle darüber, wie das SDK geladen und konfiguriert wird.
- Google Tag Manager: Eine No-Code-Lösung, mit der Sie die Integration des Web Braze SDK durchführen können, ohne den Code Ihrer Website zu ändern. Weitere Informationen finden Sie unter Google Tag Manager mit dem Braze SDK.

Wir empfehlen die Verwendung der NPM-Integrationsmethode. Zu den Vorteilen gehören die lokale Speicherung von SDK-Bibliotheken auf Ihrer Website, die Immunität gegenüber Ad-Blocker-Erweiterungen und die Verkürzung der Ladezeiten im Rahmen der Bundler-Unterstützung.
1. Schritt: Installieren Sie die Braze-Bibliothek
Sie können die Braze-Bibliothek mit einer der folgenden Methoden installieren. Sollte Ihre Website jedoch eine Content-Security-Policy verwenden, überprüfen Sie bitte die Content Security Policy, bevor Sie fortfahren.

Während die meisten Werbeblocker das Braze Web SDK nicht blockieren, ist bekannt, dass einige restriktivere Werbeblocker Probleme verursachen können.
Wenn Ihre Website die Paketmanager NPM oder Yarn verwendet, können Sie das NPM-Paket von Braze als Abhängigkeit hinzufügen.
Ab v3.0.0 sind nun auch Typescript-Definitionen enthalten. Hinweise zum Upgrade von 2.x auf 3.x finden Sie in unserem Changelog.
1
2
3
npm install --save @braze/web-sdk
# or, using yarn:
# yarn add @braze/web-sdk
Nach der Installation können Sie die Bibliothek auf die übliche Weise mittels import oder require verwenden:
1
2
3
import * as braze from "@braze/web-sdk";
// or, using `require`
const braze = require("@braze/web-sdk");
Fügen Sie das Braze Web SDK direkt in den HTML-Code ein, indem Sie auf das auf unserem CDN gehostete Skript verweisen, das die Bibliothek asynchron lädt.

Die Standard-Einstellung Cross-Site-Tracking verhindern in Safari kann dazu führen, dass In-App-Nachrichtentypen wie Banner und Content Cards nicht angezeigt werden, wenn Sie die CDN-Integrationsmethode verwenden. Um dieses Problem zu vermeiden, empfehlen wir die Verwendung der NPM-Integrationsmethode, damit Safari diese Nachrichten nicht als Cross-Site-Traffic einstuft und Ihre Nutzer:innen sie in allen unterstützten Webbrowsern sehen können.
2. Schritt: Initialisieren Sie das SDK
Nachdem Sie das Braze Web SDK zu Ihrer Website hinzugefügt haben, initialisieren Sie die Bibliothek mit dem API-Schlüssel und der SDK-Endpunkt-URL, die Sie in Ihrem Braze-Dashboard unter Einstellungen > App-Einstellungen finden. Eine vollständige Liste der Optionen für braze.initialize() sowie unsere anderen JavaScript-Methoden finden Sie in der Braze JavaScript-Dokumentation.

Angepasste Domains für Web-SDK-Anfragen werden nicht unterstützt: Die Web-SDK-baseUrl muss ein Braze-SDK-Endpunkt sein (zum Beispiel sdk.iad-05.braze.com). Braze unterstützt nicht die Weiterleitung von Web-SDK-Datenverkehr über CNAME-Einträge durch eine kundeneigene Domain. Sollten Sie Web-SDK-Anfragen von Ihrer eigenen Domain aus senden müssen, wenden Sie sich bitte an den Braze-Support.
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();

Anzeige von In-App-Nachrichten: Um In-App-Nachrichten automatisch anzuzeigen, wenn sie getriggert werden, müssen Sie braze.automaticallyShowInAppMessages() aufrufen. Ohne diesen Aufruf werden In-App-Nachrichten nicht automatisch angezeigt. Wenn Sie die Anzeige von Nachrichten manuell verwalten möchten, entfernen Sie diesen Aufruf und verwenden Sie stattdessen braze.subscribeToInAppMessage(). Weitere Informationen finden Sie unter Zustellung von In-App-Nachrichten.
Fehlerbehebung bei fehlenden Sitzungen für anonyme Nutzer:innen
Wenn Sie das Verhalten „Sitzung fehlt“ beobachten oder das Tracking der Sitzung für Nutzer:innen, die im Web anonym bleiben, nicht durchführen können, stellen Sie sicher, dass Ihre Integration während der Initialisierung braze.openSession() aufruft.
- Szenario: Anonyme Nutzer:innen können eine Braze-ID zurückgeben, jedoch sind die Sitzungsdaten leer oder fehlen vollständig.
- Ursache: Die Implementierung ruft
braze.openSession()nicht auf. - Lösung: Rufen Sie
braze.openSession()nach der Initialisierung immer auf (und nachbraze.changeUser(), falls Sie eine externe ID festgelegt haben).
Weitere Informationen finden Sie in Schritt 2: Initialisieren Sie das SDK.

Anonyme Nutzer:innen auf Mobil- oder Webgeräten können zu Ihrer MAU gezählt werden. Vielleicht möchten Sie das SDK deshalb lieber bedingt laden oder initialisieren, um diese Nutzer:innen von der MAU-Zählung auszuschließen.
Voraussetzungen
Bevor Sie diese Integrationsmethode verwenden können, müssen Sie ein Konto und einen Container für Google Tag Manager erstellen.
1. Schritt: Tag-Template-Galerie öffnen
Wählen Sie im Google Tag Manager Ihren Workspace aus und wählen Sie dann Templates. Wählen Sie im Bereich Tag Template die Option Search Gallery.

2. Schritt: Initialisierungs-Tag-Template hinzufügen
Suchen Sie in der Template-Galerie nach braze-inc und wählen Sie dann Braze Initialization Tag aus.

Wählen Sie Add to workspace > Add.

3. Schritt: Tag konfigurieren
Wählen Sie im Abschnitt Templates Ihr neu hinzugefügtes Template aus.

Wählen Sie das Bleistift-Symbol, um das Dropdown-Menü Tag Configuration zu öffnen.

Geben Sie die erforderlichen Mindestinformationen ein:
| Feld | Beschreibung |
|---|---|
| API Key | Ihr Braze-API-Schlüssel, den Sie im Braze-Dashboard unter Settings > App-Einstellungen finden. |
| API Endpoint | Ihre REST-Endpunkt-URL. Ihr Endpunkt hängt von der Braze-URL für Ihre Instanz ab. |
| SDK Version | Die aktuellste MAJOR.MINOR-Version des Web Braze SDK, die im Changelog aufgeführt ist. Wenn die neueste Version beispielsweise 4.1.2 ist, geben Sie 4.1 ein. Weitere Informationen finden Sie unter Über die SDK-Versionsverwaltung. |
Für zusätzliche Initialisierungseinstellungen wählen Sie Braze Initialization Options und wählen die gewünschten Optionen aus.

4. Schritt: Initialisierungsoptionen auswählen
Das Braze Initialization Tag bietet die folgenden Optionen. Die meisten davon lassen sich direkt den Web SDK InitializationOptions zuordnen, und einige entsprechen Web-SDK-Methoden, die das Tag während der Initialisierung aufruft. Wählen Sie die Optionen aus, die Ihren Integrationsanforderungen entsprechen:
| GTM-Option | Web-SDK-Konfiguration oder -Methode | Beschreibung |
|---|---|---|
| Allow HTML In-App Messages | allowUserSuppliedJavascript |
Aktiviert HTML-In-App-Nachrichten, Banner und von Nutzer:innen bereitgestellte JavaScript-Klickaktionen. Erforderlich für HTML-In-App-Nachrichten und Banner, die angepasstes HTML verwenden. Aktivieren Sie diese Option nur, wenn Sie dem HTML- und JavaScript-Inhalt vertrauen, da sie die Ausführung von benutzerdefiniertem JavaScript ermöglicht. |
| App Version Number | appVersion, appVersionNumber |
App-Version für die Segmentierung (zum Beispiel 1.2.3.4). |
| Automatically Open New Session | braze.openSession() |
Öffnet eine neue Sitzung, nachdem das SDK initialisiert wurde, indem diese Methode automatisch aufgerufen wird. |
| Automatically show new in app messages | braze.automaticallyShowInAppMessages() |
Zeigt neue In-App-Nachrichten automatisch an, wenn sie vom Server eintreffen, indem diese Methode nach der Initialisierung aufgerufen wird. |
| Disable Automatic Push Token Maintenance | disablePushTokenMaintenance |
Verhindert, dass das SDK Push-Token bei neuen Sitzungen mit dem Braze-Backend synchronisiert. |
| Disable Automatic Service Worker Registration | manageServiceWorkerExternally |
Verwenden Sie diese Option, wenn Sie den Service Worker selbst registrieren und verwalten. |
| Disable Cookies | noCookies |
Verwendet localStorage anstelle von Cookies für Nutzer:innen- und Sitzungsdaten. Verhindert die subdomainübergreifende Erkennung. |
| Disable Font Awesome | doNotLoadFontAwesome |
Verhindert, dass das SDK Font Awesome aus dem CDN lädt. Verwenden Sie diese Option, wenn Ihre Website bereits über eine eigene Font-Awesome-Version verfügt. |
| Enable SDK Authentication | enableSdkAuthentication |
Aktiviert die SDK-Authentifizierung. |
| Enable Web SDK Logging | enableLogging |
Aktiviert die Konsolenprotokollierung für das Debugging. Entfernen Sie diese Option vor dem Produktivbetrieb. |
| Minimum Interval Between Triggered Messages | minimumIntervalBetweenTriggerActionsInSeconds |
Mindestzeit in Sekunden zwischen getriggerten Aktionen (Standard: 30). |
| Open Cards in New Tab | openCardsInNewTab |
Öffnet Content-Card-Links in einem neuen Tab, wenn die Standard-Feed-UI verwendet wird. |
| Service Worker Location | serviceWorkerLocation |
Benutzerdefinierter Pfad für die Service-Worker-Datei (Standard: /service-worker.js). |
| Session Timeout (seconds) | sessionTimeoutInSeconds |
Sitzungszeitlimit in Sekunden (Standard: 1800). |

Um angepasste HTML-In-App-Nachrichten bei Verwendung des Google Tag Manager Braze Initialization Tag zu aktivieren, wählen Sie Allow HTML In-App Messages in den Braze Initialization Options aus. Dieses Kontrollkästchen entspricht der Initialisierungsoption allowUserSuppliedJavascript in braze.initialize() und setzt sie auf true. Das Google Tag Manager Braze Initialization Tag verwendet dieses Label anstelle des Optionsnamens.
Für Optionen, die nicht im GTM-Template verfügbar sind (wie contentSecurityNonce, localization oder devicePropertyAllowlist), verwenden Sie stattdessen die Laufzeitinitialisierung.
5. Schritt: Auf allen Seiten triggern
Das Initialisierungs-Tag sollte auf allen Seiten Ihrer Website ausgeführt werden. So können Sie die Braze-SDK-Methoden nutzen und Web-Push-Analytics erfassen.
6. Schritt: Integration überprüfen
Sie können Ihre Integration mit einer der folgenden Optionen überprüfen:
- Option 1: Mit dem Debugging-Tool von Google Tag Manager können Sie prüfen, ob das Braze Initialization Tag auf Ihren konfigurierten Seiten oder Ereignissen korrekt getriggert wird.
- Option 2: Prüfen Sie, ob von Ihrer Webseite Netzwerk-Anfragen an Braze gesendet werden. Darüber hinaus sollte die globale
window.braze-Bibliothek nun definiert sein.
Bot-Traffic filtern
MAU kann einen Prozentsatz an Bot-Nutzer:innen enthalten, was die Anzahl Ihrer monatlich aktiven Nutzer:innen erhöht. Das Braze Web SDK verfügt zwar über eine integrierte Erkennung für einige gängige Webcrawler (wie Suchmaschinen-Bots und Social-Media-Vorschau-Bots), dennoch ist es besonders wichtig, proaktiv mit robusten Lösungen zur Erkennung von Bots zu arbeiten, da SDK-Updates allein nicht in der Lage sind, jeden neuen Bot konsistent zu erkennen.
Einschränkungen der Bot-Erkennung auf SDK-Seite
Das Web SDK umfasst eine grundlegende, auf User-Agents basierende Bot-Erkennung, die bekannte Crawler herausfiltert. Dieser Ansatz weist jedoch Einschränkungen auf:
- Es entstehen ständig neue Bots: KI-Unternehmen und andere Akteure entwickeln regelmäßig neue Bots, die sich möglicherweise tarnen, um einer Erkennung zu entgehen.
- User-Agent-Spoofing: Ausgefeilte Bots können legitime Browser-User-Agents imitieren.
- Angepasste Bots: Nicht-technische Nutzer:innen können nun auf einfache Weise Bots mithilfe großer Sprachmodelle (LLMs) erstellen, wodurch das Verhalten der Bots unvorhersehbar wird.
Implementierung von Bot-Filtern

Die nachfolgend aufgeführten Lösungen sind allgemeine Vorschläge. Passen Sie die Bot-Filterlogik an Ihre individuelle Umgebung und Ihre Datenverkehrsmuster an.
Die zuverlässigste Lösung besteht darin, Ihre eigene Bot-Filterlogik zu implementieren, bevor Sie das Braze SDK initialisieren. Zu den gängigen Ansätzen gehören:
Nutzerinteraktion erforderlich
Es wird empfohlen, die Initialisierung des SDK zu verzögern, bis Nutzer:innen eine sinnvolle Interaktion durchführen, wie beispielsweise das Akzeptieren eines Cookie-Consent-Banners, das Scrollen oder einen Klick. Dieser Ansatz ist häufig einfacher umzusetzen und kann beim Filtern von Bot-Traffic sehr effektiv sein.

Wenn Sie die Initialisierung des SDK bis zur Nutzerinteraktion verzögern, kann dies dazu führen, dass Banner und Content Cards ebenfalls erst nach dieser Interaktion angezeigt werden.
Erkennung angepasster Bots
Implementieren Sie eine angepasste Erkennung basierend auf Ihren spezifischen Bot-Traffic-Mustern, wie zum Beispiel:
- Analyse von User-Agent-Strings auf Muster, die Sie in Ihrem Datenverkehr identifiziert haben
- Überprüfung auf Indikatoren für einen Headless-Browser
- Nutzung von Bot-Erkennungsdiensten von Drittanbietern
- Überwachung von Verhaltenssignalen, die für Ihre Website spezifisch sind
Beispiel für bedingte Initialisierung:
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();
}
Best Practices
- Analysieren Sie regelmäßig Ihre MAU-Daten und Web-Traffic-Muster, um neues Bot-Verhalten zu erkennen.
- Führen Sie gründliche Tests durch, um sicherzustellen, dass Ihre Bot-Filterung keine legitimen Nutzer:innen vom Tracking ausschließt.
- Aktualisieren Sie Ihre Filterlogik auf Grundlage der Bot-Traffic-Muster, die Sie in Ihrer Umgebung beobachten.
Optionale Konfigurationen
Protokollierung
Um die Protokollierung schnell zu aktivieren, können Sie ?brazeLogging=true als Parameter in die URL Ihrer Website einfügen. Alternativ können Sie auch die einfache oder angepasste Protokollierung aktivieren. Für eine zentralisierte Übersicht über alle Plattformen hinweg siehe Ausführliche Protokollierung.
Grundlegende Protokollierung
Verwenden Sie enableLogging, um grundlegende Debugging-Nachrichten in der JavaScript-Konsole zu protokollieren, bevor das SDK initialisiert wird.
1
enableLogging: true
Ihre Methode sollte in etwa so aussehen wie die folgende:
1
2
3
4
5
braze.initialize('API-KEY', {
baseUrl: 'API-ENDPOINT',
enableLogging: true
});
braze.openSession();
Verwenden Sie braze.toggleLogging(), um grundlegende Debugging-Nachrichten in der JavaScript-Konsole zu protokollieren, nachdem das SDK initialisiert wurde. Ihre Methode sollte in etwa so aussehen wie die folgende:
1
2
3
4
5
6
braze.initialize('API-KEY', {
baseUrl: 'API-ENDPOINT',
});
braze.openSession();
...
braze.toggleLogging();

Die Basisprotokolle sind für alle Nutzer:innen sichtbar. Daher sollten Sie diese Funktion deaktivieren oder zu setLogger wechseln, bevor Sie Ihren Code für die Produktionsumgebung freigeben.
Angepasste Protokollierung
Verwenden Sie setLogger, um angepasste Debugging-Nachrichten in der JavaScript-Konsole zu protokollieren. Im Gegensatz zu den Basisprotokollen sind diese Protokolle für die Nutzer:innen nicht sichtbar.
1
setLogger(loggerFunction: (message: STRING) => void): void
Ersetzen Sie STRING durch Ihre Nachricht als einzelnen String-Parameter. Ihre Methode sollte in etwa so aussehen wie die folgende:
1
2
3
4
5
braze.initialize('API-KEY');
braze.setLogger(function(message) {
console.log("Braze Custom Logger: " + message);
});
braze.openSession();
Upgraden des SDK

Diese Anleitung verwendet Codebeispiele aus dem Braze Web SDK 4.0.0+. Um ein Upgrade auf die neueste Web SDK-Version durchzuführen, siehe SDK Upgrade Guide.
Wenn Sie das Braze Web SDK aus unserem Content Delivery Network referenzieren, zum Beispiel https://js.appboycdn.com/web-sdk/a.a/braze.min.js (wie in unseren Standard-Integrationsanweisungen empfohlen), erhalten Ihre Nutzer:innen automatisch kleinere Updates (Fehlerbehebungen und abwärtskompatible Features, Versionen a.a.a bis a.a.z in den obigen Beispielen), wenn sie Ihre Website aktualisieren.
Bei der Veröffentlichung größerer Änderungen bitten wir Sie jedoch, das Braze Web SDK manuell zu upgraden, um sicherzustellen, dass sich grundlegende Änderungen nicht auf Ihre Integration auswirken. Wenn Sie unser SDK herunterladen und selbst hosten, erhalten Sie keine automatischen Updates und müssen manuell upgraden, um die neuesten Features und Fehlerbehebungen zu erhalten.
Um auf dem aktuellen Stand zu bleiben, empfehlen wir Ihnen, mit dem RSS-Reader oder einem anderen Dienst Ihrer Wahl unseren Release-Feed zu abonnieren. Einen vollständigen Überblick über die Release-Historie unseres Web SDK finden Sie in unserem Changelog. So führen Sie ein Upgrade des Braze Web SDK durch:
- Aktualisieren Sie die Version der Braze-Bibliothek, indem Sie die Versionsnummer von
https://js.appboycdn.com/web-sdk/[OLD VERSION NUMBER]/braze.min.jsändern, oder in den Abhängigkeiten Ihres Paketmanagers. - Wenn Sie Web-Push integriert haben, aktualisieren Sie die Service-Worker-Datei auf Ihrer Website – standardmäßig befindet sich diese Datei unter
/service-worker.jsim Stammverzeichnis Ihrer Website, aber der Speicherort kann bei einigen Integrationen angepasst werden. Sie müssen auf das Stammverzeichnis zugreifen, um eine Service-Worker-Datei zu hosten.
Bitte führen Sie ein Update für diese beiden Dateien in Abstimmung miteinander durch, um eine ordnungsgemäße Funktionalität zu gewährleisten.
Andere Integrationsmethoden
Accelerated Mobile Pages (AMP)
Mehr anzeigen
1. Schritt: AMP-Web-Push-Skript einbinden
Fügen Sie den folgenden asynchronen Script-Tag in Ihren Head ein:
1
<script async custom-element="amp-web-push" src="https://cdn.ampproject.org/v0/amp-web-push-0.1.js"></script>
2. Schritt: Abo-Widgets hinzufügen
Fügen Sie ein Widget in den Body Ihres HTML-Codes ein, das es Nutzer:innen ermöglicht, Push-Benachrichtigungen zu abonnieren oder sich abzumelden.
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>
3. Schritt: helper-iframe und permission-dialog hinzufügen
Die AMP-Web-Push-Komponente erstellt ein Popup-Fenster zur Verwaltung von Push-Abonnements. Um dieses Feature zu aktivieren, müssen Sie die folgenden Hilfsdateien zu Ihrem Projekt hinzufügen:
4. Schritt: Erstellen Sie eine Service-Worker-Datei
Erstellen Sie eine service-worker.js-Datei im Stammverzeichnis Ihrer Website und fügen Sie das folgende Snippet hinzu:
5. Schritt: Konfigurieren Sie das AMP-Web-Push-HTML-Element
Fügen Sie das folgende amp-web-push-HTML-Element in Ihren HTML-Body ein. Bitte beachten Sie, dass Sie Ihre apiKey und baseUrl als Abfrageparameter an service-worker-URL anhängen müssen.
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}"
>
Asynchrone Moduldefinition (AMD)
Unterstützung deaktivieren
Falls Ihre Website RequireJS oder einen anderen AMD-Modul-Loader verwendet, Sie jedoch das Braze Web SDK lieber über eine der anderen Optionen in dieser Liste laden möchten, können Sie eine Version der Bibliothek laden, die keine AMD-Unterstützung enthält. Diese Version der Bibliothek kann vom folgenden CDN-Standort geladen werden:
Modul-Loader
Wenn Sie RequireJS oder andere AMD-Modul-Loader verwenden, empfehlen wir Ihnen, selbst eine Kopie unserer Bibliothek zu hosten und genauso auf sie zu verweisen, wie Sie es mit anderen Ressourcen tun würden:
1
2
3
4
5
6
require(['path/to/braze.min.js'], function(braze) {
braze.initialize('YOUR-API-KEY-HERE', { baseUrl: 'YOUR-SDK-ENDPOINT' });
// Required if you want in-app messages to display automatically
braze.automaticallyShowInAppMessages();
braze.openSession();
});
Electron
Electron unterstützt offiziell keine Web-Push-Benachrichtigungen (siehe dieses GitHub-Issue). Es gibt andere Open-Source-Workarounds, die Sie ausprobieren können, die aber nicht von Braze getestet wurden.
Jest-Framework
Bei der Verwendung von Jest wird möglicherweise eine Fehlermeldung ähnlich SyntaxError: Unexpected token 'export' angezeigt. Passen Sie für die Fehlerbehebung Ihre Konfiguration in package.json so an, dass das Braze SDK ignoriert wird:
1
2
3
4
5
"jest": {
"transformIgnorePatterns": [
"/node_modules/(?!@braze)"
]
}
SSR-Frameworks
Das Web SDK wird in einer Browserumgebung ausgeführt. In SSR-Frameworks initialisieren Sie Braze in einer Client-only-Komponente, damit Ihr Server niemals SDK-Code ausführt.
Framework-agnostischer dynamischer Import
Wenn Ihr Framework in diesem Abschnitt nicht aufgeführt ist, können Sie Braze dynamisch aus einem Client-only-Lifecycle-Hook importieren.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// MyComponent/braze-exports.js
// Export the parts of the SDK that you need.
export { initialize, openSession } from "@braze/web-sdk";
// MyComponent/MyComponent.js
useEffect(() => {
import("./braze-exports.js").then(({ initialize, openSession }) => {
initialize("YOUR-API-KEY-HERE", {
baseUrl: "YOUR-SDK-ENDPOINT",
enableLogging: true,
});
openSession();
});
}, []);
Wenn Sie Webpack verwenden, können Sie nur bestimmte SDK-Exporte dynamisch importieren.
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();
});
}, []);
Gemeinsamer Hook für Next.js und Remix
Erstellen Sie einen wiederverwendbaren useBraze-Hook und rufen Sie ihn in der Nähe Ihres App-Roots auf.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// hooks/useBraze.ts
import { useEffect, useRef } from "react";
export function useBraze() {
const didInit = useRef(false);
useEffect(() => {
if (didInit.current) {
return;
}
didInit.current = true;
import("@braze/web-sdk")
.then((braze) => {
const initialized = braze.initialize("YOUR-API-KEY-HERE", {
// Use your Braze Web SDK endpoint, such as sdk.iad-01.braze.com.
baseUrl: "YOUR-SDK-ENDPOINT",
enableLogging: false,
});
if (!initialized) {
return;
}
// Optional: Identify signed-in users before opening a session.
// braze.changeUser("external-id");
// Optional: Automatically display in-app messages.
// braze.automaticallyShowInAppMessages();
braze.openSession();
})
.catch((error) => {
console.error("Unable to load Braze SDK:", error);
});
}, []);
}
Next.js (App Router)
Rufen Sie useBraze in einer Client-Komponente auf, die Ihre App umschließt.
1
2
3
4
5
6
7
8
9
10
// app/components/AppRoot.tsx
"use client";
import type { ReactNode } from "react";
import { useBraze } from "../hooks/useBraze";
export function AppRoot({ children }: { children: ReactNode }) {
useBraze();
return <>{children}</>;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// app/layout.tsx
import type { ReactNode } from "react";
import { AppRoot } from "./components/AppRoot";
export default function RootLayout({
children,
}: {
children: ReactNode;
}) {
return (
<html lang="en">
<body>
<AppRoot>{children}</AppRoot>
</body>
</html>
);
}
Next.js (Pages Router)
Rufen Sie useBraze am Anfang Ihrer angepassten App-Komponente auf.
1
2
3
4
5
6
7
8
9
10
11
// pages/_app.tsx
import type { AppProps } from "next/app";
import { useBraze } from "../hooks/useBraze";
export default function App({ Component, pageProps }: AppProps) {
useBraze();
return (
<Component {...pageProps} />
);
}
Remix
Rufen Sie useBraze am Anfang Ihrer Root-Route-Komponente auf.
Für lokale Remix-Validierungsbeispiele führen Sie PORT=4013 npm run dev aus.
1
2
3
4
5
6
7
8
9
// app/root.tsx
import { Outlet } from "@remix-run/react";
import { useBraze } from "./hooks/useBraze";
export default function App() {
useBraze();
return <Outlet />;
}
Ereignisse protokollieren und Nutzer:innen aktualisieren
Nachdem useBraze das SDK an Ihrem App-Root initialisiert hat, können andere Client-Komponenten Braze-Methoden aufrufen. Ein gängiges Muster besteht darin, sie innerhalb von Nutzeraktionen wie onClick oder onSubmit aufzurufen. Im Beispiel werden die SDK-Methoden innerhalb des Click-Handlers geladen, anstatt am Anfang der Datei. Dadurch bleibt das Web SDK aus dem Server-Code heraus und es wird nur das geladen, was diese Aktion benötigt. Der webpackExports-Kommentar teilt Webpack mit, welche Methoden einbezogen werden sollen, sodass Ihr Bundle kleiner bleibt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// app/components/BuyButton.tsx
"use client";
export function BuyButton() {
const handleClick = async () => {
const { logCustomEvent, logPurchase, getUser } = await import(
/* webpackExports: ["logCustomEvent", "logPurchase", "getUser"] */
"@braze/web-sdk"
);
getUser()?.setCustomUserAttribute("last_purchase_date", "2026-05-04");
logCustomEvent("clicked_buy", { source: "product_page" });
logPurchase("sku_123", 19.99, "USD");
};
return <button onClick={handleClick}>Buy</button>;
}
Dieses Beispiel zeigt eine BuyButton-Komponente, die Aktivitäten protokolliert, wenn jemand auf Buy klickt. Zunächst werden nur logCustomEvent, logPurchase und getUser zum Zeitpunkt des Klicks importiert. Dann wird ein Nutzerattribut aktualisiert, ein angepasstes Event protokolliert und ein Kauf protokolliert. Dieses Muster hilft Ihnen, die Initialisierung in useBraze zentralisiert zu halten, während Sie dennoch sinnvolle Aktionen aus jeder Client-Komponente heraus tracken können.
Wenn Sie Remix mit Vite verwenden und Package-Root-Importe zur Laufzeit fehlschlagen, nutzen Sie den bestehenden Vite-Workaround. Weitere Informationen finden Sie unter Vite.
Eine vollständige Liste der verfügbaren Methoden finden Sie in der Braze JavaScript-Referenzdokumentation.
Tealium iQ
Tealium iQ bietet eine einfache, schlüsselfertige Braze-Integration. Um die Integration zu konfigurieren, suchen Sie in der Tealium Tag-Management-Schnittstelle nach Braze und geben Sie den Web-SDK-API-Schlüssel von Ihrem Dashboard an.
Für weitere Informationen oder umfassende Unterstützung bei der Konfiguration von Tealium empfehlen wir Ihnen, unsere Integrationsdokumentation zu konsultieren oder sich an Ihren Tealium-Account-Manager zu wenden.
Vite
Wenn Sie Vite verwenden und eine Warnung zu zirkulären Abhängigkeiten oder Uncaught TypeError: Class extends value undefined is not a constructor or null sehen, müssen Sie das Braze SDK möglicherweise von der Abhängigkeitserkennung ausschließen:
1
2
3
optimizeDeps: {
exclude: ['@braze/web-sdk']
},
Andere Tag-Manager
Braze kann auch mit anderen Tag-Management-Lösungen kompatibel sein. Folgen Sie dazu unseren Integrationsanweisungen innerhalb eines angepassten HTML-Tags. Bitte wenden Sie sich an eine Braze-Vertretung, wenn Sie Unterstützung bei der Bewertung dieser Lösungen benötigen.
Integration des Android SDK
1. Schritt: Aktualisieren Sie Ihre Gradle-Build-Konfiguration
Fügen Sie in der Repository-Konfiguration Ihres Projekts (z. B. settings.gradle, settings.gradle.kts oder build.gradle auf oberster Ebene) mavenCentral() zu Ihrer Liste der Repositorys hinzu. Diese Syntax ist sowohl für Groovy als auch für Kotlin DSL identisch.
1
2
3
repositories {
mavenCentral()
}
Fügen Sie als Nächstes Braze zu Ihren Abhängigkeiten hinzu. Ersetzen Sie in den folgenden Beispielen SDK_VERSION durch die aktuelle Version Ihres Android Braze SDK. Die vollständige Liste der Versionen finden Sie unter Changelogs.

- Für Kotlin DSL (
build.gradle.kts) verwenden Sie die Syntaximplementation("..."). - Für Groovy (
build.gradle) verwenden Sie die Syntaximplementation '...'. - Für Versionskataloge fügen Sie Einträge zu Ihrer Datei
gradle/libs.versions.tomlhinzu und referenzieren Sie diese mithilfe der generierten Zugriffsmethoden.
Falls Sie nicht vorhaben, Braze-UI-Komponenten zu verwenden, fügen Sie Folgendes zu Ihren Abhängigkeiten hinzu.
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.
}
In Ihrer Datei gradle/libs.versions.toml:
1
2
3
4
5
6
[versions]
braze = "SDK_VERSION"
[libraries]
braze-android-sdk-base = { group = "com.braze", name = "android-sdk-base", version.ref = "braze" }
braze-android-sdk-location = { group = "com.braze", name = "android-sdk-location", version.ref = "braze" }
Fügen Sie anschließend in Ihrer Datei build.gradle oder build.gradle.kts die folgenden Abhängigkeiten hinzu. Diese Syntax ist sowohl für Groovy als auch für Kotlin DSL identisch.
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.
}
Wenn Sie die Verwendung von Braze-UI-Komponenten planen, fügen Sie Folgendes zu Ihren Abhängigkeiten hinzu.
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.
}
In Ihrer Datei gradle/libs.versions.toml:
1
2
3
4
5
6
[versions]
braze = "SDK_VERSION"
[libraries]
braze-android-sdk-ui = { group = "com.braze", name = "android-sdk-ui", version.ref = "braze" }
braze-android-sdk-location = { group = "com.braze", name = "android-sdk-location", version.ref = "braze" }
Fügen Sie anschließend in Ihrer Datei build.gradle oder build.gradle.kts die folgenden Abhängigkeiten hinzu. Diese Syntax ist sowohl für Groovy als auch für Kotlin DSL identisch.
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.
}
2. Schritt: Konfigurieren Sie Ihre braze.xml

Ab Dezember 2019 werden keine benutzerdefinierten Endpunkte mehr vergeben. Wenn Sie einen bereits bestehenden benutzerdefinierten Endpunkt haben, können Sie diesen weiterhin verwenden. Weitere Einzelheiten finden Sie in unserer Liste der verfügbaren Endpunkte.
Erstellen Sie eine Datei braze.xml im Ordner res/values Ihres Projekts. Wenn Sie mit einem bestimmten Daten-Cluster arbeiten oder einen zuvor angepassten Endpunkt verwenden, müssen Sie den Endpunkt ebenfalls in Ihrer Datei braze.xml angeben.
Der Inhalt dieser Datei sollte dem folgenden Code-Snippet ähneln. Stellen Sie sicher, dass Sie YOUR_APP_IDENTIFIER_API_KEY durch den Bezeichner ersetzen, den Sie auf der Seite Einstellungen verwalten des Braze-Dashboards finden. Melden Sie sich unter dashboard.braze.com an, um Ihre Cluster-Adresse zu finden.
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>
3. Schritt: Berechtigungen zu AndroidManifest.xml hinzufügen
Fügen Sie als Nächstes die folgenden Berechtigungen zu Ihrer AndroidManifest.xml hinzu:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Mit der Veröffentlichung von Android M wechselte Android von einem Installationszeit- zu einem Laufzeit-Berechtigungsmodell. Diese beiden Berechtigungen sind jedoch normale Berechtigungen und werden automatisch gewährt, wenn sie im App-Manifest aufgeführt sind. Weitere Informationen finden Sie in der Dokumentation zu den Berechtigungen von Android.
4. Schritt: Verzögerte Initialisierung aktivieren (optional)
Um die verzögerte Initialisierung zu verwenden, ist die folgende Mindestversion des Braze SDK erforderlich:

Solange die verzögerte Initialisierung aktiviert ist, werden alle Netzwerkverbindungen unterbrochen, wodurch verhindert wird, dass das SDK Daten an die Braze-Server sendet.
Schritt 4.1: Aktualisieren Sie Ihre braze.xml
Die verzögerte Initialisierung ist standardmäßig deaktiviert. Um sie zu aktivieren, verwenden Sie eine der folgenden Optionen:
Setzen Sie in der Datei braze.xml Ihres Projekts com_braze_enable_delayed_initialization auf true.
1
<bool name="com_braze_enable_delayed_initialization">true</bool>
Um die verzögerte Initialisierung zur Laufzeit zu aktivieren, verwenden Sie die folgende Methode.
1
Braze.enableDelayedInitialization(context);
1
Braze.enableDelayedInitialization(context)

Wenn die verzögerte Initialisierung aktiviert ist und eine Push-Benachrichtigung eine Deeplink-Aktion enthält, wird der Deeplink nicht aufgelöst.
Schritt 4.2: Push-Analytics konfigurieren (optional)
Wenn die verzögerte Initialisierung aktiviert ist, werden Push-Analytics standardmäßig in eine Warteschlange gestellt. Sie können jedoch auch explizit in die Warteschlange stellen oder Push-Analytics verwerfen.
Explizit in die Warteschlange stellen
Um Push-Analytics explizit in die Warteschlange zu stellen, wählen Sie eine der folgenden Optionen:
Setzen Sie in Ihrer Datei braze.xml den Wert com_braze_delayed_initialization_analytics_behavior auf QUEUE:
1
<string name="com_braze_delayed_initialization_analytics_behavior">QUEUE</string>
Fügen Sie QUEUE zu Ihrer Methode Braze.enableDelayedInitialization() hinzu:
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE)
Verwerfen
Um Push-Analytics zu verwerfen, wählen Sie eine der folgenden Optionen:
Setzen Sie in Ihrer Datei braze.xml den Wert com_braze_delayed_initialization_analytics_behavior auf DROP:
1
<string name="com_braze_delayed_initialization_analytics_behavior">DROP</string>
Fügen Sie DROP zur Methode Braze.enableDelayedInitialization() hinzu:
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP)
Schritt 4.3: SDK manuell initialisieren
Nach Ablauf der von Ihnen gewählten Verzögerungszeit verwenden Sie die Methode Braze.disableDelayedInitialization(), um das SDK manuell zu initialisieren.
1
Braze.disableDelayedInitialization(context);
1
Braze.disableDelayedInitialization(context)
5. Schritt: Tracking von Nutzer:innen-Sitzungen aktivieren
Wenn Sie das Tracking von Nutzer:innen-Sitzungen aktivieren, können Aufrufe von openSession(), closeSession(), ensureSubscribedToInAppMessageEvents() und die InAppMessageManager-Registrierung automatisch verarbeitet werden.
Um Callbacks für den Lebenszyklus einer Aktivität zu registrieren, fügen Sie den folgenden Code in die Methode onCreate() Ihrer Klasse Application ein.
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())
}
}
Die Liste der verfügbaren Parameter finden Sie unter BrazeActivityLifecycleCallbackListener.
Testen des Sitzungs-Trackings

Sie können auch den SDK-Debugger verwenden, um Probleme mit dem SDK zu diagnostizieren.
Wenn Sie beim Testen auf Probleme stoßen, aktivieren Sie die ausführliche Protokollierung und verwenden Sie dann logcat, um fehlende openSession- und closeSession-Aufrufe in Ihren Aktivitäten zu erkennen.
- Gehen Sie in Braze zu Übersicht, wählen Sie Ihre App aus und wählen Sie dann in der Dropdown-Liste Daten anzeigen für die Option Heute.

- Öffnen Sie Ihre App und aktualisieren Sie dann das Braze-Dashboard. Überprüfen Sie, ob sich Ihre Metriken um 1 erhöht haben.
- Navigieren Sie durch Ihre App und überprüfen Sie, ob nur eine Sitzung bei Braze protokolliert wurde.
- Versetzen Sie die App für mindestens 10 Sekunden in den Hintergrund und holen Sie sie dann in den Vordergrund. Überprüfen Sie, ob eine neue Sitzung protokolliert wurde.
Optionale Konfigurationen
Laufzeitkonfiguration
Um Ihre Braze-Optionen im Code statt in Ihrer Datei braze.xml festzulegen, verwenden Sie die Laufzeitkonfiguration. Wenn ein Wert an beiden Stellen vorhanden ist, wird stattdessen der Laufzeitwert verwendet. Nachdem alle erforderlichen Einstellungen zur Laufzeit vorgenommen wurden, können Sie Ihre Datei braze.xml löschen.
Im folgenden Beispiel wird ein Builder-Objekt erstellt und anschließend an Braze.configure() übergeben. Beachten Sie, dass nur einige der verfügbaren Laufzeitoptionen angezeigt werden—die vollständige Liste finden Sie in unserer 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)

Suchen Sie ein weiteres Beispiel? Sehen Sie sich unsere Hello Braze-Beispiel-App an.
Google Advertising ID
Die Google Advertising ID (GAID) ist eine optionale nutzerspezifische, anonyme, eindeutige und zurücksetzbare ID für Werbung, die von Google Play-Diensten bereitgestellt wird. GAID gibt Nutzer:innen die Möglichkeit, ihren Bezeichner zurückzusetzen, interessenbezogene Werbung in Google Play-Apps abzulehnen, und bietet Entwickler:innen ein einfaches, standardisiertes System, um ihre Apps weiterhin zu monetarisieren.
Die Google Advertising ID wird nicht automatisch vom Braze SDK erfasst und muss manuell über die Methode Braze.setGoogleAdvertisingId() festgelegt werden.
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()
}
}
}

Google verlangt, dass die Advertising ID auf einem Nicht-UI-Thread erfasst wird.
Standort-Tracking
Um die Erfassung von Braze-Standortdaten zu aktivieren, setzen Sie com_braze_enable_location_collection in Ihrer Datei braze.xml auf true:
1
<bool name="com_braze_enable_location_collection">true</bool>

Ab Version 3.6.0 des Braze Android SDK ist die Braze-Standorterfassung standardmäßig deaktiviert.
Protokollierung
Standardmäßig ist die Protokollstufe des Braze Android SDK auf INFO eingestellt. Sie können diese Protokolle unterdrücken oder eine andere Protokollstufe festlegen, z. B. VERBOSE, DEBUG oder WARN.
Protokolle aktivieren
Um Fehler in Ihrer App zu beheben oder die Bearbeitungszeiten mit dem Braze-Support zu verkürzen, können Sie ausführliche Protokolle für das SDK aktivieren. Wenn Sie ausführliche Protokolle an den Braze-Support senden, stellen Sie sicher, dass diese beginnen, sobald Sie Ihre Anwendung starten, und weit nach dem Auftreten des Problems enden. Eine zentralisierte Übersicht finden Sie unter Ausführliche Protokollierung. Informationen zum Interpretieren der Protokollausgabe finden Sie unter Ausführliche Protokolle lesen.
Beachten Sie, dass ausführliche Protokolle nur für Ihre Entwicklungsumgebung gedacht sind. Sie sollten sie daher deaktivieren, bevor Sie Ihre App veröffentlichen.

Aktivieren Sie ausführliche Protokolle vor allen anderen Aufrufen in Application.onCreate(), um sicherzustellen, dass Ihre Protokolle so vollständig wie möglich sind.
Um Protokolle direkt in Ihrer App zu aktivieren, fügen Sie der Methode onCreate() Ihrer Anwendung vor allen anderen Methoden Folgendes hinzu.
1
BrazeLogger.setLogLevel(Log.MIN_LOG_LEVEL);
1
BrazeLogger.logLevel = Log.MIN_LOG_LEVEL
Ersetzen Sie MIN_LOG_LEVEL durch die Konstante der Protokollstufe, die Sie als minimale Protokollstufe festlegen möchten. Alle Protokolle auf der Ebene >= Ihrer eingestellten MIN_LOG_LEVEL werden an die standardmäßige Log-Methode von Android weitergeleitet. Alle Protokolle < Ihrer eingestellten MIN_LOG_LEVEL werden verworfen.
| Konstante | Wert | Beschreibung |
|---|---|---|
VERBOSE |
2 | Protokolliert die detailliertesten Nachrichten zur Fehlersuche und Entwicklung. |
DEBUG |
3 | Protokolliert beschreibende Nachrichten zur Fehlersuche und Entwicklung. |
INFO |
4 | Protokolliert informative Nachrichten für allgemeine Highlights. |
WARN |
5 | Protokolliert Warnmeldungen zur Identifizierung potenziell schädlicher Situationen. |
ERROR |
6 | Protokolliert Fehlermeldungen, die auf Anwendungsfehler oder schwerwiegende Probleme hinweisen. |
ASSERT |
7 | Protokolliert Assertion-Nachrichten, wenn Bedingungen während der Entwicklung falsch sind. |
Der folgende Code leitet zum Beispiel die Protokollstufen 2, 3, 4, 5, 6 und 7 an die Methode Log weiter.
1
BrazeLogger.setLogLevel(Log.VERBOSE);
1
BrazeLogger.logLevel = Log.VERBOSE
Um Protokolle in der braze.xml zu aktivieren, fügen Sie Folgendes zu Ihrer Datei hinzu:
1
<integer name="com_braze_logger_initial_log_level">MIN_LOG_LEVEL</integer>
Ersetzen Sie MIN_LOG_LEVEL durch den Wert der Protokollstufe, die Sie als minimale Protokollstufe festlegen möchten. Alle Protokolle auf der Ebene >= Ihrer eingestellten MIN_LOG_LEVEL werden an die standardmäßige Log-Methode von Android weitergeleitet. Alle Protokolle < Ihrer eingestellten MIN_LOG_LEVEL werden verworfen.
| Konstante | Wert | Beschreibung |
|---|---|---|
VERBOSE |
2 | Protokolliert die detailliertesten Nachrichten zur Fehlersuche und Entwicklung. |
DEBUG |
3 | Protokolliert beschreibende Nachrichten zur Fehlersuche und Entwicklung. |
INFO |
4 | Protokolliert informative Nachrichten für allgemeine Highlights. |
WARN |
5 | Protokolliert Warnmeldungen zur Identifizierung potenziell schädlicher Situationen. |
ERROR |
6 | Protokolliert Fehlermeldungen, die auf Anwendungsfehler oder schwerwiegende Probleme hinweisen. |
ASSERT |
7 | Protokolliert Assertion-Nachrichten, wenn Bedingungen während der Entwicklung falsch sind. |
Der folgende Code leitet zum Beispiel die Protokollstufen 2, 3, 4, 5, 6 und 7 an die Methode Log weiter.
1
<integer name="com_braze_logger_initial_log_level">2</integer>
Ausführliche Protokolle überprüfen
Um zu überprüfen, ob Ihre Protokolle auf VERBOSE eingestellt sind, prüfen Sie, ob V/Braze irgendwo in Ihren Protokollen vorkommt. Wenn dies der Fall ist, wurden die ausführlichen Protokolle erfolgreich aktiviert. Zum Beispiel:
1
2077-11-19 16:22:49.591 ? V/Braze v9.0.01 .bo.app.d3: Request started
Protokolle unterdrücken
Um alle Protokolle für das Braze Android SDK zu unterdrücken, setzen Sie die Protokollstufe in der Methode onCreate() Ihrer Anwendung vor allen anderen Methoden auf BrazeLogger.SUPPRESS.
1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS);
1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS)
Mehrere API-Schlüssel
Der häufigste Anwendungsfall für mehrere API-Schlüssel ist die Trennung von API-Schlüsseln für Debug- und Release-Build-Varianten.
Um in Ihren Builds einfach zwischen mehreren API-Schlüsseln wechseln zu können, empfehlen wir, für jede relevante Build-Variante eine eigene Datei braze.xml zu erstellen. Eine Build-Variante ist eine Kombination aus Build-Typ und Produkt-Flavor. Standardmäßig werden neue Android-Projekte mit den Build-Typen debug und release und ohne Produkt-Flavors konfiguriert.
Erstellen Sie für jede relevante Build-Variante eine neue Datei braze.xml im Verzeichnis src/<build variant name>/res/values/. Wenn die Build-Variante kompiliert wird, verwendet sie den neuen API-Schlüssel.
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>

Wie Sie den API-Schlüssel in Ihrem Code einrichten können, erfahren Sie unter Laufzeitkonfiguration.
Exklusiver TalkBack für In-App-Nachrichten
In Übereinstimmung mit den Android-Richtlinien für Barrierefreiheit bietet das Braze Android SDK standardmäßig Android TalkBack. Um sicherzustellen, dass nur der Inhalt von In-App-Nachrichten laut vorgelesen wird – ohne andere Bildschirmelemente wie die Titelleiste der App oder die Navigation einzubeziehen – können Sie den Exklusivmodus für TalkBack aktivieren.
So aktivieren Sie den Exklusivmodus für In-App-Nachrichten:
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 und ProGuard
Die Code-Shrinking-Konfiguration ist automatisch in Ihrer Braze-Integration enthalten.
Client-Apps, die den Braze-Code verschleiern, müssen Release-Mapping-Dateien speichern, damit Braze die Stack-Traces interpretieren kann. Wenn Sie den gesamten Braze-Code beibehalten möchten, fügen Sie Folgendes in Ihre ProGuard-Datei ein:
1
2
-keep class bo.app.** { *; }
-keep class com.braze.** { *; }
Integration des Swift SDK
Sie können das Braze Swift SDK mithilfe des Swift-Paketmanagers (SPM), CocoaPods oder manueller Integrationsmethoden integrieren und anpassen. Weitere Informationen über die verschiedenen SDK-Symbole finden Sie in der Braze Swift-Referenzdokumentation.
Voraussetzungen
Bevor Sie beginnen, überprüfen Sie, ob Ihre Umgebung von der neuesten Braze Swift SDK-Version unterstützt wird.
1. Schritt: Installieren Sie das Braze Swift SDK
Wir empfehlen die Verwendung des Swift-Paketmanagers (SwiftPM) oder CocoaPods zur Installation des Braze Swift SDK. Alternativ können Sie das SDK auch manuell installieren.
Schritt 1.1: SDK-Version importieren
Öffnen Sie Ihr Projekt und navigieren Sie zu den Einstellungen Ihres Projekts. Wählen Sie den Tab Swift Packages und klicken Sie auf die Schaltfläche unterhalb der Paketliste.


Ab Version 7.4.0 verfügt das Braze Swift SDK über zusätzliche Verteilungskanäle als statische XCFrameworks und dynamische XCFrameworks. Wenn Sie stattdessen eines dieser Formate verwenden möchten, folgen Sie den Installationsanweisungen des jeweiligen Repositorys.
Geben Sie die URL unseres iOS Swift SDK-Repositorys https://github.com/braze-inc/braze-swift-sdk in das Textfeld ein. Wählen Sie unter dem Abschnitt Dependency Rule die SDK-Version aus. Klicken Sie abschließend auf Add Package.

Schritt 1.2: Wählen Sie Ihre Pakete aus
Das Braze Swift SDK teilt Features in eigenständige Bibliotheken auf, um Entwickler:innen mehr Kontrolle darüber zu geben, welche Features sie in ihre Projekte importieren möchten.
| Paket | Details |
|---|---|
BrazeKit |
Haupt-SDK-Bibliothek mit Unterstützung für Analytics und Push-Benachrichtigungen. |
BrazeLocation |
Standortbibliothek mit Unterstützung für Standortanalysen und Geofence-Überwachung. |
BrazeUI |
Von Braze bereitgestellte Benutzeroberflächen-Bibliothek für In-App-Nachrichten, Content Cards und Banner. Importieren Sie diese Bibliothek, wenn Sie die Standard-UI-Komponenten verwenden möchten. |
Über die Erweiterungsbibliotheken

BrazeNotificationService und BrazePushStory sind Erweiterungsmodule, die zusätzliche Funktionen bieten und nicht direkt zu Ihrem Hauptanwendungsziel hinzugefügt werden sollten. Folgen Sie stattdessen den verlinkten Anleitungen, um sie separat in ihre jeweiligen Zielerweiterungen zu integrieren.
| Paket | Details |
|---|---|
BrazeNotificationService |
Erweiterungsbibliothek für Benachrichtigungsdienste mit Unterstützung für Rich-Push-Benachrichtigungen. |
BrazePushStory |
Erweiterungsbibliothek für Benachrichtigungsinhalte mit Unterstützung für Push Stories. |
Wählen Sie das Paket, das Ihren Anforderungen am besten entspricht, und klicken Sie auf Add Package. Stellen Sie sicher, dass Sie mindestens BrazeKit auswählen.

Schritt 1.1: CocoaPods installieren
Eine vollständige Anleitung finden Sie im CocoaPods-Handbuch „Erste Schritte“. Ansonsten können Sie den folgenden Befehl ausführen, um schnell loszulegen:
1
$ sudo gem install cocoapods
Wenn Sie nicht weiterkommen, lesen Sie die CocoaPods-Anleitung zur Fehlerbehebung.
Schritt 1.2: Erstellen des Podfiles
Erstellen Sie als Nächstes in Ihrem Xcode-Projektverzeichnis eine Datei namens Podfile.

Ab Version 7.4.0 verfügt das Braze Swift SDK über zusätzliche Verteilungskanäle als statische XCFrameworks und dynamische XCFrameworks. Wenn Sie stattdessen eines dieser Formate verwenden möchten, folgen Sie den Installationsanweisungen des jeweiligen Repositorys.
Fügen Sie die folgende Zeile in Ihr Podfile ein:
1
2
3
target 'YourAppTarget' do
pod 'BrazeKit'
end
BrazeKit enthält die Haupt-SDK-Bibliothek mit Unterstützung für Analytics und Push-Benachrichtigungen.
Wir empfehlen Ihnen, Braze so zu versionieren, dass Pod-Updates automatisch alles erfassen, was kleiner als ein Minor-Versionsupdate ist. Dies sieht folgendermaßen aus: pod 'BrazeKit' ~> Major.Minor.Build. Wenn Sie die neueste Version des Braze SDK auch bei größeren Änderungen automatisch integrieren möchten, können Sie pod 'BrazeKit' in Ihrem Podfile verwenden.
Über zusätzliche Bibliotheken
Das Braze Swift SDK teilt Features in eigenständige Bibliotheken auf, um Entwickler:innen mehr Kontrolle darüber zu geben, welche Features sie in ihre Projekte importieren möchten. Zusätzlich zu BrazeKit können Sie die folgenden Bibliotheken zu Ihrem Podfile hinzufügen:
| Bibliothek | Details |
|---|---|
pod 'BrazeLocation' |
Standortbibliothek mit Unterstützung für Standortanalysen und Geofence-Überwachung. |
pod 'BrazeUI' |
Von Braze bereitgestellte Benutzeroberflächen-Bibliothek für In-App-Nachrichten, Content Cards und Banner. Importieren Sie diese Bibliothek, wenn Sie die Standard-UI-Komponenten verwenden möchten. |
Erweiterungsbibliotheken
BrazeNotificationService und BrazePushStory sind Erweiterungsmodule, die zusätzliche Funktionen bieten und nicht direkt zu Ihrem Hauptanwendungsziel hinzugefügt werden sollten. Stattdessen müssen Sie für jedes dieser Module eigene Erweiterungs-Targets erstellen und die Braze-Module in ihre entsprechenden Targets importieren.
| Bibliothek | Details |
|---|---|
pod 'BrazeNotificationService' |
Erweiterungsbibliothek für Benachrichtigungsdienste mit Unterstützung für Rich-Push-Benachrichtigungen. |
pod 'BrazePushStory' |
Erweiterungsbibliothek für Benachrichtigungsinhalte mit Unterstützung für Push Stories. |
Schritt 1.3: Installieren Sie das SDK
Um das Braze SDK CocoaPod zu installieren, navigieren Sie in Ihrem Terminal zum Verzeichnis Ihres Xcode-App-Projekts und führen Sie den folgenden Befehl aus:
1
pod install
Jetzt sollten Sie den von CocoaPods erstellten neuen Xcode-Projektarbeitsbereich öffnen können. Stellen Sie sicher, dass Sie diesen Xcode-Workspace anstelle Ihres Xcode-Projekts verwenden.

Update des SDK mit CocoaPods
Um ein CocoaPod zu aktualisieren, führen Sie einfach den folgenden Befehl in Ihrem Projektverzeichnis aus:
1
pod update
Schritt 1.1: Laden Sie das Braze SDK herunter
Rufen Sie die Braze SDK Release-Seite auf GitHub auf und laden Sie braze-swift-sdk-prebuilt.zip herunter.

Schritt 1.2: Wählen Sie Ihre Frameworks aus
Das Braze Swift SDK enthält eine Vielzahl von eigenständigen XCFrameworks, die Ihnen die Freiheit geben, nur die gewünschten Features zu integrieren—ohne alle integrieren zu müssen. Verwenden Sie die folgende Tabelle, um Ihre XCFrameworks auszuwählen:
| Paket | Erforderlich? | Beschreibung |
|---|---|---|
BrazeKit |
Ja | Haupt-SDK-Bibliothek mit Unterstützung für Analytics und Push-Benachrichtigungen. |
BrazeLocation |
Nein | Standortbibliothek mit Unterstützung für Standortanalysen und Geofence-Überwachung. |
BrazeUI |
Nein | Von Braze bereitgestellte Benutzeroberflächen-Bibliothek für In-App-Nachrichten, Content Cards und Banner. Importieren Sie diese Bibliothek, wenn Sie die Standard-UI-Komponenten verwenden möchten. |
BrazeNotificationService |
Nein | Erweiterungsbibliothek für Benachrichtigungsdienste mit Unterstützung für Rich-Push-Benachrichtigungen. Fügen Sie diese Bibliothek nicht direkt zu Ihrem Hauptanwendungsziel hinzu, sondern fügen Sie die BrazeNotificationService-Bibliothek separat hinzu. |
BrazePushStory |
Nein | Erweiterungsbibliothek für Benachrichtigungsinhalte mit Unterstützung für Push Stories. Fügen Sie diese Bibliothek nicht direkt zu Ihrem Hauptanwendungsziel hinzu, sondern fügen Sie die BrazePushStory-Bibliothek separat hinzu. |
BrazeKitCompat |
Nein | Kompatibilitätsbibliothek mit allen Appboy- und ABK*-Klassen und -Methoden, die in der Appboy-iOS-SDK Version 4.X.X verfügbar waren. Einzelheiten zur Verwendung finden Sie im minimalen Migrationsszenario im Migrationshandbuch. |
BrazeUICompat |
Nein | Kompatibilitätsbibliothek mit allen ABK*-Klassen und -Methoden, die in der AppboyUI-Bibliothek der Appboy-iOS-SDK Version 4.X.X verfügbar waren. Einzelheiten zur Verwendung finden Sie im minimalen Migrationsszenario im Migrationshandbuch. |
SDWebImage |
Nein | Abhängigkeit, die nur von BrazeUICompat im minimalen Migrationsszenario verwendet wird. |
Schritt 1.3: Bereiten Sie Ihre Dateien vor
Entscheiden Sie, ob Sie statische oder dynamische XCFrameworks verwenden möchten, und bereiten Sie dann Ihre Dateien vor:
- Erstellen Sie ein temporäres Verzeichnis für Ihre XCFrameworks.
- Öffnen Sie in
braze-swift-sdk-prebuiltdas Verzeichnisdynamicund verschieben SieBrazeKit.xcframeworkin Ihr Verzeichnis. Ihr Verzeichnis sollte in etwa so aussehen:1 2
temp_dir └── BrazeKit.xcframework
- Verschieben Sie jedes der von Ihnen gewählten XCFrameworks in Ihr temporäres Verzeichnis. Ihr Verzeichnis sollte in etwa so aussehen:
1 2 3 4 5
temp_dir ├── BrazeKit.xcframework ├── BrazeKitCompat.xcframework ├── BrazeLocation.xcframework └── SDWebImage.xcframework
Schritt 1.4: Integrieren Sie Ihre Frameworks
Als Nächstes integrieren Sie die dynamischen oder statischen XCFrameworks, die Sie zuvor vorbereitet haben:
Wählen Sie in Ihrem Xcode-Projekt Ihr Build-Target und dann General. Ziehen Sie die zuvor vorbereiteten Dateien per Drag-and-Drop unter Frameworks, Libraries, and Embedded Content.


Ab dem Swift SDK 12.0.0 sollten Sie für die Braze XCFrameworks stets Embed & Sign sowohl für die statische als auch für die dynamische Variante auswählen. Dadurch wird sichergestellt, dass die Ressourcen des Frameworks ordnungsgemäß in Ihr App-Bundle eingebettet werden.

Um die GIF-Unterstützung zu aktivieren, fügen Sie SDWebImage.xcframework hinzu, das sich entweder in braze-swift-sdk-prebuilt/static oder braze-swift-sdk-prebuilt/dynamic befindet.
Häufige Fehler bei Objective-C-Projekten
Wenn Ihr Xcode-Projekt nur Objective-C-Dateien enthält, erhalten Sie möglicherweise „Missing Symbol“-Fehler, wenn Sie versuchen, Ihr Projekt zu erstellen. Um diese Fehler zu beheben, öffnen Sie Ihr Projekt und fügen Sie eine leere Swift-Datei zu Ihrem Dateibaum hinzu. Dadurch wird Ihre Build-Toolchain gezwungen, Swift Runtime einzubetten und während der Build-Zeit eine Verbindung zu den entsprechenden Frameworks herzustellen.
1
FILE_NAME.swift
Ersetzen Sie FILE_NAME durch einen beliebigen String ohne Leerzeichen. Ihre Datei sollte etwa so aussehen:
1
empty_swift_file.swift
2. Schritt: Verzögerte Initialisierung einrichten (optional)
Sie haben die Möglichkeit, die Initialisierung des Braze Swift SDK zu verzögern. Dies ist nützlich, wenn Ihre App vor dem Start des SDK eine Konfiguration laden oder auf die Zustimmung der Nutzer:innen warten muss. Die verzögerte Initialisierung stellt sicher, dass Braze-Push-Benachrichtigungen und Push-Token, die vor der SDK-Initialisierung empfangen wurden, in die Warteschlange gestellt und nach der Initialisierung des SDK verarbeitet werden.
Um die verzögerte Initialisierung zu verwenden, ist die folgende Mindestversion des Braze SDK erforderlich:
Schritt 2.1: Vorbereitung auf die verzögerte Initialisierung
Rufen Sie Braze.prepareForDelayedInitialization() so früh wie möglich im Lebenszyklus Ihrer App auf, idealerweise in oder vor application(_:didFinishLaunchingWithOptions:). Dadurch wird sichergestellt, dass Push-Benachrichtigungen, die vor der SDK-Initialisierung empfangen wurden, ordnungsgemäß erfasst und später verarbeitet werden.

Dies gilt ausschließlich für Push-Benachrichtigungen von Braze. Andere Push-Benachrichtigungen werden normal von Systemdelegierten verarbeitet.
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;
}
Bei Verwendung der verzögerten Initialisierung wird die Push-Automatisierung implizit aktiviert. Sie können die Push-Automatisierungskonfiguration anpassen, indem Sie einen pushAutomation-Parameter übergeben.
Schritt 2.2: Konfigurieren Sie das Verhalten der Push-Analytics (optional)
Wenn die verzögerte Initialisierung aktiviert ist, werden Push-Analytics standardmäßig in eine Warteschlange gestellt. Sie können jedoch auch explizit festlegen, dass Push-Analytics in die Warteschlange gestellt oder verworfen werden sollen.
Explizit in die Warteschlange stellen
Um Push-Analytics explizit in die Warteschlange zu stellen (Standardverhalten), übergeben Sie .queue an den analyticsBehavior-Parameter. Push-Analytics-Ereignisse, die vor der Initialisierung in die Warteschlange gestellt wurden, werden bei der Initialisierung verarbeitet und an den Server gesendet.
1
Braze.prepareForDelayedInitialization(analyticsBehavior: .queue)
1
[Braze prepareForDelayedInitializationWithAnalyticsBehavior:BRZPushEnqueueBehaviorQueue];
Verwerfen
Um Push-Analytics zu verwerfen, die vor der SDK-Initialisierung empfangen wurden, übergeben Sie .drop an den analyticsBehavior-Parameter. Mit dieser Option werden alle Push-Analytics-Ereignisse, die auftreten, während das SDK nicht initialisiert ist, ignoriert.
1
Braze.prepareForDelayedInitialization(analyticsBehavior: .drop)
1
[Braze prepareForDelayedInitializationWithAnalyticsBehavior:BRZPushEnqueueBehaviorDrop];
Schritt 2.3: Push-Automatisierung anpassen (optional)
Sie können die Push-Automatisierungskonfiguration anpassen, indem Sie einen pushAutomation-Parameter übergeben. Standardmäßig sind alle Automatisierungs-Features aktiviert, mit Ausnahme von 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];
Schritt 2.4: Initialisieren Sie das SDK
Nach Ablauf der von Ihnen gewählten Verzögerungszeit (beispielsweise nach dem Abrufen der Konfiguration von einem Server oder nach der Zustimmung der Nutzer:innen) initialisieren Sie das SDK wie gewohnt:
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;
}

Bei der Initialisierung des SDK werden alle in der Warteschlange befindlichen Push-Benachrichtigungen, Push-Token und Deeplinks automatisch verarbeitet.
3. Schritt: Aktualisieren Sie Ihren App-Delegierten

Im Folgenden wird davon ausgegangen, dass Sie bereits einen AppDelegate zu Ihrem Projekt hinzugefügt haben (dieser wird nicht standardmäßig generiert) und dass Sie das Feature zur verzögerten Initialisierung nicht verwenden. Falls Sie keinen AppDelegate verwenden möchten, stellen Sie sicher, dass Sie das Braze SDK so früh wie möglich initialisieren, beispielsweise beim Start der App. Wenn Sie das Feature zur verzögerten Initialisierung verwenden, lesen Sie Schritt 2.4 zur Initialisierung des SDK und überspringen Sie diesen Schritt.
Fügen Sie die folgende Codezeile in Ihre AppDelegate.swift-Datei ein, um die im Braze Swift SDK enthaltenen Features zu importieren:
1
import BrazeKit
Als Nächstes fügen Sie der Klasse AppDelegate eine statische Eigenschaft hinzu, um während der gesamten Lifetime Ihrer Anwendung eine starke Referenz auf die Braze-Instanz zu behalten:
1
2
3
class AppDelegate: UIResponder, UIApplicationDelegate {
static var braze: Braze? = nil
}
Das SDK erfordert, dass Ihre Anwendung während der gesamten Nutzung eine starke Referenz auf die Braze-Instanz behält. Um unerwartete Nebeneffekte zu vermeiden, stellen Sie sicher, dass Sie diese Referenz vollständig erfasst haben, bevor Sie auf Eigenschaften oder Methoden der Braze-Instanz zugreifen oder diese ändern.
Fügen Sie schließlich in AppDelegate.swift das folgende Snippet zu Ihrer Methode application:didFinishLaunchingWithOptions: hinzu:
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
Aktualisieren Sie YOUR-APP-IDENTIFIER-API-KEY und YOUR-BRAZE-ENDPOINT mit dem korrekten Wert von Ihrer App-Einstellungen-Seite. Sehen Sie sich unsere API-Bezeichner-Typen an, um mehr darüber zu erfahren, wo Sie Ihren App-Bezeichner-API-Schlüssel finden.
Fügen Sie die folgende Codezeile in Ihre AppDelegate.m-Datei ein:
1
@import BrazeKit;
Als Nächstes fügen Sie eine statische Variable in Ihre AppDelegate.m-Datei ein, um während der gesamten Lifetime Ihrer Anwendung eine Referenz auf die Braze-Instanz zu behalten:
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
Das SDK erfordert, dass Ihre Anwendung während der gesamten Nutzung eine starke Referenz auf die Braze-Instanz behält. Um unerwartete Nebeneffekte zu vermeiden, stellen Sie sicher, dass Sie diese Referenz vollständig erfasst haben, bevor Sie auf Eigenschaften oder Methoden der Braze-Instanz zugreifen oder diese ändern.
Fügen Sie schließlich in Ihrer AppDelegate.m-Datei das folgende Snippet zur Methode application:didFinishLaunchingWithOptions: hinzu:
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;
Aktualisieren Sie YOUR-APP-IDENTIFIER-API-KEY und YOUR-BRAZE-ENDPOINT mit dem richtigen Wert von Ihrer Seite Einstellungen verwalten. In unserer API-Dokumentation finden Sie weitere Informationen darüber, wo Sie den API-Schlüssel für Ihre App-Kennung finden.
Optionale Konfigurationen
Protokollierung
Für eine zentralisierte Übersicht über alle Plattformen hinweg siehe Ausführliche Protokollierung. Informationen zum Interpretieren der Protokollausgabe finden Sie unter Ausführliche Protokolle lesen.
Protokollstufen
Die Standard-Protokollstufe für das Braze Swift SDK ist .error—dies ist auch die minimal unterstützte Stufe, wenn die Protokollierung aktiviert ist. Dies ist die vollständige Liste der Protokollstufen:
| Swift | Objective-C | Beschreibung |
|---|---|---|
.debug |
BRZLoggerLevelDebug |
Debugging-Informationen protokollieren + .info + .error. |
.info |
BRZLoggerLevelInfo |
Allgemeine SDK-Informationen protokollieren (Nutzer:innen-Änderungen usw.) + .error. |
.error |
BRZLoggerLevelError |
Fehler protokollieren. |
.disabled |
BRZLoggerLevelDisabled |
Es erfolgt keine Protokollierung. |
Einstellen der Protokollstufe
Sie können die Protokollstufe zur Laufzeit in Ihrem Braze.Configuration-Objekt zuweisen. Ausführliche Informationen zur Verwendung finden Sie unter 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];
Integration des Cordova SDK
Voraussetzungen
Bevor Sie beginnen, überprüfen Sie, ob Ihre Umgebung von der neuesten Braze Cordova SDK Version unterstützt wird.
1. Schritt: Fügen Sie das SDK zu Ihrem Projekt hinzu

Fügen Sie das Braze Cordova SDK nur mit den unten aufgeführten Methoden hinzu. Versuchen Sie nicht, die Installation mit anderen Methoden durchzuführen, da dies zu einer Sicherheitsverletzung führen könnte.
Wenn Sie Cordova 6 oder höher verwenden, können Sie das SDK direkt von GitHub hinzufügen. Alternativ können Sie auch eine ZIP-Datei des GitHub-Repositorys herunterladen und das SDK manuell hinzufügen.
Wenn Sie nicht vorhaben, Standorterfassung und Geofences zu nutzen, verwenden Sie den Branch master von GitHub.
1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#master
Wenn Sie vorhaben, Standorterfassung und Geofences zu nutzen, verwenden Sie den geofence-branch von GitHub.
1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#geofence-branch

Sie können jederzeit zwischen master und geofence-branch wechseln, indem Sie diesen Schritt wiederholen.
2. Schritt: Konfigurieren Sie Ihr Projekt
Als Nächstes fügen Sie die folgenden Einstellungen zum Element platform in der Datei config.xml Ihres Projekts hinzu.
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" />
Ersetzen Sie Folgendes:
| Wert | Beschreibung |
|---|---|
BRAZE_API_KEY |
Ihr Braze REST-API-Schlüssel. |
CUSTOM_API_ENDPOINT |
Ein benutzerdefinierter API-Endpunkt. Dieser Endpunkt wird verwendet, um Ihre Braze-Instanzdaten an die richtige App-Gruppe in Ihrem Braze-Dashboard weiterzuleiten. |
Das Element platform in Ihrer Datei config.xml sollte etwa so aussehen:
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>
Plattformspezifische Syntax
Der folgende Abschnitt behandelt die plattformspezifische Syntax bei der Verwendung von Cordova mit iOS oder Android.
Ganze Zahlen
Präferenzen mit ganzen Zahlen werden wie im folgenden Beispiel als String gelesen:
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>
Aufgrund der Art und Weise, wie das Cordova 8.0.0+ Framework Präferenzen verarbeitet, müssen Präferenzen, die nur ganze Zahlen enthalten (z. B. Sender-IDs), wie im folgenden Beispiel als Strings mit vorangestelltem str_ festgelegt werden:
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>
Boolesche Werte
Boolesche Präferenzen werden vom SDK wie im folgenden Beispiel mit den Schlüsselwörtern YES und NO als String-Darstellung gelesen:
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>
Boolesche Präferenzen werden vom SDK wie im folgenden Beispiel mit den Schlüsselwörtern true und false als String-Darstellung gelesen:
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>
Optionale Konfigurationen
Sie können jede der folgenden Einstellungen zum Element platform in der Datei config.xml Ihres Projekts hinzufügen:
| Methode | Beschreibung |
|---|---|
ios_api_key |
Legt den API-Schlüssel für Ihre Anwendung fest. |
ios_api_endpoint |
Legt den SDK-Endpunkt für Ihre Anwendung fest. |
ios_disable_automatic_push_registration |
Legt fest, ob die automatische Push-Registrierung deaktiviert werden soll. |
ios_disable_automatic_push_handling |
Legt fest, ob die automatische Push-Behandlung deaktiviert werden soll. |
ios_enable_idfa_automatic_collection |
Legt fest, ob das Braze SDK automatisch die IDFA-Informationen sammeln soll. Weitere Informationen finden Sie in der Dokumentation zur IDFA-Methode von Braze. |
enable_location_collection |
Legt fest, ob die automatische Standorterfassung aktiviert ist (sofern die Nutzer:innen dies zulassen). Der geofence-branch |
geofences_enabled |
Legt fest, ob Geofences aktiviert sind. |
ios_session_timeout |
Legt das Braze-Session-Timeout für Ihre Anwendung in Sekunden fest. Der Standardwert ist 10 Sekunden. |
sdk_authentication_enabled |
Legt fest, ob das Feature SDK-Authentifizierung aktiviert werden soll. |
display_foreground_push_notifications |
Legt fest, ob Push-Benachrichtigungen angezeigt werden sollen, während sich die Anwendung im Vordergrund befindet. |
ios_disable_un_authorization_option_provisional |
Legt fest, ob UNAuthorizationOptionProvisional deaktiviert werden soll. |
trigger_action_minimum_time_interval_seconds |
Legt das minimale Zeitintervall in Sekunden zwischen Triggern fest. Der Standardwert ist 30 Sekunden. |
ios_push_app_group |
Legt die ID der App-Gruppe für iOS-Push-Erweiterungen fest. |
ios_forward_universal_links |
Legt fest, ob das SDK Universal Links automatisch erkennt und an die Systemmethoden weiterleitet. Erforderlich, damit Deeplinks aus Push-Benachrichtigungen unter iOS funktionieren. Standardmäßig deaktiviert. |
ios_log_level |
Legt die minimale Protokollierungsstufe für Braze.Configuration.Logger fest. |
ios_use_uuid_as_device_id |
Legt fest, ob eine zufällig generierte UUID als Geräte-ID verwendet werden soll. |
ios_flush_interval_seconds |
Legt das Intervall in Sekunden zwischen automatischen Datenflushes fest. Der Standardwert ist 10 Sekunden. |
ios_use_automatic_request_policy |
Legt fest, ob die Anfrage-Richtlinie für Braze.Configuration.Api automatisch oder manuell sein soll. |
should_opt_in_when_push_authorized |
Legt fest, ob der Abo-Status für Benachrichtigungen eines Nutzers bzw. einer Nutzerin automatisch auf optedIn gesetzt werden soll, wenn die Push-Berechtigungen autorisiert werden. |

Ausführlichere Informationen finden Sie unter GitHub: Braze iOS Cordova Plugin.
| Methode | Beschreibung |
|---|---|
android_api_key |
Legt den API-Schlüssel für Ihre Anwendung fest. |
android_api_endpoint |
Legt den SDK-Endpunkt für Ihre Anwendung fest. |
android_small_notification_icon |
Legt das kleine Benachrichtigungssymbol fest. |
android_large_notification_icon |
Legt das große Benachrichtigungssymbol fest. |
android_notification_accent_color |
Legt die Akzentfarbe der Benachrichtigung in hexadezimaler Darstellung fest. |
android_default_session_timeout |
Legt das Braze-Session-Timeout für Ihre Anwendung in Sekunden fest. Der Standardwert ist 10 Sekunden. |
android_handle_push_deep_links_automatically |
Legt fest, ob das Braze SDK Push-Deeplinks automatisch verarbeitet. Erforderlich, damit Deeplinks aus Push-Benachrichtigungen auf Android funktionieren. Standardmäßig deaktiviert. |
android_log_level |
Legt die Protokollstufe für Ihre Anwendung fest. Die Standard-Protokollstufe ist 4 und protokolliert nur minimale Informationen. Um die ausführliche Protokollierung für die Fehlersuche zu aktivieren, verwenden Sie die Protokollstufe 2. |
firebase_cloud_messaging_registration_enabled |
Legt fest, ob Firebase Cloud Messaging für Push-Benachrichtigungen verwendet werden soll. |
android_fcm_sender_id |
Legt die Firebase Cloud Messaging Sender-ID fest. |
enable_location_collection |
Legt fest, ob die automatische Standorterfassung aktiviert ist (sofern die Nutzer:innen dies zulassen). |
geofences_enabled |
Legt fest, ob Geofences aktiviert sind. |
android_disable_auto_session_tracking |
Deaktiviert das automatische Session-Tracking im Android Cordova Plugin. Weitere Informationen finden Sie unter Deaktivieren des automatischen Session-Trackings. |
sdk_authentication_enabled |
Legt fest, ob das Feature SDK-Authentifizierung aktiviert werden soll. |
trigger_action_minimum_time_interval_seconds |
Legt das minimale Zeitintervall in Sekunden zwischen Triggern fest. Der Standardwert ist 30 Sekunden. |
is_session_start_based_timeout_enabled |
Legt fest, ob das Session-Timeout-Verhalten auf Sitzungsstart- oder Sitzungsend-Ereignissen basieren soll. |
default_notification_channel_name |
Legt den für Nutzer:innen sichtbaren Namen fest, wie er über NotificationChannel.getName für den Braze-Standard-NotificationChannel angezeigt wird. |
default_notification_channel_description |
Legt die für Nutzer:innen sichtbare Beschreibung fest, wie sie über NotificationChannel.getDescription für den Braze-Standard-NotificationChannel angezeigt wird. |
does_push_story_dismiss_on_click |
Legt fest, ob eine Push Story beim Klicken automatisch geschlossen wird. |
is_fallback_firebase_messaging_service_enabled |
Legt fest, ob die Verwendung eines Fallback-Firebase-Cloud-Messaging-Dienstes aktiviert ist. |
fallback_firebase_messaging_service_classpath |
Legt den Klassenpfad für den Fallback-Firebase-Cloud-Messaging-Dienst fest. |
is_content_cards_unread_visual_indicator_enabled |
Legt fest, ob die visuelle Anzeigeleiste für ungelesene Content Cards aktiviert ist. |
is_firebase_messaging_service_on_new_token_registration_enabled |
Legt fest, ob das Braze SDK Token automatisch in com.google.firebase.messaging.FirebaseMessagingService.onNewToken registrieren soll. |
is_push_deep_link_back_stack_activity_enabled |
Legt fest, ob Braze eine Aktivität zum Back Stack hinzufügt, wenn es automatisch Deeplinks für Push folgt. |
push_deep_link_back_stack_activity_class_name |
Legt die Aktivität fest, die Braze zum Back Stack hinzufügt, wenn es automatisch Deeplinks für Push folgt. |
should_opt_in_when_push_authorized |
Legt fest, ob Braze bei der Autorisierung von Push automatisch ein Opt-in für die Nutzer:innen durchführen soll. |

Ausführlichere Informationen finden Sie unter GitHub: Braze Android Cordova Plugin.
Im Folgenden finden Sie ein Beispiel für eine config.xml-Datei mit zusätzlichen Konfigurationen:
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>
Deaktivieren des automatischen Session-Trackings (nur Android)
Standardmäßig verfolgt das Android Cordova Plugin Sitzungen automatisch. Um das automatische Session-Tracking zu deaktivieren, fügen Sie die folgende Einstellung zum Element platform in der Datei config.xml Ihres Projekts hinzu:
1
2
3
<platform name="android">
<preference name="com.braze.android_disable_auto_session_tracking" value="true" />
</platform>
Um das Session-Tracking erneut zu starten, rufen Sie BrazePlugin.startSessionTracking() auf. Beachten Sie, dass nur Sitzungen verfolgt werden, die nach dem nächsten Activity.onStart() gestartet werden.
Informationen zum Flutter Braze SDK
Nachdem Sie das Braze Flutter SDK auf Android und iOS integriert haben, können Sie die Braze-API in Ihren mit Dart geschriebenen Flutter-Apps verwenden. Dieses Plugin bietet grundlegende Analytics-Funktionen und ermöglicht die Integration von In-App-Nachrichten und Content Cards für iOS und Android mit einer einzigen Codebasis.
Integration des Flutter SDK
Voraussetzungen
Bevor Sie das Braze Flutter SDK integrieren, müssen Sie Folgendes erledigen:
| Voraussetzung | Beschreibung |
|---|---|
| Braze API-App-Bezeichner | Um den Bezeichner Ihrer App zu finden, gehen Sie zu Einstellungen > APIs und Bezeichner > App-Bezeichner. Weitere Informationen finden Sie unter API-Bezeichner-Typen. |
| Braze SDK-Endpunkt | Ihre SDK-Endpunkt-URL (z. B. sdk.<cluster>.braze.com). Ihr Endpunkt hängt von der Braze-URL für Ihre Instanz ab. |
| Flutter SDK | Installieren Sie das offizielle Flutter SDK und stellen Sie sicher, dass es die Mindestanforderungen für die unterstützte Version des Braze Flutter SDK erfüllt. |
1. Schritt: Integrieren der Braze-Bibliothek
Fügen Sie das Braze Flutter SDK-Paket über die Befehlszeile hinzu. Dadurch wird die entsprechende Zeile zu Ihrer pubspec.yaml hinzugefügt.
1
flutter pub add braze_plugin
2. Schritt: Vollständige native SDK-Einrichtung
2.1 Android einrichten {#21-set-up-android}
Zugangsdaten zur Kompilierzeit bereitstellen
Erstellen Sie eine braze.xml-Datei im Ordner android/res/values Ihres Projekts. Der API-Schlüssel und der Endpunkt werden zur Laufzeit über Dart bereitgestellt und sind daher in dieser Datei nicht erforderlich. Um die verzögerte Initialisierung zu aktivieren, fügen Sie com_braze_enable_delayed_initialization zur Datei hinzu:
1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="com_braze_enable_delayed_initialization">true</bool>
<!-- API key and endpoint are not required here. They are set at runtime via Dart. -->
</resources>
Zugangsdaten zur Laufzeit bereitstellen
Alternativ können Sie die verzögerte Initialisierung programmatisch in Ihrer MainActivity.kt aktivieren:
1
2
3
4
5
6
7
8
import com.braze.Braze
class MainActivity : FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Braze.enableDelayedInitialization(context = this)
}
}
Fügen Sie die erforderlichen Berechtigungen zu Ihrer Datei AndroidManifest.xml hinzu:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2.2 iOS einrichten {#22-set-up-ios}
Fügen Sie innerhalb Ihrer bestehenden application(_:didFinishLaunchingWithOptions:)-Methode einen Aufruf von BrazePlugin.configure(_:postInitialization:) hinzu, um Ihre Konfiguration zu speichern. Die Braze-Instanz wird erst erstellt, wenn initialize() aus Dart aufgerufen wird. Der API-Schlüssel und der Endpunkt werden hier nicht festgelegt.
Fügen Sie den folgenden Code zu Ihrer AppDelegate.swift hinzu:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import BrazeKit
import braze_plugin
// ...
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
// ... your existing didFinishLaunchingWithOptions setup ...
BrazePlugin.configure(
{ configuration in
configuration.logger.level = .info
// Set other non-API-key configurations here, such as:
// configuration.push.automation = true
// configuration.sessionTimeout = 60
},
postInitialization: { braze in
// Optional: Customize the Braze instance after creation.
// For example, set a custom in-app message presenter:
// let customPresenter = CustomInAppMessagePresenter()
// braze.inAppMessagePresenter = customPresenter
}
)
return true
}
Fügen Sie den folgenden Code zu Ihrer AppDelegate.m hinzu:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@import BrazeKit;
@import braze_plugin;
// ...
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[BrazePlugin configure:^(BRZConfiguration *configuration) {
configuration.logger.level = BRZLoggerLevelInfo;
// Set other non-API-key configurations here, such as:
// configuration.push.automation = ...
// configuration.sessionTimeout = 60;
} postInitialization:^(Braze *braze) {
// Optional: customize the Braze instance after creation.
}];
return YES;
}

BrazePlugin.configure() speichert lediglich Ihre Konfiguration. Es existiert keine Braze-Instanz, bis initialize() aus Dart aufgerufen wird. Rufen Sie daher nach configure() keine Braze SDK-Methoden im AppDelegate auf.
2.1 Android einrichten
Um eine Verbindung zu Braze-Servern herzustellen, erstellen Sie eine braze.xml-Datei im Ordner android/res/values Ihres Projekts. Fügen Sie den folgenden Code ein und ersetzen Sie den API-Bezeichner-Schlüssel und den Endpunkt durch Ihre Werte:
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>
Fügen Sie die erforderlichen Berechtigungen zu Ihrer Datei AndroidManifest.xml hinzu:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2.2 iOS einrichten
Fügen Sie die Braze SDK-Importe am Anfang der Datei AppDelegate.swift ein:
1
2
import BrazeKit
import braze_plugin
Erstellen Sie in derselben Datei das Braze-Konfigurationsobjekt in der application(_:didFinishLaunchingWithOptions:)-Methode und ersetzen Sie den API-Schlüssel und den Endpunkt durch die Werte Ihrer App. Erstellen Sie dann die Braze-Instanz mit Hilfe der Konfiguration und legen Sie eine statische Eigenschaft auf AppDelegate an, um den Zugriff zu erleichtern:
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
}
Importieren Sie das Braze SDK am Anfang der Datei AppDelegate.m:
1
2
@import BrazeKit;
@import braze_plugin;
Erstellen Sie in derselben Datei das Braze-Konfigurationsobjekt in der application:didFinishLaunchingWithOptions:-Methode und ersetzen Sie den API-Schlüssel und den Endpunkt durch die Werte Ihrer App. Erstellen Sie dann die Braze-Instanz mit Hilfe der Konfiguration und legen Sie eine statische Eigenschaft auf AppDelegate an, um den Zugriff zu erleichtern:
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;
}
3. Schritt: Plugin einrichten
Importieren Sie das Plugin und erstellen Sie eine einzelne Instanz von BrazePlugin:
1
2
3
import 'package:braze_plugin/braze_plugin.dart';
final BrazePlugin braze = BrazePlugin();
Rufen Sie dann initialize() mit Ihrem App-Bezeichner-API-Schlüssel und SDK-Endpunkt auf, um die Braze-Instanz zu erstellen. Nachfolgend finden Sie die Optionen, wo Sie diese Methode in Ihrer App aufrufen können.
Standard-Initialisierung
Um das SDK beim Start Ihrer App zu initialisieren, rufen Sie initialize() in initState() auf:
1
2
3
4
5
@override
void initState() {
super.initState();
braze.initialize("<BRAZE_API_KEY>", "<BRAZE_ENDPOINT>");
}
Verzögerte Initialisierung
Um die SDK-Initialisierung auf einen späteren Zeitpunkt in der Sitzung zu verschieben – z. B. nachdem die Nutzer:innen ihre Einwilligung erteilt oder die Anmeldung abgeschlossen haben – rufen Sie initialize() auf, wenn Sie bereit sind:
1
2
3
4
// ...
void onUserConsent() {
braze.initialize("<BRAZE_API_KEY>", "<BRAZE_ENDPOINT>");
}

Push-Benachrichtigungen und Deeplinks, die vor dem Aufruf von initialize() empfangen werden, werden unter iOS nicht verarbeitet. Unter Android werden Deeplinks aus Push-Benachrichtigungen nicht aufgelöst, solange das SDK auf die Initialisierung wartet. Wenn Ihre App auf Push-Benachrichtigungen oder Deeplinks beim Start angewiesen ist, verwenden Sie stattdessen die Standard-Initialisierung.
Plattformspezifische API-Schlüssel
Da Ihre Android- und iOS-Apps unterschiedliche API-Schlüssel verwenden, nutzen Sie die Plattformerkennung:
1
2
3
4
5
6
7
import 'dart:io' show Platform;
if (Platform.isAndroid) {
braze.initialize("<ANDROID_API_KEY>", "<BRAZE_ENDPOINT>");
} else if (Platform.isIOS) {
braze.initialize("<IOS_API_KEY>", "<BRAZE_ENDPOINT>");
}
Erneute Initialisierung
Sie können initialize() mehrfach aufrufen, um das SDK während einer Sitzung mit einem anderen API-Schlüssel und Endpunkt neu zu initialisieren. Jeder Aufruf entfernt die vorherige Braze-Instanz und erstellt eine neue.

Um undefiniertes Verhalten zu vermeiden, weisen Sie in Ihrem Dart-Code nur eine einzige Instanz von BrazePlugin zu und verwenden Sie auch nur diese. Alle SDK-Methodenaufrufe, die vor initialize() erfolgen, werden unter iOS ignoriert. Rufen Sie daher initialize() auf, bevor Sie andere Braze-Methoden verwenden.
Um das Plugin in Ihren Dart-Code zu importieren, verwenden Sie Folgendes:
1
import 'package:braze_plugin/braze_plugin.dart';
Initialisieren Sie dann eine Instanz des Braze-Plugins, indem Sie new BrazePlugin() aufrufen, wie in unserer Beispiel-App gezeigt.

Um undefiniertes Verhalten zu vermeiden, weisen Sie in Ihrem Dart-Code nur eine einzige Instanz von BrazePlugin zu und verwenden Sie auch nur diese.
Testen der Integration
Sie können überprüfen, ob das SDK integriert ist, indem Sie die Sitzungsstatistiken im Dashboard prüfen. Wenn Sie Ihre Anwendung auf einer der beiden Plattformen ausführen, sollten Sie im Dashboard (im Abschnitt Übersicht) eine neue Sitzung sehen.
Öffnen Sie eine Sitzung für eine:n bestimmte:n Nutzer:in, indem Sie den folgenden Code in Ihrer App aufrufen.
1
2
3
BrazePlugin braze = BrazePlugin();
braze.initialize("<BRAZE_API_KEY>", "<BRAZE_ENDPOINT>");
braze.changeUser("{some-user-id}");
1
2
BrazePlugin braze = BrazePlugin();
braze.changeUser("{some-user-id}");
Suchen Sie die Nutzer:in mit {some-user-id} im Dashboard unter Zielgruppe > Nutzer:innen suchen. Dort können Sie überprüfen, ob Sitzungs- und Gerätedaten protokolliert wurden.
Informationen zum React Native Braze SDK
Die Integration des React Native Braze SDK bietet grundlegende Analytics-Funktionen und ermöglicht die Integration von In-App-Nachrichten und Content Cards für iOS und Android mit nur einer Codebasis.
Kompatibilität mit neuer Architektur
Die folgende Mindest-SDK-Version ist mit allen Apps kompatibel, die die neue Architektur von React Native verwenden:
Ab SDK-Version 6.0.0 verwendet Braze ein React Native Turbo-Modul, das sowohl mit der neuen Architektur als auch mit der alten Bridge-Architektur kompatibel ist. Das bedeutet, dass keine zusätzliche Einrichtung erforderlich ist.

Wenn Ihre iOS-App RCTAppDelegate implementiert und unserer vorherigen AppDelegate-Einrichtung folgt, überprüfen Sie bitte die Beispiele unter Vollständige native Einrichtung, um Abstürze beim Abonnieren von Ereignissen im Turbo-Modul zu vermeiden.
Anforderungen an React- und React Native-Versionen
Braze veröffentlicht keine separaten Mindestanforderungen für React-Versionen über das hinaus, was das React Native SDK unterstützt. Verwenden Sie für die SDK-Integration React Native Version 0.71 oder höher. Die vollständige Liste der unterstützten React Native-Versionen finden Sie im React Native SDK GitHub-Repository.
Wenn Sie React, React Native oder das Braze SDK upgraden, überprüfen Sie das SDK-CHANGELOG auf Breaking Changes, bevor Sie deployen.
Integration des React Native SDK
Voraussetzungen
Informationen zu unterstützten React Native-Versionen und Upgrade-Hinweisen finden Sie unter Anforderungen an React- und React Native-Versionen.
1. Schritt: Braze-Bibliothek integrieren
1
npm install @braze/react-native-sdk
1
yarn add @braze/react-native-sdk
2. Schritt: Vollständige native Einrichtung
Wenn Ihre App Expo verwendet, lesen Sie Verwendung des Expo-Plugins. Wenn Ihre App reines React Native verwendet, lesen Sie Verwendung der React Native CLI. Wählen Sie in jedem Versions-Tab eine Einrichtungsmethode: Expo-Plugin oder React Native CLI.
Methode 1: Verwendung des Expo-Plugins
2.1 Braze Expo-Plugin installieren {#21-install-the-braze-expo-plugin}
Stellen Sie sicher, dass Sie mindestens Version 4.1.0 des Braze Expo-Plugins verwenden. Die vollständige Liste der unterstützten Versionen finden Sie im Braze Expo-Plugin-Repository.
Das folgende Code-Snippet zeigt den Befehl zur Installation des Braze Expo-Plugins:
1
npx expo install @braze/expo-plugin
2.2 Plugin zu app.json hinzufügen {#22-add-the-plugin-to-your-appjson} {#22-add-the-plugin-to-your-appjson}
Fügen Sie in Ihrer app.json das Braze Expo-Plugin hinzu. Der API-Schlüssel und der Endpunkt werden hier nicht mehr festgelegt. Stellen Sie diese zur Laufzeit über Braze.initialize() aus JavaScript bereit. Fügen Sie die folgenden optionalen Konfigurationsparameter je nach Ihren Implementierungsanforderungen hinzu:
| Methode | Typ | Beschreibung |
|---|---|---|
enableBrazeIosPush |
boolean | Nur iOS. Ob Braze zur Verwaltung von Push-Benachrichtigungen unter iOS verwendet werden soll. |
enableFirebaseCloudMessaging |
boolean | Nur Android. Ob Firebase Cloud Messaging für Push-Benachrichtigungen verwendet werden soll. |
firebaseCloudMessagingSenderId |
string | Nur Android. Ihre Firebase Cloud Messaging Sender-ID. |
sessionTimeout |
integer | Der Braze-Session-Timeout für Ihre Anwendung in Sekunden. |
enableSdkAuthentication |
boolean | Ob die SDK-Authentifizierung aktiviert werden soll. |
logLevel |
integer | Die Protokollstufe für Ihre Anwendung. Die Standardprotokollstufe ist 8 und protokolliert nur minimale Informationen. Um die ausführliche Protokollierung zum Debuggen zu aktivieren, verwenden Sie die Protokollstufe 0. |
minimumTriggerIntervalInSeconds |
integer | Das minimale Zeitintervall in Sekunden zwischen den Triggern. Die Standardeinstellung ist 30 Sekunden. |
enableAutomaticLocationCollection |
boolean | Ob die automatische Standorterfassung aktiviert ist (wenn die Nutzer:innen dies erlauben). |
enableGeofence |
boolean | Ob Geofences aktiviert sind. |
enableAutomaticGeofenceRequests |
boolean | Ob Geofence-Anfragen automatisch gestellt werden sollen. |
dismissModalOnOutsideTap |
boolean | Nur iOS. Ob eine modale In-App-Nachricht geschlossen wird, wenn die Nutzer:innen außerhalb der In-App-Nachricht klicken. |
androidHandlePushDeepLinksAutomatically |
boolean | Nur Android. Ob Push-Deeplinks automatisch vom Braze SDK verarbeitet werden sollen. |
androidPushNotificationHtmlRenderingEnabled |
boolean | Nur Android. Legt fest, ob der Textinhalt in einer Push-Benachrichtigung mit android.text.Html.fromHtml als HTML interpretiert und gerendert werden soll. |
androidNotificationAccentColor |
string | Nur Android. Legt die Akzentfarbe für Android-Benachrichtigungen fest. |
androidNotificationLargeIcon |
string | Nur Android. Legt das große Android-Benachrichtigungssymbol fest. |
androidNotificationSmallIcon |
string | Nur Android. Legt das kleine Android-Benachrichtigungssymbol fest. |
iosRequestPushPermissionsAutomatically |
boolean | Nur iOS. Ob die Nutzer:innen beim Start der App automatisch nach Push-Berechtigungen gefragt werden sollen. |
enableBrazeIosRichPush |
boolean | Nur iOS. Ob Rich-Push-Features für iOS aktiviert werden sollen. |
enableBrazeIosPushStories |
boolean | Nur iOS. Ob Braze Push Stories für iOS aktiviert werden sollen. |
iosPushStoryAppGroup |
string | Nur iOS. Die App-Gruppe, die für iOS Push Stories verwendet wird. |
iosUseUUIDAsDeviceId |
boolean | Nur iOS. Ob die Geräte-ID eine zufällig generierte UUID verwenden soll. |
iosForwardUniversalLinks |
boolean | Nur iOS. Legt fest, ob das SDK Universal Links automatisch erkennen und an die Systemmethoden weiterleiten soll (Standard: false). |
Das folgende Code-Snippet zeigt eine Beispielkonfiguration für app.json:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"expo": {
"plugins": [
[
"@braze/expo-plugin",
{
"sessionTimeout": 60,
"enableGeofence": false,
"enableBrazeIosPush": false,
"enableFirebaseCloudMessaging": false,
"firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
"androidHandlePushDeepLinksAutomatically": true,
"enableSdkAuthentication": false,
"logLevel": 0,
"minimumTriggerIntervalInSeconds": 0,
"enableAutomaticLocationCollection": false,
"enableAutomaticGeofenceRequests": false,
"dismissModalOnOutsideTap": true,
"androidPushNotificationHtmlRenderingEnabled": true,
"androidNotificationAccentColor": "#ff3344",
"androidNotificationLargeIcon": "@drawable/custom_app_large_icon",
"androidNotificationSmallIcon": "@drawable/custom_app_small_icon",
"iosRequestPushPermissionsAutomatically": false,
"enableBrazeIosPushStories": true,
"iosPushStoryAppGroup": "group.com.example.myapp.PushStories",
"iosForwardUniversalLinks": false
}
]
]
}
}
Android-Push-Benachrichtigungssymbole konfigurieren
Bei der Verwendung von androidNotificationLargeIcon und androidNotificationSmallIcon beachten Sie bitte die folgenden Best Practices für die korrekte Anzeige von Symbolen:
Platzierung und Format der Symbole
Um angepasste Symbole für Push-Benachrichtigungen mit dem Braze Expo-Plugin zu verwenden:
- Erstellen Sie Ihre Icon-Dateien gemäß den unten aufgeführten Icon-Anforderungen.
- Legen Sie diese in den nativen Android-Verzeichnissen Ihres Projekts unter
android/app/src/main/res/drawable-<density>/ab. Verwenden Sie beispielsweiseandroid/app/src/main/res/drawable-mdpi/undandroid/app/src/main/res/drawable-hdpi/. - Alternativ können Sie, wenn Sie Assets in Ihrem React Native-Verzeichnis verwalten, die app.json-Icon-Konfiguration von Expo verwenden oder ein Expo-Konfigurations-Plugin erstellen, um die Icons während der Vorbereitungsphase in die Android-Drawable-Ordner zu kopieren.
Das Braze Expo-Plugin referenziert diese Symbole mithilfe des Drawable-Ressourcensystems von Android.
Icon-Anforderungen
- Kleines Symbol: Muss eine weiße Silhouette auf transparentem Hintergrund sein (dies ist eine Anforderung der Android-Plattform).
- Großes Symbol: Kann ein Vollfarbbild sein.
- Format: Das PNG-Format wird empfohlen.
- Benennung: Verwenden Sie ausschließlich Kleinbuchstaben, Zahlen und Unterstriche (zum Beispiel
my_large_icon.png).
Konfiguration in app.json
Das folgende Code-Snippet zeigt, wie Sie Android-Benachrichtigungssymbole in app.json mit dem @drawable/-Präfix referenzieren:
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"
}
]
]
}
}

Verwenden Sie keine relativen Dateipfade (wie z. B. src/assets/images/icon.png) und fügen Sie die Dateiendung nicht hinzu, wenn Sie auf Symbole verweisen. Das Expo-Plugin erfordert das @drawable/-Präfix, um die Symbole nach dem Prebuild-Prozess korrekt in den nativen Android-Ordnern zu lokalisieren.
Funktionsweise
Das Braze Expo-Plugin referenziert Ihre Icon-Dateien aus den Android-drawable-Verzeichnissen. Wenn Sie npx expo prebuild ausführen, generiert Expo die native Android-Projektstruktur. Ihre Symbole müssen vor dem Build-Prozess in den Android-drawable-Ordnern vorhanden sein (entweder manuell platziert oder über ein Konfigurations-Plugin kopiert). Das Plugin konfiguriert dann das Braze SDK so, dass es diese Drawable-Ressourcen anhand ihrer Namen (ohne Pfad oder Erweiterung) verwendet. Aus diesem Grund ist das @drawable/-Präfix in Ihrer Konfiguration erforderlich.
Weitere Informationen zu Android-Benachrichtigungssymbolen finden Sie in den Richtlinien für Benachrichtigungssymbole von Android.
2.3 Anwendung erstellen und ausführen {#23-build-and-run-your-application} {#23-build-and-run-your-application}
Durch das Vorab-Erstellen Ihrer Anwendung werden die nativen Dateien generiert, die für die Funktion des Braze Expo-Plugins erforderlich sind.
Das folgende Code-Snippet zeigt den Befehl zum Vorab-Erstellen Ihrer Anwendung:
1
npx expo prebuild
Führen Sie Ihre Anwendung wie in der Expo-Dokumentation beschrieben aus. Wenn Sie Änderungen an den Konfigurationsoptionen vornehmen, müssen Sie die Anwendung erneut vorab erstellen und ausführen.
Methode 2: Verwendung der React Native CLI
Android einrichten
2.1 Kotlin-Gradle-Plugin hinzufügen
Das folgende Code-Snippet zeigt, wie Sie das Kotlin-Gradle-Plugin in Ihrem Top-Level-Projekt build.gradle unter buildscript > dependencies hinzufügen:
1
2
3
4
5
6
7
buildscript {
dependencies {
...
// Choose your Kotlin version
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10")
}
}
Dadurch wird Kotlin zu Ihrem Projekt hinzugefügt.
2.2 Braze SDK konfigurieren
Erstellen Sie eine braze.xml-Datei im Ordner res/values Ihres Projekts. Der API-Schlüssel und der Endpunkt werden zur Laufzeit aus JavaScript bereitgestellt und sind daher in dieser Datei nicht erforderlich. Das folgende Code-Snippet zeigt, wie Sie die verzögerte Initialisierung mit com_braze_enable_delayed_initialization aktivieren:
1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="com_braze_enable_delayed_initialization">true</bool>
</resources>

Sie können weiterhin andere native Konfigurationswerte zu braze.xml hinzufügen (wie Push, Session-Timeout und Protokollierungseinstellungen). Diese werden automatisch angewendet, wenn Braze.initialize() aus JavaScript aufgerufen wird.
Das folgende Code-Snippet zeigt die erforderlichen Berechtigungen für Ihre AndroidManifest.xml-Datei:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Ab Braze Android SDK Version 12.2.0 können Sie die Bibliothek android-sdk-location automatisch einbinden, indem Sie importBrazeLocationLibrary=true in Ihrer gradle.properties-Datei festlegen.
2.3 Sitzungs-Tracking implementieren
Die Aufrufe von openSession() und closeSession() werden automatisch verarbeitet.
Das folgende Code-Snippet zeigt, was Sie zur onCreate()-Methode Ihrer MainApplication-Klasse hinzufügen müssen:
1
2
3
4
5
6
7
8
import com.braze.BrazeActivityLifecycleCallbackListener;
@Override
public void onCreate() {
super.onCreate();
...
registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
}
1
2
3
4
5
6
7
import com.braze.BrazeActivityLifecycleCallbackListener
override fun onCreate() {
super.onCreate()
...
registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
}
2.4 Intent-Updates verarbeiten
Wenn für Ihre MainActivity android:launchMode auf singleTask festgelegt ist, zeigt das folgende Code-Snippet, was Sie zu Ihrer MainActivity-Klasse hinzufügen müssen:
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)
}
iOS einrichten
2.5 (Optional) Podfile für dynamische XCFrameworks konfigurieren
Um bestimmte Braze-Bibliotheken, wie beispielsweise BrazeUI, in eine Objective-C++-Datei zu importieren, müssen Sie die #import-Syntax verwenden. Ab Version 7.4.0 des Braze Swift SDK verfügen die Binärdateien über einen optionalen Verteilungskanal als dynamische XCFrameworks, die mit dieser Syntax kompatibel sind.
Wenn Sie diesen Verteilungskanal verwenden möchten, müssen Sie die CocoaPods-Quellen in Ihrem Podfile manuell überschreiben. Beziehen Sie sich auf das unten stehende Beispiel und ersetzen Sie {your-version} durch die entsprechende Version, die Sie importieren möchten:
1
2
3
pod 'BrazeKit', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeKit.podspec'
pod 'BrazeUI', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeUI.podspec'
pod 'BrazeLocation', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeLocation.podspec'
2.6 Pods installieren
Da React Native die Bibliotheken automatisch mit der nativen Plattform verknüpft, können Sie das SDK mithilfe von CocoaPods installieren.
Das folgende Code-Snippet zeigt, wie Sie Pods aus dem Stammordner des Projekts installieren:
1
2
3
4
5
# To install using the React Native New Architecture
cd ios && pod install
# To install using the React Native legacy architecture
cd ios && RCT_NEW_ARCH_ENABLED=0 pod install
2.7 Braze SDK konfigurieren
Verwenden Sie BrazeReactInitializer.configure in Ihrem AppDelegate, um die native Konfiguration zu registrieren. Die von Ihnen bereitgestellten Closures werden gespeichert und später angewendet, wenn Braze.initialize(apiKey, endpoint) aus JavaScript aufgerufen wird.
Das folgende Code-Snippet zeigt, wie Sie das Braze SDK am Anfang der AppDelegate.swift-Datei importieren:
1
2
import BrazeKit
import braze_react_native_sdk
Registrieren Sie in der application(_:didFinishLaunchingWithOptions:)-Methode Ihre native Konfiguration mit BrazeReactInitializer.configure. Legen Sie den API-Schlüssel oder Endpunkt hier nicht fest. Diese werden aus JavaScript über Braze.initialize() bereitgestellt.
configure-Closure: Empfängt eineBraze.Configurationund ermöglicht das Festlegen nativer Konfigurationseigenschaften (Protokollierung, Push, Sessions und mehr).postInitialization-Closure (optional): Empfängt die aktiveBraze-Instanz nach der Erstellung, für Einrichtungen, die die Instanz erfordern (z. B. Speichern einer Referenz oder Festlegen von Delegates).
Das folgende Code-Snippet zeigt eine Beispiel-AppDelegate.swift-Implementierung mit BrazeReactInitializer.configure:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
static var braze: Braze? = nil
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
BrazeReactInitializer.configure { configuration in
configuration.logger.level = .info
configuration.push.automation = true
} postInitialization: { braze in
AppDelegate.braze = braze
}
// ... React Native setup
return true
}
}
Das folgende Code-Snippet zeigt, wie Sie das Braze SDK am Anfang der AppDelegate.m-Datei importieren:
1
2
@import BrazeKit;
@import braze_react_native_sdk;
Registrieren Sie in der application:didFinishLaunchingWithOptions:-Methode Ihre native Konfiguration mit BrazeReactInitializer. Legen Sie den API-Schlüssel oder Endpunkt hier nicht fest. Diese werden aus JavaScript über Braze.initialize() bereitgestellt.
Das folgende Code-Snippet zeigt eine Beispiel-AppDelegate.m-Implementierung mit BrazeReactInitializer:
1
2
3
4
5
6
7
8
9
10
11
12
13
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[BrazeReactInitializer configure:^(BRZConfiguration *configuration) {
configuration.logger.level = BRZLoggerLevelInfo;
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initWithAutomationEnabled:YES];
} postInitialization:^(Braze *braze) {
// Store the Braze instance for later use.
}];
/* Other configuration */
return YES;
}

BrazeReactInitializer.configure() speichert nur Ihre Konfiguration. Es existiert keine Braze-Instanz, bis Braze.initialize() aus JavaScript aufgerufen wird. Rufen Sie daher nach configure() keine Braze SDK-Methoden im AppDelegate auf.
Wenn Sie Braze.initialize() erneut aufrufen, werden dieselben configure- und postInitialization-Blöcke auf die neue Braze-Instanz angewendet.
Methode 1: Verwendung des Expo-Plugins
Schritt 2.1: Braze Expo-Plugin installieren
Stellen Sie sicher, dass Sie mindestens Version 1.37.0 des Braze React Native SDK verwenden. Die vollständige Liste der unterstützten Versionen finden Sie im Braze React Native-Repository.
Das folgende Code-Snippet zeigt den Befehl zur Installation des Braze Expo-Plugins:
1
npx expo install @braze/expo-plugin
Schritt 2.2: Plugin zu app.json hinzufügen
Fügen Sie in Ihrer app.json das Braze Expo-Plugin hinzu. Sie können die folgenden Konfigurationsoptionen angeben:
| Methode | Typ | Beschreibung |
|---|---|---|
androidApiKey |
string | Erforderlich. Der API-Schlüssel für Ihre Android-Anwendung, den Sie in Ihrem Braze-Dashboard unter Einstellungen verwalten finden. |
iosApiKey |
string | Erforderlich. Der API-Schlüssel für Ihre iOS-Anwendung, den Sie in Ihrem Braze-Dashboard unter Einstellungen verwalten finden. |
baseUrl |
string | Erforderlich. Der SDK-Endpunkt für Ihre Anwendung, den Sie in Ihrem Braze-Dashboard unter Einstellungen verwalten finden. |
enableBrazeIosPush |
boolean | Nur iOS. Ob Braze zur Verwaltung von Push-Benachrichtigungen unter iOS verwendet werden soll. Eingeführt in React Native SDK v1.38.0 und Expo Plugin v0.4.0. |
enableFirebaseCloudMessaging |
boolean | Nur Android. Ob Firebase Cloud Messaging für Push-Benachrichtigungen verwendet werden soll. Eingeführt in React Native SDK v1.38.0 und Expo Plugin v0.4.0. |
firebaseCloudMessagingSenderId |
string | Nur Android. Ihre Firebase Cloud Messaging Sender-ID. Eingeführt in React Native SDK v1.38.0 und Expo Plugin v0.4.0. |
sessionTimeout |
integer | Der Braze-Session-Timeout für Ihre Anwendung in Sekunden. |
enableSdkAuthentication |
boolean | Ob die SDK-Authentifizierung aktiviert werden soll. |
logLevel |
integer | Die Protokollstufe für Ihre Anwendung. Die Standardprotokollstufe ist 8 und protokolliert nur minimale Informationen. Um die ausführliche Protokollierung zum Debuggen zu aktivieren, verwenden Sie die Protokollstufe 0. |
minimumTriggerIntervalInSeconds |
integer | Das minimale Zeitintervall in Sekunden zwischen den Triggern. Die Standardeinstellung ist 30 Sekunden. |
enableAutomaticLocationCollection |
boolean | Ob die automatische Standorterfassung aktiviert ist (wenn die Nutzer:innen dies erlauben). |
enableGeofence |
boolean | Ob Geofences aktiviert sind. |
enableAutomaticGeofenceRequests |
boolean | Ob Geofence-Anfragen automatisch gestellt werden sollen. |
dismissModalOnOutsideTap |
boolean | Nur iOS. Ob eine modale In-App-Nachricht geschlossen wird, wenn die Nutzer:innen außerhalb der In-App-Nachricht klicken. |
androidHandlePushDeepLinksAutomatically |
boolean | Nur Android. Ob Push-Deeplinks automatisch vom Braze SDK verarbeitet werden sollen. |
androidPushNotificationHtmlRenderingEnabled |
boolean | Nur Android. Legt fest, ob der Textinhalt in einer Push-Benachrichtigung mit android.text.Html.fromHtml als HTML interpretiert und gerendert werden soll. |
androidNotificationAccentColor |
string | Nur Android. Legt die Akzentfarbe für Android-Benachrichtigungen fest. |
androidNotificationLargeIcon |
string | Nur Android. Legt das große Android-Benachrichtigungssymbol fest. |
androidNotificationSmallIcon |
string | Nur Android. Legt das kleine Android-Benachrichtigungssymbol fest. |
iosRequestPushPermissionsAutomatically |
boolean | Nur iOS. Ob die Nutzer:innen beim Start der App automatisch nach Push-Berechtigungen gefragt werden sollen. |
enableBrazeIosRichPush |
boolean | Nur iOS. Ob Rich-Push-Features für iOS aktiviert werden sollen. |
enableBrazeIosPushStories |
boolean | Nur iOS. Ob Braze Push Stories für iOS aktiviert werden sollen. |
iosPushStoryAppGroup |
string | Nur iOS. Die App-Gruppe, die für iOS Push Stories verwendet wird. |
iosUseUUIDAsDeviceId |
boolean | Nur iOS. Ob die Geräte-ID eine zufällig generierte UUID verwenden soll. |
iosForwardUniversalLinks |
boolean | Nur iOS. Legt fest, ob das SDK Universal Links automatisch erkennen und an die Systemmethoden weiterleiten soll (Standard: false). Wenn aktiviert, leitet das SDK Universal Links automatisch an die Systemmethoden weiter, die unter Unterstützung von Universal Links in Ihrer App definiert sind. Eingeführt in React Native SDK v11.1.0 und Expo Plugin v3.2.0. |
Das folgende Code-Snippet zeigt eine Beispielkonfiguration für app.json:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
"expo": {
"plugins": [
[
"@braze/expo-plugin",
{
"androidApiKey": "YOUR-ANDROID-API-KEY",
"iosApiKey": "YOUR-IOS-API-KEY",
"baseUrl": "YOUR-SDK-ENDPOINT",
"sessionTimeout": 60,
"enableGeofence": false,
"enableBrazeIosPush": false,
"enableFirebaseCloudMessaging": false,
"firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
"androidHandlePushDeepLinksAutomatically": true,
"enableSdkAuthentication": false,
"logLevel": 0,
"minimumTriggerIntervalInSeconds": 0,
"enableAutomaticLocationCollection": false,
"enableAutomaticGeofenceRequests": false,
"dismissModalOnOutsideTap": true,
"androidPushNotificationHtmlRenderingEnabled": true,
"androidNotificationAccentColor": "#ff3344",
"androidNotificationLargeIcon": "@drawable/custom_app_large_icon",
"androidNotificationSmallIcon": "@drawable/custom_app_small_icon",
"iosRequestPushPermissionsAutomatically": false,
"enableBrazeIosPushStories": true,
"iosPushStoryAppGroup": "group.com.example.myapp.PushStories",
"iosForwardUniversalLinks": false
}
],
]
}
}
Android-Push-Benachrichtigungssymbole konfigurieren
Bei der Verwendung von androidNotificationLargeIcon und androidNotificationSmallIcon beachten Sie bitte die folgenden Best Practices für die korrekte Anzeige von Symbolen:
Platzierung und Format der Symbole
Um angepasste Symbole für Push-Benachrichtigungen mit dem Braze Expo-Plugin zu verwenden:
- Erstellen Sie Ihre Icon-Dateien gemäß den unten aufgeführten Icon-Anforderungen.
- Legen Sie diese in den nativen Android-Verzeichnissen Ihres Projekts unter
android/app/src/main/res/drawable-<density>/ab (zum Beispielandroid/app/src/main/res/drawable-mdpi/,drawable-hdpi/oder ähnlich). - Alternativ können Sie, wenn Sie Assets in Ihrem React Native-Verzeichnis verwalten, die app.json-Icon-Konfiguration von Expo verwenden oder ein Expo-Konfigurations-Plugin erstellen, um die Icons während der Vorbereitungsphase in die Android-Drawable-Ordner zu kopieren.
Das Braze Expo-Plugin referenziert diese Symbole mithilfe des Drawable-Ressourcensystems von Android.
Icon-Anforderungen
- Kleines Symbol: Muss eine weiße Silhouette auf transparentem Hintergrund sein (dies ist eine Anforderung der Android-Plattform).
- Großes Symbol: Kann ein Vollfarbbild sein.
- Format: Das PNG-Format wird empfohlen.
- Benennung: Verwenden Sie ausschließlich Kleinbuchstaben, Zahlen und Unterstriche (zum Beispiel
my_large_icon.png).
Konfiguration in app.json
Das folgende Code-Snippet zeigt, wie Sie Android-Benachrichtigungssymbole in app.json mit dem @drawable/-Präfix referenzieren:
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"
}
]
]
}
}

Verwenden Sie keine relativen Dateipfade (wie z. B. src/assets/images/icon.png) und fügen Sie die Dateiendung nicht hinzu, wenn Sie auf Symbole verweisen. Das Expo-Plugin erfordert das @drawable/-Präfix, um die Symbole nach dem Prebuild-Prozess korrekt in den nativen Android-Ordnern zu lokalisieren.
Funktionsweise
Das Braze Expo-Plugin referenziert Ihre Icon-Dateien aus den Android-drawable-Verzeichnissen. Wenn Sie npx expo prebuild ausführen, generiert Expo die native Android-Projektstruktur. Ihre Symbole müssen vor dem Build-Prozess in den Android-drawable-Ordnern vorhanden sein (entweder manuell platziert oder über ein Konfigurations-Plugin kopiert). Das Plugin konfiguriert dann das Braze SDK so, dass es diese Drawable-Ressourcen anhand ihrer Namen (ohne Pfad oder Erweiterung) verwendet. Aus diesem Grund ist das @drawable/-Präfix in Ihrer Konfiguration erforderlich.
Weitere Informationen zu Android-Benachrichtigungssymbolen finden Sie in den Richtlinien für Benachrichtigungssymbole von Android.
Schritt 2.3: Anwendung erstellen und ausführen
Durch das Vorab-Erstellen Ihrer Anwendung werden die nativen Dateien generiert, die für die Funktion des Braze Expo-Plugins erforderlich sind.
Das folgende Code-Snippet zeigt den Befehl zum Vorab-Erstellen Ihrer Anwendung:
1
npx expo prebuild
Führen Sie Ihre Anwendung wie in der Expo-Dokumentation beschrieben aus. Bitte beachten Sie, dass Sie die Anwendung erneut vorab erstellen und ausführen müssen, wenn Sie Änderungen an den Konfigurationsoptionen vornehmen.
Methode 2: Verwendung der React Native CLI
Android einrichten
Schritt 2.1: Kotlin-Gradle-Plugin hinzufügen
Das folgende Code-Snippet zeigt, wie Sie das Kotlin-Gradle-Plugin in Ihrem Top-Level-Projekt build.gradle unter buildscript > dependencies hinzufügen:
1
2
3
4
5
6
7
buildscript {
dependencies {
...
// Choose your Kotlin version
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10")
}
}
Dadurch wird Kotlin zu Ihrem Projekt hinzugefügt.
Schritt 2.2: Braze SDK konfigurieren
Um eine Verbindung zu Braze-Servern herzustellen, erstellen Sie eine braze.xml-Datei im Ordner res/values Ihres Projekts. Das folgende Code-Snippet zeigt eine Beispielkonfiguration für braze.xml. Ersetzen Sie den API-Schlüssel und den Endpunkt durch Ihre Werte:
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>
Das folgende Code-Snippet zeigt die erforderlichen Berechtigungen für Ihre AndroidManifest.xml-Datei:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Ab Braze Android SDK Version 12.2.0 können Sie die Bibliothek android-sdk-location automatisch einbinden, indem Sie importBrazeLocationLibrary=true in Ihrer gradle.properties-Datei festlegen.
Schritt 2.3: Sitzungs-Tracking implementieren
Die Aufrufe von openSession() und closeSession() werden automatisch verarbeitet.
Das folgende Code-Snippet zeigt, was Sie zur onCreate()-Methode Ihrer MainApplication-Klasse hinzufügen müssen:
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())
}
Schritt 2.4: Intent-Updates verarbeiten
Wenn für Ihre MainActivity android:launchMode auf singleTask festgelegt ist, zeigt das folgende Code-Snippet, was Sie zu Ihrer MainActivity-Klasse hinzufügen müssen:
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)
}
iOS einrichten
Schritt 2.5: (Optional) Podfile für dynamische XCFrameworks konfigurieren
Um bestimmte Braze-Bibliotheken, wie beispielsweise BrazeUI, in eine Objective-C++-Datei zu importieren, müssen Sie die #import-Syntax verwenden. Ab Version 7.4.0 des Braze Swift SDK verfügen die Binärdateien über einen optionalen Verteilungskanal als dynamische XCFrameworks, die mit dieser Syntax kompatibel sind.
Wenn Sie diesen Verteilungskanal verwenden möchten, müssen Sie die CocoaPods-Quellen in Ihrem Podfile manuell überschreiben. Das folgende Code-Snippet zeigt ein Beispiel für die Überschreibung. Ersetzen Sie {your-version} durch die entsprechende Version, die Sie importieren möchten:
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'
Schritt 2.6: Pods installieren
Da React Native die Bibliotheken automatisch mit der nativen Plattform verknüpft, können Sie das SDK mithilfe von CocoaPods installieren.
Das folgende Code-Snippet zeigt, wie Sie Pods aus dem Stammordner des Projekts installieren:
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
Schritt 2.7: Braze SDK konfigurieren
Das folgende Code-Snippet zeigt, wie Sie das Braze SDK am Anfang der AppDelegate.swift-Datei importieren:
1
2
import BrazeKit
import braze_react_native_sdk
Ersetzen Sie in der application(_:didFinishLaunchingWithOptions:)-Methode den API-Schlüssel und den Endpunkt durch die Werte Ihrer App. Erstellen Sie dann die Braze-Instanz mithilfe der Konfiguration und legen Sie eine statische Eigenschaft in AppDelegate an, um den Zugriff zu erleichtern.

Unser Beispiel geht von einer RCTAppDelegate-Implementierung aus, die eine Reihe von Abstraktionen im React Native-Setup bereitstellt. Wenn Sie ein anderes Setup für Ihre App verwenden, müssen Sie Ihre Implementierung entsprechend anpassen.
Das folgende Code-Snippet zeigt ein Beispiel für die AppDelegate.swift-Einrichtung:
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
Das folgende Code-Snippet zeigt, wie Sie das Braze SDK am Anfang der AppDelegate.m-Datei importieren:
1
2
#import <BrazeKit/BrazeKit-Swift.h>
#import "BrazeReactBridge.h"
Ersetzen Sie in der application:didFinishLaunchingWithOptions:-Methode den API-Schlüssel und den Endpunkt durch die Werte Ihrer App. Erstellen Sie dann die Braze-Instanz mithilfe der Konfiguration und legen Sie eine statische Eigenschaft in AppDelegate an, um den Zugriff zu erleichtern.

Unser Beispiel geht von einer RCTAppDelegate-Implementierung aus, die eine Reihe von Abstraktionen im React Native-Setup bereitstellt. Wenn Sie ein anderes Setup für Ihre App verwenden, müssen Sie Ihre Implementierung entsprechend anpassen.
Das folgende Code-Snippet zeigt ein Beispiel für die AppDelegate.m-Einrichtung:
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;
}
3. Schritt: SDK initialisieren
Das folgende Code-Snippet zeigt, wie Sie die Bibliothek in Ihrem React Native-Code importieren:
1
import Braze from "@braze/react-native-sdk";
Rufen Sie dann Braze.initialize() mit Ihrem App-Identifier-API-Schlüssel und SDK-Endpunkt auf, um die Braze-Instanz zu erstellen. Sehen Sie sich die folgenden Optionen an, um zu erfahren, wo Sie diese Methode in Ihrer App aufrufen sollten.
Standard-Initialisierung
Das folgende Code-Snippet zeigt, wie Sie das SDK beim Start Ihrer App initialisieren, indem Sie Braze.initialize() in einem useEffect aufrufen:
1
2
3
4
5
6
7
8
9
10
11
12
import React, { useEffect } from "react";
import Braze from "@braze/react-native-sdk";
const App = () => {
useEffect(() => {
Braze.initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT");
}, []);
return (
// Your app components
);
};
Verzögerte Initialisierung
Das folgende Code-Snippet zeigt, wie Sie die SDK-Initialisierung auf einen späteren Zeitpunkt in der Sitzung verschieben können – zum Beispiel nachdem die Nutzer:innen ihre Einwilligung erteilt oder sich angemeldet haben:
1
2
3
function onUserConsent() {
Braze.initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT");
}

Unter iOS werden Push-Benachrichtigungen, die vor Braze.initialize() empfangen werden, in eine Warteschlange gestellt und nach der Initialisierung verarbeitet. Unter Android werden Deeplinks aus Push-Benachrichtigungen nicht aufgelöst, solange das SDK auf die Initialisierung wartet. Wenn Ihre App auf sofortige Deeplink-Verarbeitung beim Start angewiesen ist, verwenden Sie stattdessen die Standard-Initialisierung.
Plattformspezifische API-Schlüssel
Das folgende Code-Snippet zeigt, wie Sie die Plattformerkennung verwenden, wenn Ihre Android- und iOS-Apps unterschiedliche API-Schlüssel nutzen:
1
2
3
4
5
6
7
8
9
import { Platform } from "react-native";
import Braze from "@braze/react-native-sdk";
const apiKey = Platform.select({
android: "YOUR-ANDROID-API-KEY",
ios: "YOUR-IOS-API-KEY",
}) ?? "";
Braze.initialize(apiKey, "YOUR-SDK-ENDPOINT");
Erneute Initialisierung
Sie können Braze.initialize() mehrfach aufrufen, um das SDK während einer Sitzung mit einem anderen API-Schlüssel und Endpunkt neu zu initialisieren. Jeder Aufruf beendet die vorherige Braze-Instanz und erstellt eine neue.

Alle SDK-Methodenaufrufe, die vor Braze.initialize() erfolgen, werden unter iOS ignoriert. Rufen Sie daher Braze.initialize() auf, bevor Sie andere Braze-Methoden verwenden.
Für React Native SDK 19.1.0 und früher erfolgt die native Initialisierung in Schritt 2. Importieren Sie die Bibliothek in Ihrem React Native-Code, um Braze-Methoden aufzurufen. Weitere Details finden Sie in unserem Beispielprojekt.
1
import Braze from "@braze/react-native-sdk";
4. Schritt: Integration testen (optional)
Sie können die SDK-Integration überprüfen, indem Sie die Sitzungsstatistiken im Dashboard prüfen. Wenn Sie Ihre Anwendung auf einer der beiden Plattformen ausführen, sollte eine neue Sitzung im Dashboard angezeigt werden (im Abschnitt Übersicht).
Das folgende Code-Snippet zeigt, wie Sie eine Sitzung für bestimmte Nutzer:innen in Ihrer App öffnen:
1
2
3
4
import Braze from "@braze/react-native-sdk";
Braze.initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT");
Braze.changeUser("{some-user-id}");
Suchen Sie im Dashboard unter Zielgruppe > Nutzer:innen suchen nach den Nutzer:innen mit {some-user-id}. Dort können Sie überprüfen, ob Sitzungs- und Gerätedaten protokolliert wurden.
Um Ihre SDK-Integration zu testen, zeigt das folgende Code-Snippet, wie Sie eine neue Sitzung auf einer der beiden Plattformen für Nutzer:innen starten.
1
Braze.changeUser("userId");
Das folgende Code-Snippet zeigt ein Beispiel für die Zuweisung der Nutzer-ID beim Start der App:
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>
)
Gehen Sie im Braze-Dashboard zur Nutzersuche und suchen Sie nach den Nutzer:innen mit der ID some-user-id. Dort können Sie überprüfen, ob Sitzungs- und Gerätedaten protokolliert wurden.
Nächste Schritte
Nach der Integration des Braze SDK können Sie mit der Implementierung gängiger Messaging-Features beginnen:
- Push-Benachrichtigungen: Richten Sie Push-Benachrichtigungen ein und versenden Sie diese an Ihre Nutzer:innen.
- In-App-Nachrichten: Zeigen Sie kontextuelle Nachrichten in Ihrer App an.
- Banner: Zeigen Sie persistente Banner in Ihrer App-Oberfläche an.
Integration des Roku SDK
Schritt 1: Dateien hinzufügen
Die Dateien des Braze SDK finden Sie im Verzeichnis sdk_files im Braze Roku SDK Repository.
- Fügen Sie
BrazeSDK.brszu Ihrer App im Verzeichnissourcehinzu. - Fügen Sie
BrazeTask.brsundBrazeTask.xmlzu Ihrer App in das Verzeichniscomponentshinzu.
Schritt 2: Referenzen hinzufügen
Fügen Sie einen Verweis auf BrazeSDK.brs in Ihre Hauptszene ein, indem Sie das folgende script-Element verwenden:
1
<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>
Schritt 3: Konfigurieren Sie
Legen Sie unter main.brs die Braze-Konfiguration auf dem globalen Knoten fest:
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})
Den SDK-Endpunkt und den API-Schlüssel können Sie dem Braze-Dashboard entnehmen.
Schritt 4: Braze initialisieren
Initialisieren Sie die Braze-Instanz:
1
2
m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
Optionale Konfigurationen
Protokollieren
Um Ihre Braze-Integration zu debuggen, können Sie die Roku Debug-Konsole für Braze-Protokolle anzeigen. Weitere Informationen finden Sie im Artikel Debugging-Code von Roku Developers.
Über das Unity Braze SDK
Eine vollständige Liste der Typen, Funktionen, Variablen und mehr finden Sie in der Unity-Deklarationsdatei. Und wenn Sie Unity für iOS bereits manuell integriert haben, können Sie stattdessen zu einer automatisierten Integration wechseln.
Integration des Unity SDK
Voraussetzungen
Bevor Sie beginnen, überprüfen Sie, ob Ihre Umgebung von der neuesten Braze Unity SDK-Version unterstützt wird.
1. Schritt: Wählen Sie Ihr Braze Unity-Paket
Das Braze .unitypackage bündelt native Bindings für die Plattformen Android und iOS sowie eine C#-Schnittstelle.
Auf der Braze Unity Releases-Seite stehen mehrere Braze Unity-Pakete zum Download zur Verfügung:
Appboy.unitypackage- Dieses Paket bündelt die Braze Android- und iOS-SDKs sowie die SDWebImage-Abhängigkeit für das iOS-SDK, die für die ordnungsgemäße Funktionalität der In-App-Nachrichten und Content-Cards-Features von Braze auf iOS erforderlich ist. Das SDWebImage-Framework wird zum Herunterladen und Anzeigen von Bildern, einschließlich GIFs, verwendet. Wenn Sie die volle Funktionalität von Braze nutzen möchten, laden Sie dieses Paket herunter und importieren Sie es.
Appboy-nodeps.unitypackage- Dieses Paket ähnelt dem
Appboy.unitypackage, mit der Ausnahme, dass das SDWebImage-Framework nicht enthalten ist. Dieses Paket ist nützlich, wenn Sie das SDWebImage-Framework nicht in Ihrer iOS-App verwenden möchten.
- Dieses Paket ähnelt dem

Ab Unity 2.6.0 benötigt das gebündelte Braze Android SDK-Artefakt AndroidX-Abhängigkeiten. Wenn Sie zuvor ein jetified unitypackage verwendet haben, können Sie bedenkenlos auf das entsprechende unitypackage umsteigen.
Wenn Android-Builds mit der Meldung „This project uses AndroidX dependencies, but the ‘android.useAndroidX’ property is not enabled“ fehlschlagen, aktivieren Sie Custom Gradle Properties Template in Ihren Unity Publishing Settings. Öffnen Sie dann Assets/Plugins/Android/gradleTemplate.properties und setzen Sie android.useAndroidX=true. Ein funktionierendes Template finden Sie in der Braze Unity-Beispiel-App und deren gradleTemplate.properties-Datei.
Das Braze .unitypackage bündelt native Bindings für die Plattformen Android und iOS sowie eine C#-Schnittstelle.
Das Braze Unity-Paket steht auf der Braze Unity Releases-Seite mit zwei Integrationsoptionen zum Download bereit:
- Nur
Appboy.unitypackage- Dieses Paket bündelt die Braze Android- und iOS-SDKs ohne zusätzliche Abhängigkeiten. Mit dieser Integrationsmethode funktionieren die In-App-Nachrichten und Content-Cards-Features von Braze auf iOS nicht ordnungsgemäß. Wenn Sie die volle Funktionalität von Braze ohne angepassten Code nutzen möchten, verwenden Sie stattdessen die unten stehende Option.
- Um diese Integrationsoption zu nutzen, stellen Sie sicher, dass das Kästchen neben
Import SDWebImage dependencyin der Unity-UI unter „Braze Configuration“ deaktiviert ist.
Appboy.unitypackagemitSDWebImage- Diese Integrationsoption bündelt die Braze Android- und iOS-SDKs sowie die SDWebImage-Abhängigkeit für das iOS-SDK, die für die ordnungsgemäße Funktionalität der In-App-Nachrichten und Content-Cards-Features von Braze auf iOS erforderlich ist. Das
SDWebImage-Framework wird zum Herunterladen und Anzeigen von Bildern, einschließlich GIFs, verwendet. Wenn Sie die volle Funktionalität von Braze nutzen möchten, laden Sie dieses Paket herunter und importieren Sie es. - Um
SDWebImageautomatisch zu importieren, müssen Sie das Kästchen nebenImport SDWebImage dependencyin der Unity-UI unter „Braze Configuration“ aktivieren.
- Diese Integrationsoption bündelt die Braze Android- und iOS-SDKs sowie die SDWebImage-Abhängigkeit für das iOS-SDK, die für die ordnungsgemäße Funktionalität der In-App-Nachrichten und Content-Cards-Features von Braze auf iOS erforderlich ist. Das

Um zu prüfen, ob Sie die SDWebImage-Abhängigkeit für Ihr iOS-Projekt benötigen, besuchen Sie die iOS In-App-Nachricht-Dokumentation.
2. Schritt: Paket importieren
Importieren Sie das Paket im Unity-Editor in Ihr Unity-Projekt, indem Sie zu Assets > Import Package > Custom Package navigieren. Klicken Sie anschließend auf Import.
Alternativ folgen Sie den Anweisungen zum Importieren von Unity-Assetpaketen, um eine detailliertere Anleitung zum Importieren von angepassten Unity-Paketen zu erhalten.

Wenn Sie nur das iOS- oder Android-Plugin importieren möchten, heben Sie die Auswahl des Unterverzeichnisses Plugins/Android oder Plugins/iOS auf, wenn Sie das Braze .unitypackage importieren.
Importieren Sie das Paket im Unity-Editor in Ihr Unity-Projekt, indem Sie zu Assets > Import Package > Custom Package navigieren. Klicken Sie anschließend auf Import.
Alternativ folgen Sie den Anweisungen zum Importieren von Unity-Assetpaketen, um eine detailliertere Anleitung zum Importieren von angepassten Unity-Paketen zu erhalten.

Wenn Sie nur das iOS- oder Android-Plugin importieren möchten, heben Sie die Auswahl des Unterverzeichnisses Plugins/Android oder Plugins/iOS auf, wenn Sie das Braze .unitypackage importieren.
3. Schritt: SDK konfigurieren
Schritt 3.1: AndroidManifest.xml konfigurieren
Konfigurieren Sie AndroidManifest.xml, damit das Braze SDK ordnungsgemäß funktioniert. Wenn Ihre App keine AndroidManifest.xml hat, können Sie das folgende Template als Vorlage verwenden. Wenn Sie bereits eine AndroidManifest.xml haben, stellen Sie sicher, dass die folgenden fehlenden Abschnitte zu Ihrer bestehenden AndroidManifest.xml hinzugefügt werden.
- Gehen Sie in das Verzeichnis
Assets/Plugins/Android/und öffnen Sie Ihre DateiAndroidManifest.xml. Dies ist der Standardspeicherort im Unity-Editor. - Fügen Sie in Ihrer
AndroidManifest.xmldie erforderlichen Berechtigungen und Activities aus dem folgenden Template hinzu. - Wenn Sie fertig sind, sollte Ihre
AndroidManifest.xmlnur eine einzige Activity mit"android.intent.category.LAUNCHER"enthalten.
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>

Alle in Ihrer AndroidManifest.xml-Datei registrierten Activity-Klassen sollten vollständig in das Braze Android SDK integriert sein, da Ihre Analytics sonst nicht erfasst werden. Wenn Sie Ihre eigene Activity-Klasse hinzufügen, stellen Sie sicher, dass Sie den Braze Unity-Player erweitern, um dies zu verhindern.
Schritt 3.2: AndroidManifest.xml mit Ihrem Paketnamen aktualisieren
Um Ihren Paketnamen zu finden, klicken Sie auf File > Build Settings > Player Settings > Android Tab.

In Ihrer AndroidManifest.xml sollten alle Instanzen von REPLACE_WITH_YOUR_PACKAGE_NAME durch Ihren Package Name aus dem vorherigen Schritt ersetzt werden.
Schritt 3.3: Gradle-Abhängigkeiten hinzufügen
Um Gradle-Abhängigkeiten zu Ihrem Unity-Projekt hinzuzufügen, aktivieren Sie zunächst „Custom Main Gradle Template“ in Ihren Publishing Settings. Dadurch wird eine Template-Gradle-Datei erstellt, die Ihr Projekt verwenden wird. Eine Gradle-Datei ist für das Setzen von Abhängigkeiten und andere Projekteinstellungen zur Build-Zeit zuständig. Weitere Informationen finden Sie in der Braze Unity-Beispiel-App unter mainTemplate.gradle.
Die folgenden Abhängigkeiten sind erforderlich:
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'
Sie können diese Abhängigkeiten auch mit dem External Dependency Manager festlegen.
Schritt 3.4: Unity-Android-Integration automatisieren
Braze bietet eine native Unity-Lösung für die Automatisierung der Unity-Android-Integration.
- Öffnen Sie im Unity-Editor die Braze-Konfigurationseinstellungen, indem Sie zu Braze > Braze Configuration navigieren.
- Aktivieren Sie das Kontrollkästchen Automate Unity Android Integration.
- Geben Sie im Feld Braze API Key den API-Schlüssel Ihrer Anwendung ein, den Sie im Braze-Dashboard unter Einstellungen verwalten finden.

Diese automatische Integration sollte nicht mit einer manuell erstellten braze.xml-Datei verwendet werden, da die Konfigurationswerte bei der Projekterstellung in Konflikt geraten können. Wenn Sie eine manuelle braze.xml-Datei benötigen, deaktivieren Sie die automatische Integration.
Schritt 3.1: API-Schlüssel festlegen
Braze bietet eine native Unity-Lösung für die Automatisierung der Unity-iOS-Integration. Diese Lösung modifiziert das erstellte Xcode-Projekt mit Unitys PostProcessBuildAttribute und erstellt eine Unterklasse des UnityAppController mithilfe des Makros IMPL_APP_CONTROLLER_SUBCLASS.
- Öffnen Sie im Unity-Editor die Braze-Konfigurationseinstellungen, indem Sie zu Braze > Braze Configuration navigieren.
- Aktivieren Sie das Kontrollkästchen Automate Unity iOS Integration.
- Geben Sie im Feld Braze API Key den API-Schlüssel Ihrer Anwendung ein, den Sie unter Einstellungen verwalten finden.

Wenn Ihre Anwendung bereits eine andere UnityAppController-Unterklasse verwendet, müssen Sie die Implementierung Ihrer Unterklasse mit AppboyAppDelegate.mm zusammenführen.
Unity-Paket anpassen
1. Schritt: Repository klonen
Klonen Sie in Ihrem Terminal das Braze Unity SDK GitHub-Repository und navigieren Sie dann zu diesem Ordner:
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
2. Schritt: Paket aus dem Repository exportieren
Starten Sie zunächst Unity und lassen Sie es im Hintergrund laufen. Führen Sie dann im Stammverzeichnis des Repositorys den folgenden Befehl aus, um das Paket nach braze-unity-sdk/unity-package/ zu exportieren.
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

Wenn nach der Ausführung dieser Befehle Probleme auftreten, lesen Sie Unity: Befehlszeilenargumente.
3. Schritt: Paket in Unity importieren
- Importieren Sie in Unity das gewünschte Paket in Ihr Unity-Projekt, indem Sie zu Assets > Import Package > Custom Package navigieren.
- Falls es Dateien gibt, die Sie nicht importieren möchten, deaktivieren Sie diese jetzt.
- Passen Sie das exportierte Unity-Paket an, das sich unter
Assets/Editor/Build.csbefindet.
Zu einer automatisierten Integration wechseln (nur Swift)
Um die Vorteile der automatisierten iOS-Integration des Braze Unity SDK zu nutzen, befolgen Sie diese Schritte für den Übergang von einer manuellen zu einer automatisierten Integration.
- Entfernen Sie den gesamten Braze-bezogenen Code aus der
UnityAppController-Unterklasse Ihres Xcode-Projekts. - Entfernen Sie die Braze iOS-Bibliotheken aus Ihrem Unity- oder Xcode-Projekt (z. B.
Appboy_iOS_SDK.frameworkundSDWebImage.framework). - Importieren Sie das Braze Unity-Paket erneut in Ihr Projekt. Eine vollständige Anleitung finden Sie unter 2. Schritt: Paket importieren.
- Legen Sie Ihren API-Schlüssel erneut fest. Eine vollständige Anleitung finden Sie unter Schritt 3.1: API-Schlüssel festlegen.
Optionale Konfigurationen
Ausführliche Protokollierung
Um die ausführliche Protokollierung im Unity-Editor zu aktivieren, gehen Sie wie folgt vor:
- Öffnen Sie die Braze-Konfigurationseinstellungen, indem Sie zu Braze > Braze Configuration navigieren.
- Klicken Sie auf das Dropdown-Menü Show Braze Android Settings.
- Geben Sie im Feld SDK Log Level den Wert „0“ ein.
Prime 31-Kompatibilität
Um das Braze Unity-Plugin mit Prime31-Plugins zu verwenden, bearbeiten Sie die AndroidManifest.xml Ihres Projekts, um die mit Prime31 kompatiblen Activity-Klassen zu verwenden. Ändern Sie alle Referenzen von
com.braze.unity.BrazeUnityPlayerActivity zu com.braze.unity.prime31compatible.BrazeUnityPlayerActivity
Amazon Device Messaging (ADM)
Braze unterstützt die Integration von ADM Push in Unity-Apps. Wenn Sie ADM Push integrieren möchten, erstellen Sie eine Datei namens api_key.txt, die Ihren ADM-API-Schlüssel enthält, und legen Sie sie im Ordner Plugins/Android/assets/ ab. Weitere Informationen zur Integration von ADM mit Braze finden Sie in unserer Anleitung zur ADM-Push-Integration.
Braze Unity-Player erweitern (nur Android)
In der mitgelieferten Beispieldatei AndroidManifest.xml ist eine Activity-Klasse registriert: BrazeUnityPlayerActivity. Diese Klasse ist in das Braze SDK integriert und erweitert UnityPlayerActivity um Sitzungsverarbeitung, In-App-Nachricht-Registrierung, Push-Benachrichtigungs-Analytics-Protokollierung und mehr. Weitere Informationen zur Erweiterung der Klasse UnityPlayerActivity finden Sie in der Unity-Dokumentation.
Wenn Sie Ihre eigene angepasste UnityPlayerActivity in einem Bibliotheks- oder Plugin-Projekt erstellen, müssen Sie unsere BrazeUnityPlayerActivity erweitern, um Ihre angepasste Funktionalität mit Braze zu integrieren. Bevor Sie mit der Erweiterung von BrazeUnityPlayerActivity beginnen, befolgen Sie unsere Anweisungen zur Integration von Braze in Ihr Unity-Projekt.
- Fügen Sie das Braze Android SDK als Abhängigkeit zu Ihrem Bibliotheks- oder Plugin-Projekt hinzu, wie in den Anweisungen zur Braze Android SDK-Integration beschrieben.
- Integrieren Sie unsere Unity-
.aar-Datei, die unsere Unity-spezifische Funktionalität enthält, in Ihr Android-Bibliotheksprojekt, das Sie für Unity erstellen. Dieappboy-unity.aarist in unserem öffentlichen Repository verfügbar. Nachdem unsere Unity-Bibliothek erfolgreich integriert wurde, ändern Sie IhreUnityPlayerActivity, umBrazeUnityPlayerActivityzu erweitern. - Exportieren Sie Ihr Bibliotheks- oder Plugin-Projekt und legen Sie es wie gewohnt in
/<your-project>/Assets/Plugins/Androidab. Fügen Sie keinen Braze-Quellcode in Ihre Bibliothek oder Ihr Plugin ein, da dieser bereits in/<your-project>/Assets/Plugins/Androidvorhanden ist. - Bearbeiten Sie Ihre
/<your-project>/Assets/Plugins/Android/AndroidManifest.xml, um IhreBrazeUnityPlayerActivity-Unterklasse als Hauptaktivität anzugeben.
Sie sollten nun in der Lage sein, eine .apk aus der Unity IDE zu erstellen, die vollständig in Braze integriert ist und Ihre angepasste UnityPlayerActivity-Funktionalität enthält.
Fehlerbehebung
Fehler: „File could not be read“
Fehler wie die folgenden können Sie getrost ignorieren. Apple-Software verwendet eine proprietäre PNG-Erweiterung namens CgBI, die von Unity nicht erkannt wird. Diese Fehler haben keinen Einfluss auf Ihren iOS-Build oder die korrekte Anzeige der zugehörigen Bilder im Braze-Bundle.
1
Could not create texture from Assets/Plugins/iOS/AppboyKit/Appboy.bundle/...png: File could not be read
Integration des .NET MAUI SDK
Durch die Integration des Braze .NET MAUI (ehemals Xamarin) SDK erhalten Sie grundlegende Analytics-Funktionen sowie funktionierende In-App-Nachrichten, mit denen Sie Ihr Engagement mit den Nutzer:innen steigern können.
Voraussetzungen
Bevor Sie die .NET MAUI Braze SDK-Integration durchführen können, stellen Sie bitte sicher, dass Sie die folgenden Anforderungen erfüllen:
- Ab
version 3.0.0erfordert dieses SDK die Verwendung von .NET 6+ und entfernt die Unterstützung für Projekte, die das Xamarin-Framework verwenden. - Ab
version 4.0.0hat dieses SDK die Unterstützung für Xamarin und Xamarin.Forms eingestellt und die Unterstützung für .NET MAUI hinzugefügt. Siehe Microsofts Richtlinie über das Supportende für Xamarin.
1. Schritt: .NET MAUI-Bindung herunterladen
Eine .NET MAUI-Bindung ermöglicht die Verwendung nativer Bibliotheken in .NET MAUI-Apps. Die Implementierung eines Bindings besteht darin, eine C#-Schnittstelle zur Bibliothek zu erstellen und diese Schnittstelle dann in Ihrer Anwendung zu verwenden. Siehe die .NET MAUI-Dokumentation. Es gibt zwei Möglichkeiten, das Braze SDK Binding einzuschließen: mit NuGet oder durch Kompilieren aus der Quelle.
Die einfachste Methode der Integration besteht darin, sich das Braze SDK aus dem zentralen NuGet.org-Repository zu holen. Klicken Sie in der Seitenleiste von Visual Studio mit der rechten Maustaste auf den Ordner Packages und dann auf Add Packages.... Suchen Sie nach „Braze“ und installieren Sie das Paket BrazePlatform.BrazeAndroidBinding in Ihr Projekt.
Um die Standortdienste und Geofences von Braze nutzen zu können, installieren Sie bitte auch das Paket BrazePlatform.BrazeAndroidLocationBinding.
Die zweite Methode besteht darin, die Binding-Quelle einzubeziehen. Unter appboy-component/src/androidnet6 finden Sie unseren Binding-Quellcode. Wenn Sie in Ihrer .NET MAUI-Anwendung eine Projektreferenz zu BrazeAndroidBinding.csproj hinzufügen, wird das Binding mit Ihrem Projekt erstellt und Sie erhalten Zugriff auf das Braze Android SDK.
Um die Standortdienste und Geofences von Braze zu nutzen, fügen Sie bitte auch eine Projektreferenz zu BrazeAndroidLocationBinding.csproj hinzu, die unter appboy-component/src/androidnet6/BrazeAndroidLocationBinding zu finden ist.

Die iOS-Bindungen für das .NET MAUI SDK Version 4.0.0 und höher verwenden das Braze Swift SDK, während frühere Versionen das ältere AppboyKit SDK verwenden.
Eine .NET MAUI-Bindung ermöglicht die Verwendung nativer Bibliotheken in .NET MAUI-Apps. Die Implementierung eines Bindings besteht darin, eine C#-Schnittstelle zur Bibliothek zu erstellen und diese Schnittstelle dann in Ihrer Anwendung zu verwenden. Es gibt zwei Möglichkeiten, das Braze SDK Binding einzuschließen: mit NuGet oder durch Kompilieren aus der Quelle.
Die einfachste Methode der Integration besteht darin, sich das Braze SDK aus dem zentralen NuGet.org-Repository zu holen. Klicken Sie in der Seitenleiste von Visual Studio mit der rechten Maustaste auf den Ordner Packages und dann auf Add Packages.... Suchen Sie nach „Braze“ und installieren Sie die neuesten .NET MAUI iOS NuGet-Pakete: Braze.iOS.BrazeKit, Braze.iOS.BrazeUI und Braze.iOS.BrazeLocation in Ihrem Projekt.
Wir stellen auch die Pakete der Kompatibilitätsbibliotheken zur Verfügung: Braze.iOS.BrazeKitCompat und Braze.iOS.BrazeUICompat, um Ihnen die Migration zu .NET MAUI zu erleichtern.
Die zweite Methode besteht darin, die Binding-Quelle einzubeziehen. Unter appboy-component/src/iosnet6 finden Sie unseren Binding-Quellcode. Wenn Sie in Ihrer .NET MAUI-Anwendung eine Projektreferenz zu BrazeiOSBinding.csproj hinzufügen, wird das Binding mit Ihrem Projekt erstellt und Sie erhalten Zugriff auf das Braze iOS SDK. Stellen Sie sicher, dass BrazeiOSBinding.csproj im Ordner „Referenzen“ Ihres Projekts angezeigt wird.
2. Schritt: Konfigurieren Sie Ihre Braze-Instanz
Schritt 2.1: Konfigurieren Sie das Braze SDK in Braze.xml
Nachdem die Bibliotheken nun integriert wurden, müssen Sie eine Braze.xml-Datei im Resources/values-Ordner Ihres Projekts erstellen. Der Inhalt dieser Datei sollte dem folgenden Code-Snippet ähneln:

Stellen Sie sicher, dass Sie YOUR_API_KEY durch den API-Schlüssel ersetzen, den Sie unter Einstellungen > API-Schlüssel im Braze-Dashboard finden.
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>
Wenn Sie den Quellcode des Bindings manuell einbinden, entfernen Sie <item>NUGET</item> aus Ihrem Code.

Ein Beispiel für Braze.xml finden Sie in unserer Android MAUI Beispiel-App.
Schritt 2.2: Erforderliche Berechtigungen zum Android-Manifest hinzufügen
Nachdem Sie den API-Schlüssel hinzugefügt haben, müssen Sie die folgenden Berechtigungen zur AndroidManifest.xml-Datei hinzufügen:
1
<uses-permission android:name="android.permission.INTERNET" />
Ein Beispiel für Ihre AndroidManifest.xml finden Sie in der Android MAUI Beispielanwendung.
Schritt 2.3: Tracking von Nutzer:innen-Sitzungen und Registrierung für In-App-Nachrichten
Um das Tracking von Nutzer:innen-Sitzungen zu aktivieren und Ihre App für In-App-Nachrichten zu registrieren, fügen Sie den folgenden Aufruf in die OnCreate()-Lebenszyklus-Methode der Klasse Application in Ihrer App ein:
1
RegisterActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
Wenn Sie Ihre Braze-Instanz einrichten, fügen Sie das folgende Snippet hinzu, um Ihre Instanz zu konfigurieren:

Stellen Sie sicher, dass Sie YOUR_API_KEY durch den API-Schlüssel ersetzen, den Sie unter Einstellungen > API-Schlüssel im Braze-Dashboard finden.
1
2
3
var configuration = new BRZConfiguration("YOUR_API_KEY", "YOUR_ENDPOINT");
configuration.Api.AddSDKMetadata(new[] { BRZSDKMetadata.Xamarin });
braze = new Braze(configuration);
Siehe die Datei App.xaml.cs in der iOS MAUI Beispielanwendung.
3. Schritt: Testen Sie die Integration
Jetzt können Sie Ihre Anwendung starten und sehen, wie die Sitzungen im Braze-Dashboard protokolliert werden (zusammen mit Geräteinformationen und anderen Analytics). Eine ausführlichere Erläuterung der Best Practices für die grundlegende SDK-Integration finden Sie in der Anleitung zur Android-Integration.
Jetzt können Sie Ihre Anwendung starten und sehen, wie die Sitzungen im Braze-Dashboard protokolliert werden. Eine ausführlichere Erläuterung der Best Practices für die grundlegende SDK-Integration finden Sie in der Anleitung zur iOS-Integration.

Unsere derzeitige öffentliche .NET MAUI-Bindung für das iOS SDK stellt keine Verbindung zum iOS Facebook SDK her (Verknüpfung von Social-Daten) und umfasst nicht das Senden des Identifier for Advertisers (IDFA) an Braze.
Integration der ChatGPT-App
Einrichtung
Schritt 1: Die Braze-Integrationsdatei herunterladen
Bitte kopieren Sie diebraze.jsDatei aus unserem ChatGPT-Apps-Integrations-Repository in Ihr Projekt. Diese Datei enthält alle erforderlichen Konfigurations- und Hilfsfunktionen für das Braze SDK.
Schritt 2: Installieren Sie die Abhängigkeiten.
Installieren Sie unser Internet-SDK, um die aktuellsten Features von Braze zu nutzen:
Für die clientseitige Integration:
1
npm install @braze/web-sdk
Implementierung
Es gibt zwei Möglichkeiten für die Integration von Braze in Ihre ChatGPT-App je nach Ihrem Anwendungsfall:
Clientseitige Integration (angepasste Widgets)

Empfohlener Ansatz: Diese Methode ermöglicht umfangreiche Messaging-Erlebnisse und Realtime-Tracking von Benutzerinteraktionen innerhalb Ihrer ChatGPT-App-Widgets.
Um Braze-Nachrichten anzuzeigen und Benutzerinteraktionen innerhalb Ihrer angepassten ChatGPT-App-Widgets zu verfolgen, verwenden Sie bitte die Web-SDK-Integration. Ein vollständiges Beispiel für das Messaging finden Sie in unserem Beispiel-Repository hier.
Widget-Metadaten konfigurieren
Fügen Sie die folgenden Metadaten zu Ihrer MCP-Serverdatei hinzu, um Braze-Domains zulässig zu machen. Achten Sie dabei darauf, die CDN-Domain entsprechend Ihrer Region zu aktualisieren:
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"
],
}
Ersetzen Sie YOUR-SDK-ENDPOINTdies bitte durch Ihren tatsächlichen Braze SDK-Endpunkt.
Richten Sie den useBraze-Hook ein.
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
);
}
Braze-Content-Cards anzeigen
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();
}
}, []);
Widget-Ereignisse verfolgen
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"
});
};
Serverseitige Integration (MCP-Server)
Sollten Sie auch eine serverseitige Integration für Messaging-Funktionen auf Ihrem MCP-Server benötigen, wenden Sie sich bitte an [email protected]. Für das Tracking von Ereignissen und Käufen von Ihrem MCP-Server verwenden Sie bitte unsere REST API.
Über das Braze Vega SDK
Mit dem Braze Vega SDK können Sie Analytics-Daten erfassen und Ihren Nutzer:innen umfangreiche In-App-Nachrichten anzeigen. Die meisten Methoden im Braze Vega SDK sind asynchron und geben Promises zurück, die abgewartet oder aufgelöst werden sollten.
Integration des Braze Vega SDK
1. Schritt: Installieren Sie die Braze-Bibliothek
Installieren Sie das Braze Vega SDK mit Ihrem bevorzugten Paketmanager.
Falls Ihr Projekt NPM verwendet, können Sie das Braze Vega SDK als Abhängigkeit hinzufügen.
1
npm install @braze/vega-sdk --save
Nach der Installation können Sie die benötigten Methoden importieren:
1
import { initialize, changeUser, openSession } from "@braze/vega-sdk";
Falls Ihr Projekt Yarn verwendet, können Sie das Braze Vega SDK als Abhängigkeit hinzufügen.
1
yarn add @braze/vega-sdk
Nach der Installation können Sie die benötigten Methoden importieren:
1
import { initialize, changeUser, openSession } from "@braze/vega-sdk";
2. Schritt: Initialisieren Sie das SDK
Nachdem Sie das Braze Vega SDK zu Ihrem Projekt hinzugefügt haben, initialisieren Sie die Bibliothek mit dem API-Schlüssel und der SDK-Endpunkt-URL, die Sie in Ihrem Braze-Dashboard unter Settings > App Settings finden.

Sie müssen das changeUser-Promise abwarten oder auflösen, bevor Sie andere Braze-Methoden aufrufen, da sonst Events und Attribute möglicherweise für den falschen Nutzer bzw. die falsche Nutzerin festgelegt werden.
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
);
};

Anonyme Nutzer:innen können zu Ihrer MAU-Zählung hinzugerechnet werden. Daher sollten Sie das SDK gegebenenfalls bedingt laden oder initialisieren, um diese Nutzer:innen von der MAU-Zählung auszuschließen.
Optionale Konfigurationen
Protokollierung
Sie können die SDK-Protokollierung aktivieren, um die Fehlersuche und Fehlerbehebung zu unterstützen. Es gibt mehrere Möglichkeiten, die Protokollierung zu aktivieren.
Protokollierung während der Initialisierung aktivieren
Übergeben Sie enableLogging: true an initialize(), um Debugging-Nachrichten in der Konsole zu protokollieren:
1
2
3
initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
enableLogging: true
});

Grundlegende Protokolle sind für alle Nutzer:innen sichtbar. Erwägen Sie daher, die Protokollierung zu deaktivieren, bevor Sie Ihren Code für die Produktion freigeben.
Protokollierung nach der Initialisierung aktivieren
Verwenden Sie toggleLogging(), um die SDK-Protokollierung nach der Initialisierung zu aktivieren oder zu deaktivieren:
1
2
3
4
import { toggleLogging } from "@braze/vega-sdk";
// Enable logging
toggleLogging();
Angepasste Protokollierung
Verwenden Sie setLogger(), um eine angepasste Logger-Funktion bereitzustellen und so mehr Kontrolle über die Verarbeitung von SDK-Protokollen zu erhalten:
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
});
Konfigurationsoptionen
Sie können zusätzliche Konfigurationsoptionen an initialize() übergeben, um das Verhalten des SDK anzupassen:
1
2
3
4
5
await initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
sessionTimeoutInSeconds: 60, // Configure session timeout (default is 1800 seconds)
appVersionNumber: "1.2.3.4", // Set your app version
enableLogging: true, // Enable SDK logging
});
Upgraden des SDK
Wenn Sie das Braze Vega SDK über NPM oder Yarn referenzieren, können Sie auf die neueste Version upgraden, indem Sie ein Update für Ihre Paketabhängigkeit durchführen:
1
2
3
npm update @braze/vega-sdk
# or, using yarn:
yarn upgrade @braze/vega-sdk
Testen Sie Ihre Integration
Um zu überprüfen, ob Ihre SDK-Integration ordnungsgemäß funktioniert:
- Initialisieren Sie das SDK mit
enableLogging: true, um Debug-Nachrichten in der Konsole anzuzeigen. - Stellen Sie sicher, dass Sie
await changeUser()aufrufen, bevor Sie andere SDK-Methoden verwenden. - Rufen Sie
await openSession()auf, um eine Sitzung zu starten. - Überprüfen Sie in Ihrem Braze-Dashboard unter Overview, ob die Sitzungsdaten erfasst werden.
- Testen Sie die Protokollierung eines angepassten Events und überprüfen Sie, ob es in Ihrem Dashboard angezeigt wird.

Verwenden Sie bei der QA Ihrer SDK-Integration den SDK-Debugger, um Probleme zu beheben, ohne die ausführliche Protokollierung für Ihre App aktivieren zu müssen.