In-App-Nachrichten mit angepasstem HTML
Unsere Standard-In-App-Nachrichten können zwar auf vielfältige Weise angepasst werden, aber mit Nachrichten, die mit HTML, CSS und JavaScript entworfen und erstellt werden, erhalten Sie noch mehr Kontrolle über das Erscheinungsbild Ihrer Campaigns. Mit etwas einfacher Gestaltung können Sie angepasste Funktionalität und Branding freischalten, die all Ihren Anforderungen entsprechen.
Dieser Nachrichtentyp ist im traditionellen Editor verfügbar.
Funktionsweise
HTML-In-App-Nachrichten ermöglichen eine größere Kontrolle über das Erscheinungsbild einer Nachricht, einschließlich der folgenden Möglichkeiten:
- Angepasste Schriftarten und Stile
- Videos
- Mehrere Bilder
- On-Click-Verhalten
- Interaktive Komponenten
- Angepasste Animationen
Angepasste HTML-Nachrichten können die Methoden der JavaScript Bridge verwenden, um Ereignisse zu protokollieren, angepasste Attribute festzulegen, die Nachricht zu schließen und vieles mehr! Schauen Sie sich unser GitHub-Repository an, das detaillierte Anleitungen zur Verwendung und Anpassung von HTML-In-App-Nachrichten für Ihre Anforderungen enthält, sowie eine Reihe von HTML5-In-App-Nachrichten-Templates, die Ihnen den Einstieg erleichtern.

Um HTML-In-App-Nachrichten über das Web-SDK zu aktivieren, müssen Sie die Initialisierungsoption allowUserSuppliedJavascript an Braze übergeben: zum Beispiel braze.initialize('YOUR-API_KEY', {allowUserSuppliedJavascript: true}). Dies geschieht aus Sicherheitsgründen, da HTML-In-App-Nachrichten JavaScript ausführen können, weshalb ein:e Website-Administrator:in sie aktivieren muss.
Rendering-Umgebungen
Angepasste HTML-In-App-Nachrichten werden im Internet direkt im Browser gerendert, auf iOS und Android jedoch innerhalb einer plattformspezifischen WebView. Da jede Umgebung eine andere Rendering-Engine verwendet, können dasselbe HTML und CSS auf verschiedenen Plattformen leichte visuelle Unterschiede aufweisen, insbesondere bei Spaltenlayouts, Schriftarten und Abständen.
Um plattformübergreifende Unterschiede zu minimieren:
- Verwenden Sie explizite CSS-Werte, anstatt sich auf Browser-Standardwerte zu verlassen
- Fügen Sie ein Viewport-Meta-Tag ein (zum Beispiel
<meta name="viewport" content="width=device-width, initial-scale=1">) - Testen Sie auf echten Geräten mit Testsendungen
Zeichenkodierung
Wenn Sie angepasste HTML-In-App-Nachrichten mit Sonderzeichen erstellen – wie kyrillischer Schrift, Zeichen mit Akzenten oder anderem Nicht-ASCII-Text – fügen Sie die UTF-8-Kodierung in Ihr HTML ein, um eine korrekte Darstellung sicherzustellen. Ohne UTF-8-Kodierung können diese Zeichen in der Webview fehlerhaft oder gar nicht angezeigt werden.
Um die UTF-8-Kodierung zu aktivieren, fügen Sie das folgende Meta-Tag in Ihren HTML-<head>-Bereich ein:
1
<meta charset="UTF-8">
Dies erzwingt die UTF-8-Kodierung, die der erwartete Zeichensatz für Webviews ist, die In-App-Nachrichten anzeigen.
JavaScript-Bridge
Custom HTML in-app messages and Banners support a JavaScript “bridge” to interface with the Braze SDK, allowing you to trigger custom Braze actions when users click on elements with links or otherwise engage with your content. These methods exist with the global brazeBridge or appboyBridge variable.

Braze recommends that you use the global brazeBridge variable. The global appboyBridge variable is deprecated but will continue to function for existing users. If you are using appboyBridge, we suggest you migrate to brazeBridge.
appboyBridge was deprecated in the following SDK versions:
For example, to log a custom attribute and custom event, then close the message, you could use the following JavaScript within your custom HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<button id="button">Set Favorite Color</button>
<script>
// Wait for the `brazeBridge` ready event, "ab.BridgeReady"
window.addEventListener("ab.BridgeReady", function(){
// Event handler when the button is clicked
document.querySelector("#button").onclick = function(){
// Track Button 1 clicks for analytics
// Note: This requires Android SDK v8.0.0, Web SDK v2.5.0, Swift SDK v5.4.0, and iOS SDK v3.23.0
brazeBridge.logClick("0");
// Set the user's custom attribute
brazeBridge.getUser().setCustomUserAttribute("favorite color", "blue");
// Track a custom event
brazeBridge.logCustomEvent("completed survey");
// Send the enqueued data to Braze
brazeBridge.requestImmediateDataFlush();
// Close the message
brazeBridge.closeMessage();
};
}, false);
</script>
JavaScript Bridge methods
The following JavaScript methods are supported within custom HTML for in-app messages and Banners:
| Methodenname | Beschreibung |
|---|---|
brazeBridge.closeMessage() |
Schließt die aktuelle Nachricht. Das Verhalten unterscheidet sich je nach Kanal: In-App-Nachrichten: Schließt nur die UI. Es wird kein Dismissal protokolliert und keine serverseitige Unterdrückung ausgelöst. Banner: Entspricht dem Aufruf von logBannerDismissal. Dabei wird ein Banner-Dismissal protokolliert, das Banner aus der UI entfernt und für die:den Nutzer:in unterdrückt. Außerdem werden alle aktiven subscribeToBannersUpdates-Abonnent:innen erneut ausgelöst. Rufen Sie diese Methode nicht auf, wenn die Nachricht bereits dabei ist, sich zu schließen, oder aufgrund der Verarbeitung eines Deep-Links automatisch geschlossen wird. |
window.addEventListener("ab.BridgeReady", function(){...}, false) |
Callback-Methode, wenn das Laden von brazeBridge abgeschlossen ist. Der gesamte JavaScript-Code sollte innerhalb dieser Callback-Funktion ausgeführt werden. |
brazeBridge.requestImmediateDataFlush() |
Sendet die Daten in der Warteschlange an die Braze-Server. JS Docs |
brazeBridge.logClick(button_id_string) |
Protokolliert einen Button-Klick für eine bestimmte Button-ID. Wenn button_id_string leer gelassen wird, wird stattdessen ein Body-Klick protokolliert. Der button_id_string kann als button_id in In-App-Nachrichten-Klick-Events über Currents weitergegeben werden. Diese Methode wurde in Android SDK v8.0.0, Web SDK v2.5.0 und iOS SDK v3.23.0 eingeführt. Für button_id_string sind nur alphanumerische Zeichen, Leerzeichen, Bindestriche und Unterstriche zulässig. Das Hinzufügen eines Zeichens mit einem Akzent (z. B. ö, â, ê) unterbricht das Tracking von Button-Klicks, was dazu führt, dass der Button-String nicht im Analytics-Bereich der Campaign erscheint und Klicks nicht berücksichtigt werden. |
brazeBridge.logCustomEvent(eventName,eventProperties) |
Protokolliert ein angepasstes Event. JS Docs |
brazeBridge.logPurchase(productId, price, currencyCode, quantity, purchaseProperties) |
Protokolliert einen Kauf. JS Docs |
brazeBridge.getUser().addAlias(alias, label) |
Fügt eine:r Nutzer:in einen Alias hinzu. Eingeführt in Web SDK v2.7.0, Android v8.1.0 und iOS SDK v3.26.0. JS Docs |
brazeBridge.getUser().addToCustomAttributeArray(key, value) |
Fügt einem angepassten Attribut-Array einen Wert hinzu. JS Docs |
brazeBridge.getUser().addToSubscriptionGroup(subscriptionGroupId) |
Fügt eine:n Nutzer:in zu einer E-Mail- oder SMS-Abo-Gruppe hinzu. JS Docs. Diese Methode wurde in Android SDK v15.0.0, Web SDK v3.4.0 und iOS SDK v4.3.3 eingeführt. |
brazeBridge.getUser().removeFromSubscriptionGroup(subscriptionGroupId) |
Entfernt eine:n Nutzer:in aus einer E-Mail- oder SMS-Abo-Gruppe. JS Docs. Diese Methode wurde in Android SDK v15.0.0, Web SDK v3.4.0 und iOS SDK v4.3.3 eingeführt. |
brazeBridge.getUser().setFirstName(firstName) |
Legt den Vornamen einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setLastName(lastName) |
Legt den Nachnamen einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setEmail(email) |
Legt die E-Mail-Adresse einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setGender(gender) |
Legt das Geschlecht einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setDateOfBirth(year, month, day) |
Legt das Geburtsdatum einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setCountry(country) |
Legt das Land einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setHomeCity(city) |
Legt den Ort einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setEmailNotificationSubscriptionType(notificationSubscriptionType) |
Legt den Abo-Status für E-Mail-Benachrichtigungen fest. JS Docs |
brazeBridge.getUser().setPushNotificationSubscriptionType(notificationSubscriptionType) |
Legt den Abo-Status für Push-Benachrichtigungen fest. JS Docs |
brazeBridge.getUser().setPhoneNumber(phoneNumber) |
Legt die Telefonnummer einer:s Nutzer:in fest. JS Docs |
brazeBridge.getUser().setCustomUserAttribute(key, value, merge) |
Legt ein angepasstes Nutzerattribut fest. JS Docs |
brazeBridge.getUser().removeFromCustomAttributeArray(key, value) |
Entfernt ein angepasstes Nutzerattribut. JS Docs |
brazeBridge.getUser().incrementCustomUserAttribute(key, incrementValue) |
Erhöht ein angepasstes Nutzerattribut. JS Docs |
brazeBridge.getUser().setLanguage(language) |
Legt die Sprache einer:s Nutzer:in fest. Eingeführt in Android SDK v5.0.0 und Web SDK v2.6.0. JS Docs |
brazeBridge.getUser().setCustomLocationAttribute(key, latitude, longitude) |
Legt ein angepasstes Standortattribut fest. Eingeführt in Android SDK v5.0.0. JS Docs |
brazeBridge.web.registerAppboyPushMessages(successCallback, deniedCallback) |
Registriert für Web-Push (nur Web). Diese Methode ist ein No-op, wenn sie in einer Nicht-Web-Umgebung aufgerufen wird. JS Docs |
brazeBridge.requestPushPermission(successCallback, deniedCallback) |
Registriert für Push über Web, iOS und Android. Hinweis: Die Callbacks der Methode werden nur im Web unterstützt. Diese Methode wurde mit Web SDK v4.0.0, Android SDK v21.0.0 und Swift SDK v5.4.0 eingeführt. JS Docs |
brazeBridge.changeUser(id, sdkAuthSignature?) |
Identifiziert die:den Nutzer:in mit einer eindeutigen ID. JS Docs Diese Methode wurde in Web SDK v4.3.0 eingeführt. |
Button click tracking
Use the brazeBridge.logClick(button_id) method to track clicks in your custom HTML.
For in-app messages, you can programmatically track “Button 1”, “Button 2”, and “Body Clicks” using brazeBridge.logClick('0'), brazeBridge.logClick('1'), or brazeBridge.logClick(), respectively.
| Clicks | Method | Supported |
|---|---|---|
| Body click | brazeBridge.logClick() |
In-app messages and Banners |
| Button 1 | brazeBridge.logClick('0') |
In-app messages only |
| Button 2 | brazeBridge.logClick('1') |
In-app messages only |
| Custom button tracking | brazeBridge.logClick('your custom name here') |
In-app messages and Banners |
For in-app messages, you can track multiple button click events per impression. For example, to close a message and log a Button 2 click:
1
<a href="#" onclick="brazeBridge.logClick('1');brazeBridge.closeMessage()">✖</a>
You can also track new custom button names—up to 100 unique names per campaign. For example, brazeBridge.logClick('blue button') or brazeBridge.logClick('viewed carousel page 3').

When using JavaScript methods inside an onclick attribute, wrap string values in single quotes to avoid conflicts with the double-quoted HTML attribute.
Limitations (in-app messages only)
- You can have up to 100 unique button IDs per campaign.
- Button IDs can have up to 255 characters each.
- Button IDs can only include letters, numbers, spaces, dashes, and underscores.
Linkbasierte Aktionen
Zusätzlich zu angepasstem JavaScript können Braze SDKs auch Analysedaten mit diesen praktischen URL-Shortcuts senden. Beachten Sie, dass diese Abfrageparameter und URL-Schemata alle zwischen Groß- und Kleinschreibung unterscheiden.
Button-Klick-Tracking (veraltet)

Die Verwendung von abButtonID wird in Nachrichtentypen mit HTML mit Vorschau nicht unterstützt. Weitere Informationen finden Sie in unserem Upgrade-Leitfaden.
Um Button-Klicks für die In-App-Nachricht-Analytics zu protokollieren, können Sie abButtonId als Abfrageparameter zu jedem Deeplink, jeder Weiterleitungs-URL oder jedem Ankerelement <a> hinzufügen. Verwenden Sie ?abButtonId=0, um einen Klick auf „Button 1“ zu protokollieren, und ?abButtonId=1, um einen Klick auf „Button 2“ zu protokollieren.
Wie bei anderen URL-Parametern sollte der erste Parameter mit einem Fragezeichen ? beginnen, während nachfolgende Parameter durch ein kaufmännisches Und & getrennt werden sollten.
Beispiel-URLs
https://example.com/?abButtonId=0– Klick auf Button 1https://example.com/?abButtonId=1– Klick auf Button 2https://example.com/?utm_source=braze&abButtonId=0– Klick auf Button 1 mit anderen vorhandenen URL-ParameternmyApp://deep-link?page=home&abButtonId=1– Mobiler Deeplink mit Klick auf Button 2<a href="https://example.com/?abButtonId=1">– Ankerelement<a>mit Klick auf Button 2

In-App-Nachrichten unterstützen nur Klicks auf Button 1 und Button 2. URLs, die keine dieser beiden Button-IDs angeben, werden als generische „Body-Klicks“ protokolliert.
Link in neuem Fenster öffnen (nur mobil)
Um Links außerhalb Ihrer App in einem neuen Fenster zu öffnen, setzen Sie ?abExternalOpen=true. Die Nachricht wird geschlossen, bevor der Link geöffnet wird.
Beim Deeplinking öffnet Braze Ihre URL unabhängig vom Wert von abExternalOpen.
Als Deeplink öffnen (nur mobil)
Damit Braze Ihren HTTP- oder HTTPS-Link als Deeplink behandelt, setzen Sie ?abDeepLink=true.
Wenn dieser Abfrage-String-Parameter fehlt oder auf false gesetzt ist, versucht Braze, den Weblink in einem internen Webbrowser innerhalb der Host-App zu öffnen.
In-App-Nachricht schließen
Um eine In-App-Nachricht zu schließen, können Sie die JavaScript-Methode brazeBridge.closeMessage() verwenden.
Zum Beispiel schließt <a onclick="brazeBridge.closeMessage()" href="#">Schließen</a> die In-App-Nachricht.
HTML-Upload mit Vorschau
Beim Erstellen von angepassten HTML-In-App-Nachrichten können Sie Ihre interaktiven Inhalte direkt in Braze in der Vorschau anzeigen.
Das Nachrichtenvorschau-Panel des Editors zeigt eine realistische Vorschau, die das in Ihrer Nachricht enthaltene JavaScript rendert. Sie können Ihre angepassten Nachrichten im Vorschau-Panel in der Vorschau anzeigen und mit ihnen interagieren, indem Sie durch Seiten blättern, Formulare oder Umfragen absenden, JavaScript-Animationen ansehen und mehr!


Alle brazeBridge-JavaScript-Methoden, die Sie in Ihrem HTML verwenden, aktualisieren keine Nutzerprofile, während Sie im Dashboard eine Vorschau anzeigen.
Campaign erstellen
Asset-Dateien
Beim Erstellen von In-App-Nachrichten mit angepasstem Code und HTML-Upload können Sie Campaign-Assets in die Medienbibliothek hochladen, um sie in Ihrer Nachricht zu referenzieren.
Die folgenden Dateitypen werden für den Upload unterstützt:
| Dateityp | Dateierweiterung |
|---|---|
| Schriftdateien | .ttf, .woff, .otf, .woff2 |
| SVG-Bilder | .svg |
| JavaScript-Dateien | .js |
| CSS-Dateien | .css |
Braze empfiehlt das Hochladen von Assets in die Medienbibliothek aus zwei Gründen:
- Assets, die über die Medienbibliothek zu einer Campaign hinzugefügt werden, ermöglichen die Anzeige Ihrer Nachrichten, auch wenn Nutzer:innen offline sind oder eine schlechte Internetverbindung haben.
- In Braze hochgeladene Assets können über mehrere Campaigns hinweg wiederverwendet werden.
Asset-Dateien hinzufügen
Sie können neue oder vorhandene Assets zu Ihrer Campaign hinzufügen.
Um neue Assets zu Ihrer Campaign hinzuzufügen, verwenden Sie den Drag-and-Drop-Bereich zum Hochladen einer Datei. Assets, die in diesem Bereich hinzugefügt werden, werden auch automatisch zur Medienbibliothek hinzugefügt. Um Assets hinzuzufügen, die Sie bereits in die Medienbibliothek hochgeladen haben, wählen Sie Aus Medienbibliothek hinzufügen.
Nachdem Ihre Assets hinzugefügt wurden, erscheinen sie im Bereich Assets für diese Campaign.
Wenn der Dateiname eines Assets mit dem eines lokalen HTML-Assets übereinstimmt, wird es automatisch ersetzt (zum Beispiel wird cat.png hochgeladen und <img src="cat.png" /> existiert).
Andernfalls fahren Sie mit der Maus über ein Asset in der Liste und wählen Sie Kopieren, um die URL der Datei in Ihre Zwischenablage zu kopieren. Fügen Sie dann die kopierte Asset-URL in Ihr HTML ein, wie Sie es normalerweise beim Referenzieren eines Remote-Assets tun würden.
HTML-Editor
Änderungen, die Sie im HTML vornehmen, werden automatisch im Vorschau-Panel gerendert, während Sie tippen. Alle brazeBridge-JavaScript-Methoden, die Sie in Ihrem HTML verwenden, aktualisieren keine Nutzerprofile, während Sie im Dashboard eine Vorschau anzeigen.

Sie können Suchen im HTML-Editor auswählen, um in Ihrem Code zu suchen!
Button-Tracking
Sie können die Performance innerhalb Ihrer In-App-Nachricht mit angepasstem Code mithilfe der JavaScript-Methode brazeBridge.logClick(button_id) verfolgen. Damit können Sie „Button 1“, „Button 2“ und „Body-Klicks“ programmatisch mit brazeBridge.logClick('0'), brazeBridge.logClick('1') bzw. brazeBridge.logClick() tracken.
| Klicks | Methode |
|---|---|
| Button 1 | brazeBridge.logClick('0') |
| Button 2 | brazeBridge.logClick('1') |
| Body-Klick | brazeBridge.logClick() |
| Angepasstes Button-Tracking | brazeBridge.logClick('your custom name here') |

Diese Methode des Button-Trackings ersetzt die früheren automatischen Klick-Tracking-Methoden (wie ?abButtonId=0), die entfernt wurden.
Verwenden Sie brazeBridge.logClick(button_id) für HTML-Nachrichten mit Vorschau, wenn Sie mehr als zwei getrackte Buttons benötigen. Button 1 und Button 2 werden '0' und '1' zugeordnet; zusätzliche Buttons verwenden angepasste IDs (bis zu 100 eindeutige IDs pro Campaign). Informationen zu Zeichenbeschränkungen für Button-IDs finden Sie unter Button-Tracking.
Fehlerbehebung bei angepassten HTML-Links und Schließverhalten
Button-Klicks öffnen den Link nicht
Wenn ein Button in Ihrer angepassten HTML-In-App-Nachricht beim Klicken nicht lädt, überprüfen Sie, ob der Link eine gültige URL oder ein unterstütztes Deeplink-Schema verwendet. Fehlerhafte URLs oder nicht unterstützte angepasste Schemata können verhindern, dass die Klickaktion abgeschlossen wird.
Body-Klicks beim Schließen der Nachricht
Der Aufruf von brazeBridge.closeMessage() schließt die Nachricht, protokolliert aber allein keine Analytics. Um einen Body-Klick zu protokollieren, wenn Nutzer:innen die Nachricht schließen, rufen Sie brazeBridge.logClick() vor brazeBridge.closeMessage() auf, damit das Klick-Logging plattformübergreifend konsistent bleibt.
Angepasstes HTML wird auf Android nicht gerendert (Windows-ZIP-Dateien)
Wenn Ihre angepasste HTML-In-App-Nachricht in der Vorschau gerendert wird, aber auf Android-Geräten nicht angezeigt wird, überprüfen Sie, wie Ihre HTML- und Asset-Dateien gepackt wurden. Einige Windows-ZIP-Dienstprogramme fügen Verzeichniseinträge (Ordnerpfade) innerhalb des Archivs hinzu, anstatt Dateien auf der Stammebene zu platzieren.
Android kann möglicherweise keine Assets laden, die mit relativen Pfaden referenziert werden, wenn die ZIP-Datei verschachtelte Verzeichniseinträge enthält. Um dies zu beheben:
- Extrahieren Sie Ihre HTML-, CSS-, JavaScript- und Bilddateien in einen einzelnen Ordner.
- Wählen Sie beim Erstellen des ZIP-Archivs alle Dateien aus (nicht den übergeordneten Ordner).
- Bestätigen Sie, dass die Pfade in Ihrem HTML auf Dateien im ZIP-Stammverzeichnis verweisen (zum Beispiel
style.css, nichtassets/style.css), oder passen Sie die Pfade an die flache Struktur an. - Laden Sie die ZIP-Datei erneut hoch und senden Sie eine Testnachricht an ein Android-Gerät.
Alternativ können Sie Assets über die Medienbibliothek hochladen, anstatt sie in einer ZIP-Datei zu bündeln.
Nicht abwärtskompatible Änderungen
- Der Deeplink
braze://close, der zuvor in mobilen Apps unterstützt wurde, wurde zugunsten der JavaScript-MethodebrazeBridge.closeMessage()entfernt. Dies ermöglicht plattformübergreifende HTML-Nachrichten, da das Internet keine Deeplinks unterstützt. -
Automatisches Klick-Tracking, das
?abButtonId=0für Button-IDs verwendete, und „Body-Klick“-Tracking auf Schließen-Buttons wurden entfernt. Die folgenden Codebeispiele zeigen, wie Sie Ihr HTML ändern, um unsere neuen Klick-Tracking-JavaScript-Methoden zu verwenden:Vorher Nachher <a href="braze://close">Close Button</a><a href="#" onclick="brazeBridge.logClick();brazeBridge.closeMessage()">Close Button</a><a href="braze://close?abButtonId=0">Close Button</a><a href="#" onclick="brazeBridge.logClick('0');brazeBridge.closeMessage()">Close Button</a><a href="app://deeplink?abButtonId=0">Track button 1</a><a href="app://deeplink" onclick="brazeBridge.logClick('0')">Track button 1</a><script>
location.href = "braze://close?abButtonId=1"
</script><script>
window.addEventListener("ab.BridgeReady", function(){
brazeBridge.logClick("1");
brazeBridge.closeMessage();
});
</script>