Content Cards
Erfahren Sie mehr über Content Cards für das Braze SDK, einschließlich der verschiedenen Datenmodelle und kartenspezifischen Eigenschaften, die für Ihre Anwendung verfügbar sind.

Content Cards für Nachrichten im Banner-Stil verwenden? Probieren Sie Banner aus – perfekt für inline, persistente In-App- und Internet-Nachrichten.

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.
Voraussetzungen
Bevor Sie Content Cards verwenden können, müssen Sie das Braze Web SDK integrieren. Es ist keine zusätzliche Einrichtung erforderlich. Wenn Sie stattdessen eine eigene UI erstellen möchten, lesen Sie den Leitfaden zur Anpassung von Content Cards.

Einige Werbeblocker und Browser-Datenschutzerweiterungen können das Braze Web SDK-Skript oder zugehörige Netzwerkanfragen blockieren, was dazu führen kann, dass Content Cards nicht geladen werden. Wenn Sie die CDN-Integrationsmethode verwenden, sollten Sie zur NPM-Integrationsmethode wechseln, die SDK-Bibliotheken lokal auf Ihrer Website speichert und einige Probleme im Zusammenhang mit Werbeblockern vermeiden kann.
Standard-Feed-UI
Um die enthaltene Content-Cards-UI zu verwenden, müssen Sie angeben, wo der Feed auf Ihrer Website angezeigt werden soll.
In diesem Beispiel haben wir ein <div id="feed"></div>, in das wir den Content-Cards-Feed platzieren möchten. Wir verwenden drei Buttons, um den Feed auszublenden, anzuzeigen oder umzuschalten (basierend auf seinem aktuellen Status aus- oder einblenden).
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
<button id="toggle" type="button">Toggle Cards Feed</button>
<button id="hide" type="button">Hide Cards Feed</button>
<button id="show" type="button">Show Cards Feed</button>
<nav>
<h1>Your Personalized Feed</h1>
<div id="feed"></div>
</nav>
<script>
const toggle = document.getElementById("toggle");
const hide = document.getElementById("hide");
const show = document.getElementById("show");
const feed = document.getElementById("feed");
toggle.onclick = function(){
braze.toggleContentCards(feed);
}
hide.onclick = function(){
braze.hideContentCards();
}
show.onclick = function(){
braze.showContentCards(feed);
}
</script>
Wenn Sie die Methoden toggleContentCards(parentNode, filterFunction) und showContentCards(parentNode, filterFunction) verwenden und keine Argumente übergeben werden, werden alle Content Cards in einer fixierten Seitenleiste auf der Seite angezeigt. Andernfalls wird der Feed in der angegebenen parentNode-Option platziert.
| Parameter | Beschreibung |
|---|---|
parentNode |
Der HTML-Knoten, in dem die Content Cards gerendert werden. Wenn der übergeordnete Knoten bereits eine Braze-Content-Cards-Ansicht als direktes Unterelement hat, werden die vorhandenen Content Cards ersetzt. Sie sollten zum Beispiel document.querySelector(".my-container") übergeben. |
filterFunction |
Eine Filter- oder Sortierfunktion für die in dieser Ansicht angezeigten Cards. Wird mit dem Array von Card-Objekten aufgerufen, sortiert nach {pinned, date}. Es wird erwartet, dass ein Array sortierter Card-Objekte zurückgegeben wird, die für diese:n Nutzer:in gerendert werden sollen. Wenn weggelassen, werden alle Cards angezeigt. |
Weitere Informationen finden Sie in der SDK-Referenzdokumentation zum Umschalten von Content Cards.
Content Cards im Web testen
Sie können Ihre Content-Cards-Integration mithilfe der Entwickler:innen-Tools Ihres Browsers testen.
- Erstellen Sie eine Content-Card-Campaign und richten Sie sie auf Ihre:n Testnutzer:in aus.
- Melden Sie sich auf der Website an, auf der Ihre Web-SDK-Integration eingerichtet ist.
- Öffnen Sie die Browserkonsole. In Chrome klicken Sie mit der rechten Maustaste auf die Seite, wählen Sie Untersuchen und dann den Tab Konsole aus.
- Führen Sie diese Befehle in der Konsole aus:
window.braze.getCachedContentCards()window.braze.toggleContentCards()
Card-Typen und Eigenschaften
Das Content-Card-Datenmodell ist im Web SDK verfügbar und bietet die folgenden Content-Card-Typen: ImageOnly, CaptionedImage und ClassicCard. Jeder Typ erbt gemeinsame Eigenschaften von einem Basismodell Card und hat die folgenden zusätzlichen Eigenschaften.

Informationen zum Protokollieren von Content-Card-Daten finden Sie unter Analytics protokollieren.
Basis-Card-Modell
Alle Content Cards haben diese gemeinsamen Eigenschaften:
| Eigenschaft | Beschreibung |
|---|---|
expiresAt |
Der UNIX-Zeitstempel des Ablaufzeitpunkts der Card. |
extras |
(Optional) Schlüssel-Wert-Paar-Daten, formatiert als String-Objekt mit einem Wert-String. |
id |
(Optional) Die ID der Card. Diese wird zu Analytics-Zwecken zusammen mit Events an Braze zurückgemeldet. |
pinned |
Diese Eigenschaft gibt an, ob die Card im Dashboard als „angepinnt“ eingerichtet wurde. |
updated |
Der UNIX-Zeitstempel der letzten Änderung dieser Card. |
viewed |
Diese Eigenschaft gibt an, ob die Nutzer:in die Card angesehen hat oder nicht. |
isControl |
Diese Eigenschaft ist true, wenn eine Card eine „Kontrollgruppe“ innerhalb eines A/B-Tests ist. |
Nur Bild
ImageOnly-Cards sind anklickbare Bilder in voller Größe.
| Eigenschaft | Beschreibung |
|---|---|
aspectRatio |
Das Seitenverhältnis des Card-Bildes; dient als Hinweis, bevor das Laden des Bildes abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen möglicherweise nicht bereitgestellt wird. |
categories |
Diese Eigenschaft dient ausschließlich der Organisation in Ihrer angepassten Implementierung; diese Kategorien können im Dashboard-Composer festgelegt werden. |
clicked |
Diese Eigenschaft gibt an, ob diese Card jemals auf diesem Gerät angeklickt wurde. |
created |
Der UNIX-Zeitstempel des Erstellungszeitpunkts der Card in Braze. |
dismissed |
Diese Eigenschaft gibt an, ob diese Card geschlossen wurde. |
dismissible |
Diese Eigenschaft gibt an, ob die Nutzer:in die Card schließen und aus der Ansicht entfernen kann. |
imageUrl |
Die URL des Card-Bildes. |
linkText |
Der Anzeigetext für die URL. |
url |
Die URL, die nach dem Anklicken der Card geöffnet wird. |
Bild mit Untertitel
CaptionedImage-Cards sind anklickbare Bilder in voller Größe mit beschreibendem Begleittext.
| Eigenschaft | Beschreibung |
|---|---|
aspectRatio |
Das Seitenverhältnis des Card-Bildes; dient als Hinweis, bevor das Laden des Bildes abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen möglicherweise nicht bereitgestellt wird. |
categories |
Diese Eigenschaft dient ausschließlich der Organisation in Ihrer angepassten Implementierung; diese Kategorien können im Dashboard-Composer festgelegt werden. |
clicked |
Diese Eigenschaft gibt an, ob diese Card jemals auf diesem Gerät angeklickt wurde. |
created |
Der UNIX-Zeitstempel des Erstellungszeitpunkts der Card in Braze. |
dismissed |
Diese Eigenschaft gibt an, ob diese Card geschlossen wurde. |
dismissible |
Diese Eigenschaft gibt an, ob die Nutzer:in die Card schließen und aus der Ansicht entfernen kann. |
imageUrl |
Die URL des Card-Bildes. |
linkText |
Der Anzeigetext für die URL. |
title |
Der Titeltext für diese Card. |
url |
Die URL, die nach dem Anklicken der Card geöffnet wird. |
Klassisch
Das ClassicCard-Modell kann ein Bild ohne Text oder einen Text mit Bild enthalten.
| Eigenschaft | Beschreibung |
|---|---|
aspectRatio |
Das Seitenverhältnis des Card-Bildes; dient als Hinweis, bevor das Laden des Bildes abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen möglicherweise nicht bereitgestellt wird. |
categories |
Diese Eigenschaft dient ausschließlich der Organisation in Ihrer angepassten Implementierung; diese Kategorien können im Dashboard-Composer festgelegt werden. |
clicked |
Diese Eigenschaft gibt an, ob diese Card jemals auf diesem Gerät angeklickt wurde. |
created |
Der UNIX-Zeitstempel des Erstellungszeitpunkts der Card in Braze. |
description |
Der Fließtext für diese Card. |
dismissed |
Diese Eigenschaft gibt an, ob diese Card geschlossen wurde. |
dismissible |
Diese Eigenschaft gibt an, ob die Nutzer:in die Card schließen und aus der Ansicht entfernen kann. |
imageUrl |
Die URL des Card-Bildes. |
linkText |
Der Anzeigetext für die URL. |
title |
Der Titeltext für diese Card. |
url |
Die URL, die nach dem Anklicken der Card geöffnet wird. |
Bildformate
Content-Card-Bilder (einschließlich GIFs) werden mit Standard-HTML-<img>-Tags gerendert. Die GIF-Unterstützung hängt von den Fähigkeiten des Browsers der Nutzer:innen ab und erfordert keine Mindestversion des Web SDK. Alle modernen Browser unterstützen die GIF-Wiedergabe nativ.
Kontrollgruppe
Wenn Sie den Standard-Feed für Content Cards verwenden, werden Impressionen und Klicks automatisch erfasst.
Wenn Sie eine angepasste Integration für Content Cards verwenden, müssen Sie Impressionen protokollieren, wenn eine Kontroll-Card angezeigt worden wäre. Stellen Sie dabei sicher, dass Sie Kontroll-Cards beim Protokollieren von Impressionen in einem A/B-Test berücksichtigen. Diese Cards sind leer, und obwohl sie von den Nutzer:innen nicht gesehen werden, sollten Sie dennoch Impressionen protokollieren, um ihre Performance mit Nicht-Kontroll-Cards vergleichen zu können.
Um festzustellen, ob eine Content-Card zur Kontrollgruppe eines A/B-Tests gehört, prüfen Sie die Eigenschaft card.isControl (Web SDK v4.5.0+) oder überprüfen Sie, ob die Card eine ControlCard-Instanz ist (card instanceof braze.ControlCard).
Card-Methoden
Standard-Feed-Methoden
Verwenden Sie diese Methoden, wenn Sie Content Cards mit der Standard-Feed-UI von Braze anzeigen:
| Methode | Beschreibung |
|---|---|
showContentCards |
Zeigt den Standard-Content-Cards-Feed an. Rendert Cards in ein bereitgestelltes parentNode-HTML-Element oder als Sidebar mit fester Position, wenn kein Element angegeben wird. Akzeptiert eine optionale filterFunction, um Cards vor der Anzeige zu sortieren oder zu filtern. |
hideContentCards |
Blendet den Standard-Content-Cards-Feed aus, wenn er aktuell angezeigt wird. |
toggleContentCards |
Zeigt den Standard-Content-Cards-Feed an, wenn er ausgeblendet ist, oder blendet ihn aus, wenn er sichtbar ist. Wenn Sie mehrere Content-Card-Feeds gleichzeitig anzeigen möchten, verwenden Sie stattdessen showContentCards und hideContentCards. |
Angepasste Feed-Methoden
Verwenden Sie diese Methoden, wenn Sie Ihre eigene Content-Card-UI erstellen:
| Methode | Beschreibung |
|---|---|
subscribeToContentCardsUpdates |
Registriert eine Callback-Funktion, die aufgerufen wird, wenn Content Cards für die:den aktuelle:n Nutzer:in aktualisiert werden, z. B. beim Sitzungsstart. Verwenden Sie diese Methode als primären Weg, um Card-Daten für Ihren angepassten Feed zu erhalten. Muss vor openSession() aufgerufen werden, um Updates bei der ersten Sitzung zu empfangen. |
getCachedContentCards |
Gibt alle aktuell verfügbaren Cards aus der letzten Content-Cards-Aktualisierung zurück. Verwenden Sie diese Methode, um Cards beim Laden der Seite sofort anzuzeigen, ohne auf eine neue Serveranfrage warten zu müssen – z. B. wenn Nutzer:innen während einer aktiven Sitzung zu einer Seite zurückkehren. |
requestContentCardsRefresh |
Fordert eine sofortige Aktualisierung der Content Cards von den Braze-Servern an. Standardmäßig werden Cards beim Sitzungsstart und beim erneuten Öffnen des Standard-Feeds aktualisiert. Verwenden Sie diese Methode, um eine Aktualisierung zu anderen Zeitpunkten zu erzwingen, z. B. nach einer bestimmten Nutzer:innenaktion. Beachten Sie die Rate-Limits. |
logContentCardImpressions |
Protokolliert Impressionen-Events für ein Array von Cards. Rufen Sie diese Methode auf, wenn Cards gerendert und für Nutzer:innen sichtbar sind. Erforderlich für ein genaues Campaign-Reporting bei Verwendung einer angepassten UI, da Impressionen außerhalb des Standard-Feeds nicht automatisch erfasst werden. |
logContentCardClick |
Protokolliert ein Klick-Event für eine einzelne Card. Rufen Sie diese Methode auf, wenn Nutzer:innen in Ihrer angepassten UI mit einer Card interagieren. Erforderlich für ein genaues Campaign-Reporting, da Klicks außerhalb des Standard-Feeds nicht automatisch erfasst werden. |
handleBrazeAction |
Verarbeitet die URL einer Card und führt die konfigurierte Klick-Aktion aus, einschließlich Braze-Aktionen (brazeActions://-URLs) und Standard-URL-Navigation. Rufen Sie diese Methode in Ihrem Card-Klick-Handler auf, um sicherzustellen, dass die im Braze-Dashboard konfigurierten Klick-Verhaltensweisen ausgeführt werden. |
dismissCard |
Schließt eine Card programmatisch und entfernt sie aus dem Feed der:des Nutzer:in. Verwenden Sie diese Methode, um Nutzer:innen zu ermöglichen, Cards in Ihrer angepassten UI zu schließen. |
Weitere Details finden Sie in der SDK-Referenzdokumentation.
Best Practices
Methoden in der richtigen Reihenfolge aufrufen
Bei angepassten Feeds werden Content Cards nur beim Sitzungsstart aktualisiert, wenn subscribeToContentCardsUpdates() vor openSession() aufgerufen wird. Rufen Sie Ihre Braze-Methoden in dieser Reihenfolge auf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import * as braze from "@braze/web-sdk";
// Step 1: Initialize the SDK
braze.initialize("YOUR-API-KEY", { baseUrl: "YOUR-SDK-ENDPOINT" });
// Step 2: Subscribe to card updates
braze.subscribeToContentCardsUpdates((updates) => {
const cards = updates.cards;
renderCards(cards);
});
// Step 3: Identify the user
braze.changeUser("USER_ID");
// Step 4: Start the session
braze.openSession();
Gecachte Cards verwenden, um Inhalte über Seitenladevorgänge hinweg beizubehalten
Da subscribeToContentCardsUpdates() seinen Callback nur aufruft, wenn neue Updates vorliegen (z. B. beim Sitzungsstart), können Cards aus Ihrem angepassten Feed verschwinden, wenn Nutzer:innen die Seite mitten in einer Sitzung aktualisieren. Um dies zu verhindern, verwenden Sie getCachedContentCards(), um Cards sofort aus dem lokalen Cache zu rendern, zusätzlich zu Ihrem Abo für neue Updates:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import * as braze from "@braze/web-sdk";
function renderCards(cards) {
const container = document.getElementById("content-cards");
container.textContent = "";
const displayedCards = [];
cards.forEach(card => {
if (card instanceof braze.ClassicCard || card instanceof braze.CaptionedImage) {
const cardElement = document.createElement("div");
const h3 = document.createElement("h3");
h3.textContent = card.title || "";
cardElement.appendChild(h3);
const p = document.createElement("p");
p.textContent = card.description || "";
cardElement.appendChild(p);
if (card.imageUrl) {
const img = document.createElement("img");
img.src = card.imageUrl;
img.alt = card.title || "";
cardElement.appendChild(img);
}
if (card.url) {
cardElement.addEventListener("click", () => {
braze.logContentCardClick(card);
braze.handleBrazeAction(card.url);
});
}
container.appendChild(cardElement);
displayedCards.push(card);
}
});
if (displayedCards.length > 0) {
braze.logContentCardImpressions(displayedCards);
}
}
// Display cached cards immediately
const cached = braze.getCachedContentCards();
if (cached && cached.cards.length > 0) {
renderCards(cached.cards);
}
// Subscribe to future updates
braze.subscribeToContentCardsUpdates((updates) => {
renderCards(updates.cards);
});
Analytics für angepasste Feeds protokollieren
Bei Verwendung einer angepassten UI werden Impressionen, Klicks und Schließungen nicht automatisch erfasst. Sie müssen jedes Ereignis manuell protokollieren:
- Impressionen: Rufen Sie
logContentCardImpressions([card1, card2, ...])mit einem Array von Card-Objekten auf, wenn Cards für die Nutzer:innen sichtbar werden. - Klicks: Rufen Sie
logContentCardClick(card)auf, wenn Nutzer:innen mit einer Card interagieren. - Klickverhalten: Rufen Sie
handleBrazeAction(card.url)auf, um die konfigurierte Klickaktion der Card auszuführen (z. B. Navigation zu einer URL oder Protokollierung eines angepassten Events).

Das an logContentCardClick() übergebene Argument muss ein originales Braze-Card-Objekt sein. Wenn Sie die Card-Daten transformieren oder rekonstruieren (z. B. durch Serialisierung und Deserialisierung), werden Klicks nicht protokolliert und Sie sehen den Fehler: „card must be a Card object.“
Verwendung von Google Tag Manager
Google Tag Manager funktioniert, indem das Braze CDN (eine Version unseres Web-SDK) direkt in Ihren Website-Code eingespeist wird. Das bedeutet, dass alle SDK-Methoden verfügbar sind, genau wie bei einer Integration des SDK ohne Google Tag Manager – mit Ausnahme der Implementierung von Content Cards.
Content Cards einrichten
Für eine Standard-Integration des Content-Card-Feeds können Sie ein Custom HTML-Tag im Google Tag Manager verwenden. Fügen Sie Folgendes zu Ihrem Custom-HTML-Tag hinzu, um den Standard-Content-Card-Feed zu aktivieren:
1
2
3
<script>
window.braze.showContentCards();
</script>

Wenn Sie mehr Freiheit bei der Anpassung des Erscheinungsbilds von Content Cards und ihres Feeds wünschen, können Sie Content Cards direkt in Ihre native Website integrieren. Dafür gibt es zwei Ansätze: die Standard-Feed-UI oder eine angepasste Feed-UI.
Bei der Implementierung der Standard-Feed-UI muss window. an den Anfang der Braze-Methoden hinzugefügt werden. Zum Beispiel sollte braze.showContentCards stattdessen window.braze.showContentCards lauten.
Für die Gestaltung eines angepassten Feeds sind die Schritte identisch mit denen einer SDK-Integration ohne GTM. Wenn Sie beispielsweise die Breite des Content-Card-Feeds anpassen möchten, können Sie Folgendes in Ihre CSS-Datei einfügen:
1
2
3
body .ab-feed {
width: 800px;
}
Templates upgraden
Um auf die neueste Version des Braze Web SDK zu upgraden, führen Sie die folgenden drei Schritte in Ihrem Google Tag Manager-Dashboard aus:
- Tag-Template aktualisieren
Gehen Sie zur Seite Templates in Ihrem Workspace. Hier sollten Sie ein Symbol sehen, das darauf hinweist, dass ein Update verfügbar ist.
Klicken Sie auf dieses Symbol und klicken Sie nach Überprüfung der Änderung auf Accept Update.
- Versionsnummer aktualisieren
Sobald Ihr Tag-Template aktualisiert wurde, bearbeiten Sie das Braze Initialization Tag und aktualisieren Sie die SDK-Version auf die neuestemajor.minor-Version. Wenn die neueste Version beispielsweise4.1.2ist, geben Sie4.1ein. Sie können eine Liste der SDK-Versionen in unserem Changelog einsehen.
- QA und Veröffentlichung
Überprüfen Sie die neue SDK-Version mit dem Debugging-Tool von Google Tag Manager, bevor Sie ein Update für Ihren Tag-Container veröffentlichen.
Fehlerbehebung
Tag-Debugging aktivieren
Jedes Braze-Tag-Template verfügt über ein optionales Kontrollkästchen GTM Tag Debugging, mit dem Debug-Nachrichten in der JavaScript-Konsole Ihrer Webseite protokolliert werden können.

Debug-Modus aufrufen
Eine weitere Möglichkeit, das Debugging Ihrer Google Tag Manager-Integration zu unterstützen, ist die Verwendung des Vorschaumodus von Google.
Dies hilft dabei, zu identifizieren, welche Werte von der Datenschicht Ihrer Webseite an jedes ausgelöste Braze-Tag gesendet werden, und erklärt auch, welche Tags ausgelöst oder nicht ausgelöst wurden.

Tag-Reihenfolge für angepasste Events überprüfen
Wenn angepasste Events oder andere Aktionen nicht in Braze protokolliert werden, ist eine häufige Ursache eine Race-Condition, bei der ein Aktions-Tag (z. B. Custom Event oder Purchase) ausgelöst wird, bevor das Braze Initialization-Tag abgeschlossen ist. Um dies zu beheben, konfigurieren Sie die Tag-Reihenfolge in GTM:
- Öffnen Sie das Aktions-Tag, das nicht korrekt protokolliert wird.
- Wählen Sie unter Advanced Settings > Tag Sequencing die Option A tag that fires before [this tag] aus.
- Wählen Sie Ihr Braze Initialization-Tag als Setup-Tag aus.
Dadurch wird sichergestellt, dass das SDK vollständig initialisiert ist, bevor Aktions-Tags versuchen, Daten an Braze zu senden.
Ausführliches Logging aktivieren
Um detaillierte Protokolle für die Fehlerbehebung zu erfassen, können Sie ausführliches Logging für Ihre Google Tag Manager-Integration aktivieren. Diese Protokolle werden im Tab Console der Entwicklertools Ihres Browsers angezeigt.
Navigieren Sie in Ihrer Google Tag Manager-Integration zu Ihrem Braze Initialization Tag und wählen Sie Enable Web SDK Logging aus.

Voraussetzungen
Bevor Sie Braze Content Cards verwenden können, müssen Sie das Braze Android SDK in Ihre App integrieren. Es ist jedoch kein zusätzliches Setup erforderlich.
Google Fragments
In Android wird der Content-Cards-Feed als Fragment implementiert, das im Braze Android UI-Projekt verfügbar ist. Die Klasse ContentCardsFragment aktualisiert und zeigt automatisch den Inhalt der Content Cards an und protokolliert Nutzungsanalysen. Die Karten, die im ContentCards-Feed von Nutzer:innen erscheinen können, werden im Braze-Dashboard erstellt.
Informationen zum Hinzufügen eines Fragments zu einer Activity finden Sie in der Google-Dokumentation zu Fragments.
Kartentypen und Eigenschaften
Das Content-Cards-Datenmodell ist im Android SDK verfügbar und bietet die folgenden einzigartigen Content-Card-Typen. Jeder Typ teilt ein Basismodell, das es ihnen ermöglicht, gemeinsame Eigenschaften vom Basismodell zu erben und zusätzlich eigene spezifische Eigenschaften zu besitzen. Die vollständige Referenzdokumentation finden Sie unter com.braze.models.cards.
Basis-Kartenmodell
Das Basis-Kartenmodell bietet grundlegendes Verhalten für alle Karten.
| Eigenschaft | Beschreibung |
|---|---|
getId() |
Gibt die von Braze festgelegte Karten-ID zurück. |
getViewed() |
Gibt einen booleschen Wert zurück, der angibt, ob die Karte von den Nutzer:innen gelesen oder ungelesen ist. |
getExtras() |
Gibt eine Map mit Schlüssel-Wert-Extras für diese Karte zurück. |
getCreated() |
Gibt den Unix-Zeitstempel der Erstellungszeit der Karte von Braze zurück. |
isPinned |
Gibt einen booleschen Wert zurück, der angibt, ob die Karte angepinnt ist. |
getOpenUriInWebView() |
Gibt einen booleschen Wert zurück, der angibt, ob URIs für diese Karte im Braze WebView geöffnet werden sollen oder nicht. |
getExpiredAt() |
Gibt das Ablaufdatum der Karte zurück. |
isRemoved() |
Gibt einen booleschen Wert zurück, der angibt, ob die Endnutzer:innen diese Karte verworfen haben. |
isDismissibleByUser() |
Gibt einen booleschen Wert zurück, der angibt, ob die Karte von den Nutzer:innen geschlossen werden kann. |
isClicked() |
Gibt einen booleschen Wert zurück, der den Klickstatus dieser Karte widerspiegelt. |
isDismissed |
Gibt einen booleschen Wert zurück, der angibt, ob die Karte geschlossen wurde. Setzen Sie den Wert auf true, um die Karte als geschlossen zu markieren. Wenn eine Karte bereits als geschlossen markiert ist, kann sie nicht erneut als geschlossen markiert werden. |
isControl() |
Gibt einen booleschen Wert zurück, wenn diese Karte eine Kontrollkarte ist und nicht gerendert werden soll. |
Nur Bild
Nur-Bild-Karten sind klickbare, vollformatige Bilder.
| Eigenschaft | Beschreibung |
|---|---|
getImageUrl() |
Gibt die URL des Kartenbilds zurück. |
getUrl() |
Gibt die URL zurück, die nach dem Klicken auf die Karte geöffnet wird. Es kann eine HTTP(s)-URL oder eine Protokoll-URL sein. |
getDomain() |
Gibt den Linktext für die Eigenschafts-URL zurück. |
Bild mit Beschriftung
Karten mit beschriftetem Bild sind klickbare, vollformatige Bilder mit begleitendem Beschreibungstext.
| Eigenschaft | Beschreibung |
|---|---|
getImageUrl() |
Gibt die URL des Kartenbilds zurück. |
getTitle() |
Gibt den Titeltext der Karte zurück. |
getDescription() |
Gibt den Textkörper der Karte zurück. |
getUrl() |
Gibt die URL zurück, die nach dem Klicken auf die Karte geöffnet wird. Es kann eine HTTP(s)-URL oder eine Protokoll-URL sein. |
getDomain() |
Gibt den Linktext für die Eigenschafts-URL zurück. |
Klassisch
Eine klassische Karte ohne Bild ergibt eine Textankündigungskarte. Wenn ein Bild enthalten ist, erhalten Sie eine Kurznachrichtenkarte.
| Eigenschaft | Beschreibung |
|---|---|
getTitle() |
Gibt den Titeltext der Karte zurück. |
getDescription() |
Gibt den Textkörper der Karte zurück. |
getUrl() |
Gibt die URL zurück, die nach dem Klicken auf die Karte geöffnet wird. Es kann eine HTTP(s)-URL oder eine Protokoll-URL sein. |
getDomain() |
Gibt den Linktext für die Eigenschafts-URL zurück. |
getImageUrl() |
Gibt die URL des Kartenbilds zurück, gilt nur für die klassische Kurznachrichtenkarte. |
isDismissed |
Gibt einen booleschen Wert zurück, der angibt, ob die Karte geschlossen wurde. Setzen Sie den Wert auf true, um die Karte als geschlossen zu markieren. Wenn eine Karte bereits als geschlossen markiert ist, kann sie nicht erneut als geschlossen markiert werden. |
Kartenmethoden
Alle Card-Datenmodellobjekte bieten die folgenden Analytics-Methoden zum Protokollieren von Nutzerereignissen an Braze-Server.
| Methode | Beschreibung |
|---|---|
logImpression() |
Protokolliert manuell eine Impression bei Braze für eine bestimmte Karte. |
logClick() |
Protokolliert manuell einen Klick bei Braze für eine bestimmte Karte. |
Voraussetzungen
Bevor Sie Content Cards verwenden können, müssen Sie das Braze Swift SDK in Ihre App integrieren. Es ist jedoch keine zusätzliche Einrichtung erforderlich.
View-Controller-Kontexte
Die standardmäßige Content-Cards-UI kann aus der Bibliothek BrazeUI des Braze SDK integriert werden. Erstellen Sie den Content-Cards-View-Controller unter Verwendung der braze-Instanz. Wenn Sie den Lifecycle der Content-Card-UI abfangen und darauf reagieren möchten, implementieren Sie BrazeContentCardUIViewControllerDelegate als Delegaten für Ihren BrazeContentCardUI.ViewController.

Weitere Informationen zu den Optionen für iOS-View-Controller finden Sie in der Apple-Entwicklerdokumentation.
Die Bibliothek BrazeUI des Swift SDK bietet zwei Standard-View-Controller-Kontexte: Navigation oder Modal. Das bedeutet, dass Sie Content Cards in diese Kontexte integrieren können, indem Sie ein paar Codezeilen zu Ihrer App oder Website hinzufügen. Beide Ansichten bieten Anpassungs- und Gestaltungsmöglichkeiten, wie in der Anpassungsanleitung beschrieben. Sie können auch einen angepassten Content-Card-View-Controller erstellen, anstatt den Standard-Controller von Braze zu verwenden, um noch mehr Anpassungsmöglichkeiten zu haben – ein Beispiel finden Sie im Content Cards UI-Tutorial.

Um Content Cards als Kontrollvariante in Ihrer angepassten UI zu verarbeiten, übergeben Sie Ihr Braze.ContentCard.Control-Objekt und rufen dann die Methode logImpression auf, wie Sie es mit jedem anderen Content-Card-Typ tun würden. Das Objekt protokolliert implizit eine Kontroll-Impression, um unsere Analytics darüber zu informieren, wann Nutzer:innen die Kontrollkarte gesehen hätten.
Navigation
Ein Navigationscontroller ist ein View-Controller, der mindestens einen untergeordneten View-Controller in einer Navigationsschnittstelle verwaltet. Hier ist ein Beispiel, wie Sie eine Instanz von BrazeContentCardUI.ViewController in einen Navigationscontroller pushen:
1
2
3
4
5
6
7
func pushViewController() {
guard let braze = AppDelegate.braze else { return }
let contentCardsController = BrazeContentCardUI.ViewController(braze: braze)
// Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
contentCardsController.delegate = self
self.navigationController?.pushViewController(contentCardsController, animated: true)
}
1
2
3
4
5
6
- (void)pushViewController {
BRZContentCardUIViewController *contentCardsController = [[BRZContentCardUIViewController alloc] initWithBraze:self.braze];
// Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
[contentCardsController setDelegate:self];
[self.navigationController pushViewController:contentCardsController animated:YES];
}
Modal
Verwenden Sie modale Präsentationen, um den Workflow Ihrer App vorübergehend zu unterbrechen, z. B. indem Sie Nutzer:innen zur Angabe wichtiger Informationen auffordern. Diese modale Ansicht verfügt über eine Navigationsleiste am oberen Rand und einen Done-Button an der Seite der Leiste. Hier ist ein Beispiel, wie Sie eine Instanz von BrazeContentCard.ViewController in einen modalen Controller pushen:
1
2
3
4
5
6
7
func presentModalViewController() {
guard let braze = AppDelegate.braze else { return }
let contentCardsModal = BrazeContentCardUI.ModalViewController(braze: braze)
// Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
contentCardsModal.viewController.delegate = self
self.navigationController?.present(contentCardsModal, animated: true, completion: nil)
}
1
2
3
4
5
6
- (void)presentModalViewController {
BRZContentCardUIModalViewController *contentCardsModal = [[BRZContentCardUIModalViewController alloc] initWithBraze:AppDelegate.braze];
// Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
[contentCardsModal.viewController setDelegate:self];
[self.navigationController presentViewController:contentCardsModal animated:YES completion:nil];
}
Ein Beispiel für die Verwendung von BrazeUI-View-Controllern finden Sie in den entsprechenden Content Cards UI-Beispielen in unserer Beispiel-App.
Basis-Kartenmodell
Das Content-Cards-Datenmodell ist im Modul BrazeKit des Braze Swift SDK verfügbar. Dieses Modul enthält die folgenden Content-Card-Typen, die eine Implementierung des Typs Braze.ContentCard sind. Eine vollständige Liste der Content-Card-Eigenschaften und ihrer Verwendung finden Sie unter ContentCard-Klasse.
- Nur Bild
- Bild mit Bildunterschrift
- Klassisch
- Klassisches Bild
- Kontrollgruppe
Um auf das Content-Cards-Datenmodell zuzugreifen, rufen Sie contentCards.cards in Ihrer braze-Instanz auf. Weitere Informationen zum Abonnieren von Kartendaten finden Sie unter Analytics protokollieren.

Das Lesen von contentCards.cards, contentCards.unviewedCards oder contentCards.lastUpdate blockiert den aufrufenden Thread, bis das SDK seine Post-Initialisierungsoperationen abgeschlossen hat. Für Main-Thread- oder latenzempfindliche Kontexte verwenden Sie stattdessen die nicht-blockierenden Alternativen getCachedContentCards(_:), getUnviewedCards(_:) oder getLastUpdate(_:).

Beachten Sie, dass BrazeKit eine alternative ContentCardRaw-Klasse für Objective-C-Kompatibilität bietet.
Karten-Methoden
Jede Karte wird mit einem Context-Objekt initialisiert, das verschiedene Methoden zur Verwaltung des Kartenstatus enthält. Rufen Sie diese Methoden auf, wenn Sie die entsprechende Statuseigenschaft für ein bestimmtes Kartenobjekt ändern möchten.
| Methode | Beschreibung |
|---|---|
card.context?.logImpression() |
Protokolliert das Content-Card-Impression-Ereignis. |
card.context?.logClick() |
Protokolliert das Content-Card-Klick-Ereignis. |
card.context?.processClickAction() |
Verarbeitet eine gegebene ClickAction-Eingabe. |
card.context?.logDismissed() |
Protokolliert das Ereignis „Content-Card ausgeblendet“. |
card.context?.logError() |
Protokolliert einen Fehler im Zusammenhang mit der Content-Card. |
card.context?.loadImage() |
Lädt ein bestimmtes Content-Card-Bild von einer URL. Diese Methode kann nil sein, wenn die Content-Card kein Bild enthält. |
Weitere Einzelheiten finden Sie in der Dokumentation zur Context-Klasse.
Voraussetzungen
Bevor Sie dieses Feature nutzen können, müssen Sie das Cordova Braze SDK integrieren.
Karten-Feeds
Das Braze SDK enthält einen Standard-Karten-Feed. Um den Standard-Karten-Feed anzuzeigen, können Sie die Methode launchContentCards() verwenden. Diese Methode verarbeitet das gesamte Analytics-Tracking, Ausblendungen und die Darstellung der Content Cards einer Nutzer:in.
Content Cards
Mit diesen zusätzlichen Methoden können Sie einen angepassten Content-Card-Feed in Ihrer App erstellen:
| Methode | Beschreibung |
|---|---|
requestContentCardsRefresh() |
Sendet eine Anfrage im Hintergrund, um die neuesten Content Cards vom Braze SDK-Server anzufordern. |
getContentCardsFromServer(successCallback, errorCallback) |
Ruft Content Cards aus dem Braze SDK ab. Diese Funktion fragt die neuesten Content Cards vom Server ab und gibt nach Abschluss die Liste der Karten zurück. |
getContentCardsFromCache(successCallback, errorCallback) |
Ruft Content Cards aus dem Braze SDK ab. Dies gibt die neueste Liste der Karten aus dem lokalen Cache zurück, die beim letzten Refresh aktualisiert wurde. |
logContentCardClicked(cardId) |
Protokolliert einen Klick für die angegebene Content-Card-ID. |
logContentCardImpression(cardId) |
Protokolliert eine Impression für die angegebene Content-Card-ID. |
logContentCardDismissed(cardId) |
Protokolliert eine Ausblendung für die angegebene Content-Card-ID. |
Über Flutter-Content-Cards
Das Braze SDK enthält einen Standard-Kartenfeed, der Ihnen den Einstieg in die Arbeit mit Content Cards erleichtert. Sie können den Kartenfeed mit der Methode braze.launchContentCards() anzeigen. Der im Braze SDK enthaltene Standard-Kartenfeed verarbeitet das gesamte Analytics-Tracking, Ausblendungen und die Darstellung der Content Cards für Nutzer:innen.
Voraussetzungen
Bevor Sie dieses Feature nutzen können, müssen Sie das Flutter Braze SDK integrieren.
Karten-Methoden
Sie können diese zusätzlichen Methoden verwenden, um einen angepassten Content-Cards-Feed in Ihrer App zu erstellen. Die folgenden Methoden sind in der öffentlichen Schnittstelle des Plugins verfügbar:
| Methode | Beschreibung |
|---|---|
braze.requestContentCardsRefresh() |
Fordert die neuesten Content Cards vom Braze SDK-Server an. |
braze.logContentCardClicked(contentCard) |
Protokolliert einen Klick für das angegebene Content-Card-Objekt. |
braze.logContentCardImpression(contentCard) |
Protokolliert eine Impression für das angegebene Content-Card-Objekt. |
braze.logContentCardDismissed(contentCard) |
Protokolliert eine Ausblendung für das angegebene Content-Card-Objekt. |
Empfangen von Content-Card-Daten
Um Content-Card-Daten in Ihrer Flutter-App zu empfangen, unterstützt BrazePlugin das Senden von Content-Card-Daten mithilfe von Dart-Streams.
Das BrazeContentCard-Objekt unterstützt eine Teilmenge der Felder, die in den nativen Modellobjekten verfügbar sind, darunter description, title, image, url, extras und weitere.
Auf Content-Card-Daten im Dart-Layer lauschen
Um Content-Card-Daten im Dart-Layer zu empfangen, verwenden Sie den folgenden Code, um eine StreamSubscription zu erstellen und braze.subscribeToContentCards() aufzurufen. Denken Sie daran, das Stream-Abo mit cancel() zu beenden, wenn Sie es nicht mehr benötigen.
1
2
3
4
5
6
7
8
9
// Create stream subscription
StreamSubscription contentCardsStreamSubscription;
contentCardsStreamSubscription = braze.subscribeToContentCards((List<BrazeContentCard> contentCards) {
// Handle Content Cards
}
// Cancel stream subscription
contentCardsStreamSubscription.cancel();
Ein Beispiel finden Sie in main.dart in der Braze Flutter SDK-Beispiel-App.
Weiterleitung von Content-Card-Daten aus der nativen iOS-Schicht
Content-Card-Daten werden automatisch von der nativen Android- und iOS-Schicht weitergeleitet. Es ist keine zusätzliche Einrichtung erforderlich.
Wenn Sie Flutter SDK 17.1.0 oder älter verwenden, muss die Weiterleitung von Content-Card-Daten aus der nativen iOS-Schicht manuell eingerichtet werden. Ihre Anwendung enthält wahrscheinlich einen contentCards.subscribeToUpdates-Callback, der BrazePlugin.processContentCards(contentCards) aufruft. Um auf Flutter SDK 18.0.0 zu migrieren, entfernen Sie den Aufruf von BrazePlugin.processContentCards(_:) – die Datenweiterleitung wird jetzt automatisch verarbeitet.
Ein Beispiel finden Sie in AppDelegate.swift in der Braze Flutter SDK-Beispiel-App.
Wiederholung des Callbacks für Content Cards
Um alle Content Cards zu speichern, die getriggert wurden, bevor der Callback verfügbar ist, und sie nach dem Setzen des Callbacks erneut abzuspielen, fügen Sie bei der Initialisierung von BrazePlugin den folgenden Eintrag in die customConfigs-Map ein:
1
BrazePlugin braze = new BrazePlugin(customConfigs: {replayCallbacksConfigKey: true});
Über React Native Content Cards
Die Braze SDKs enthalten einen Standard-Kartenfeed, der Ihnen den Einstieg in die Arbeit mit Content Cards erleichtert. Sie können den Kartenfeed mit der Methode Braze.launchContentCards() anzeigen. Der im Braze SDK enthaltene Standard-Kartenfeed verarbeitet das gesamte Analytics-Tracking, Ausblendungen und die Darstellung der Content Cards für Nutzer:innen.
Voraussetzungen
Bevor Sie dieses Feature nutzen können, müssen Sie das React Native Braze SDK integrieren.
Kartenmethoden
Um Ihre eigene UI zu erstellen, können Sie eine Liste der verfügbaren Karten abrufen und auf Aktualisierungen der Karten warten:
1
2
3
4
5
6
7
8
9
10
11
// Set initial cards
const [cards, setCards] = useState([]);
// Listen for updates as a result of card refreshes, such as:
// a new session, a manual refresh with `requestContentCardsRefresh()`, or after the timeout period
Braze.addListener(Braze.Events.CONTENT_CARDS_UPDATED, async (update) => {
setCards(update.cards);
});
// Manually trigger a refresh of cards
Braze.requestContentCardsRefresh();

Wenn Sie Ihre eigene UI zur Anzeige von Karten erstellen möchten, müssen Sie logContentCardImpression aufrufen, um Analytics für diese Karten zu erhalten. Dies gilt auch für Karten des Typs control, die nachverfolgt werden müssen, auch wenn sie Nutzer:innen nicht angezeigt werden.
Mit diesen zusätzlichen Methoden können Sie einen angepassten Content-Card-Feed in Ihrer App erstellen:
| Methode | Beschreibung |
|---|---|
launchContentCards() |
Startet das Content-Card-UI-Element. |
requestContentCardsRefresh() |
Fordert die neuesten Content Cards vom Braze-SDK-Server an. Die resultierende Kartenliste wird an jeden der zuvor registrierten Content-Card-Event-Listener weitergegeben. |
getCachedContentCards() |
Gibt das aktuellste Content-Card-Array aus dem Cache zurück. |
logContentCardClicked(cardId) |
Protokolliert einen Klick für die angegebene Content-Card-ID. Diese Methode wird nur zu Analytics-Zwecken verwendet. Rufen Sie zum Ausführen der Klick-Aktion zusätzlich processContentCardClickAction(cardId) auf. |
logContentCardImpression(cardId) |
Protokolliert eine Impression für die angegebene Content-Card-ID. |
logContentCardDismissed(cardId) |
Protokolliert eine Ausblendung für die angegebene Content-Card-ID. |
processContentCardClickAction(cardId) |
Führt die Aktion einer bestimmten Karte aus. |
Kartentypen und Eigenschaften
Das Content-Card-Datenmodell ist im React Native SDK verfügbar und bietet die folgenden Content-Card-Kartentypen: Nur Bild, Bildunterschrift und Klassisch. Es gibt auch einen speziellen Kartentyp Kontrollgruppe, der an Nutzer:innen zurückgegeben wird, die sich in der Kontrollgruppe für eine bestimmte Karte befinden. Jeder Typ erbt gemeinsame Eigenschaften von einem Basismodell zusätzlich zu seinen eigenen spezifischen Eigenschaften.

Eine vollständige Referenz des Content-Card-Datenmodells finden Sie in der Android- und der iOS-Dokumentation.
Basis-Kartenmodell
Das Basis-Kartenmodell bietet grundlegende Verhaltensweisen für alle Karten.
| Eigenschaft | Beschreibung |
|---|---|
id |
Die von Braze festgelegte ID der Karte. |
created |
Der Unix-Zeitstempel der Erstellungszeit der Karte von Braze. |
expiresAt |
Der Unix-Zeitstempel des Ablaufzeitpunkts der Karte. Wenn der Wert kleiner als 0 ist, bedeutet dies, dass die Karte nie abläuft. |
viewed |
Ob die Karte von Nutzer:innen gelesen oder ungelesen ist. Damit werden keine Analytics protokolliert. |
clicked |
Ob die Karte von Nutzer:innen angeklickt wurde. |
pinned |
Ob die Karte angeheftet ist. |
dismissed |
Ob Nutzer:innen diese Karte ausgeblendet haben. Eine bereits ausgeblendete Karte erneut als ausgeblendet zu markieren, hat keine Auswirkung. |
dismissible |
Ob die Karte von Nutzer:innen ausgeblendet werden kann. |
url |
(Optional) Der URL-String, der mit der Klick-Aktion der Karte verknüpft ist. |
openURLInWebView |
Ob URLs für diese Karte in der Braze WebView geöffnet werden sollen oder nicht. |
isControl |
Ob diese Karte eine Kontrollkarte ist. Kontrollkarten sollten Nutzer:innen nicht angezeigt werden. |
extras |
Die Map der Key-Value-Extras für diese Karte. |
Eine vollständige Referenz der Basiskarte finden Sie in der Android- und iOS-Dokumentation.
Nur Bild
Nur-Bild-Karten sind anklickbare Bilder in voller Größe.
| Eigenschaft | Beschreibung |
|---|---|
type |
Der Content-Card-Typ, IMAGE_ONLY. |
image |
Die URL des Kartenbilds. |
imageAspectRatio |
Das Seitenverhältnis des Kartenbilds. Es dient als Hinweis, bevor das Laden des Bilds abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen nicht bereitgestellt werden kann. |
Eine vollständige Referenz zu Karten des Typs „Nur Bild“ finden Sie in der Android- bzw. iOS-Dokumentation.
Bildunterschrift
Bildunterschriftenkarten sind anklickbare Bilder in voller Größe mit begleitendem beschreibendem Text.
| Eigenschaft | Beschreibung |
|---|---|
type |
Der Content-Card-Typ, CAPTIONED. |
image |
Die URL des Kartenbilds. |
imageAspectRatio |
Das Seitenverhältnis des Kartenbilds. Es dient als Hinweis, bevor das Laden des Bilds abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen nicht bereitgestellt werden kann. |
title |
Der Titeltext für die Karte. |
cardDescription |
Der Beschreibungstext für die Karte. |
domain |
(Optional) Der Linktext für die Eigenschafts-URL, zum Beispiel "braze.com/resources/". Er kann auf der UI der Karte angezeigt werden, um die Aktion/Richtung beim Anklicken der Karte anzugeben. |
Eine vollständige Referenz zu Karten des Typs „Bildunterschrift“ finden Sie in der Android- bzw. iOS-Dokumentation.
Klassisch
Klassische Karten haben einen Titel, eine Beschreibung und ein optionales Bild vor dem Text.
| Eigenschaft | Beschreibung |
|---|---|
type |
Der Content-Card-Typ, CLASSIC. |
image |
(Optional) Die URL des Kartenbilds. |
title |
Der Titeltext für die Karte. |
cardDescription |
Der Beschreibungstext für die Karte. |
domain |
(Optional) Der Linktext für die Eigenschafts-URL, zum Beispiel "braze.com/resources/". Er kann auf der UI der Karte angezeigt werden, um die Aktion/Richtung beim Anklicken der Karte anzugeben. |
Eine vollständige Referenz der klassischen Content-Card (Textankündigung) finden Sie in der Dokumentation für Android und iOS. Die klassische Bildkarte (Kurznachrichten) finden Sie in der Dokumentation für Android und iOS.
Kontrollgruppe
Kontrollkarten enthalten alle Basiseigenschaften, mit einigen wichtigen Unterschieden. Das Wichtigste:
- Die Eigenschaft
isControlist garantierttrue. - Die Eigenschaft
extrasist garantiert leer.
Eine vollständige Referenz der Kontrollkarte finden Sie in der Android- bzw. iOS-Dokumentation.
Voraussetzungen
Bevor Sie Content Cards verwenden können, integrieren Sie das Braze Swift SDK in Ihre App. Führen Sie dann die Schritte zur Einrichtung Ihrer tvOS-App aus.

Implementieren Sie Ihre eigene angepasste UI, da Content Cards über eine Headless-UI mit dem Swift SDK unterstützt werden—das keine Standard-UI oder Views für tvOS enthält.
Einrichtung Ihrer tvOS-App
Schritt 1: Neue iOS-App erstellen
Wählen Sie in Braze Settings > App Settings und dann Add App. Geben Sie einen Namen für Ihre tvOS-App ein, wählen Sie iOS—nicht tvOS—und dann Add App.


Wenn Sie das Kontrollkästchen tvOS aktivieren, können Sie Content Cards für tvOS nicht anpassen.
Schritt 2: API-Schlüssel Ihrer App abrufen
Wählen Sie in Ihren App-Einstellungen Ihre neue tvOS-App aus und notieren Sie sich den API-Schlüssel Ihrer App. Verwenden Sie diesen Schlüssel, um Ihre App in Xcode zu konfigurieren.

Schritt 3: BrazeKit integrieren
Verwenden Sie den API-Schlüssel Ihrer App, um das Braze Swift SDK in Ihr tvOS-Projekt in Xcode zu integrieren. Sie müssen nur BrazeKit aus dem Braze Swift SDK integrieren.
Schritt 4: Eigene UI erstellen
Da Braze keine Standard-UI für Content Cards auf tvOS bereitstellt, passen Sie diese selbst an. Eine vollständige Anleitung finden Sie in unserem Schritt-für-Schritt-Tutorial: Content Cards für tvOS anpassen. Ein Beispielprojekt finden Sie unter Braze Swift SDK Beispiele.
Voraussetzungen
Bevor Sie dieses Feature nutzen können, müssen Sie das Unity Braze SDK integrieren.
Native Anzeige von Content Cards
Mit dem folgenden Aufruf können Sie die Standard-UI für Content Cards anzeigen:
1
Appboy.AppboyBinding.DisplayContentCards();
Empfangen von Content-Card-Daten in Unity
Sie können Unity-Spielobjekte registrieren, um über eingehende Content Cards benachrichtigt zu werden. Wir empfehlen, Spielobjekt-Listener über den Braze-Konfigurationseditor einzustellen.
Wenn Sie den Spielobjekt-Listener zur Laufzeit konfigurieren müssen, verwenden Sie AppboyBinding.ConfigureListener() und geben Sie BrazeUnityMessageType.CONTENT_CARDS_UPDATED an.
Beachten Sie, dass zusätzlich ein Aufruf an AppboyBinding.RequestContentCardsRefresh() erforderlich ist, um unter iOS Daten in Ihrem Spielobjekt-Listener zu empfangen.
Parsen von Content Cards
Eingehende Nachrichten des Typs string, die im Spielobjekt-Callback Ihrer Content Cards empfangen werden, können in unser vorgefertigtes Modellobjekt ContentCard geparst werden.
Das Parsen von Content Cards erfordert JSON-Parsing. Weitere Details finden Sie im folgenden Beispiel:
Beispiel für einen Content-Card-Callback
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
void ExampleCallback(string message) {
try {
JSONClass json = (JSONClass)JSON.Parse(message);
// Content Card data is contained in the `mContentCards` field of the top level object.
if (json["mContentCards"] != null) {
JSONArray jsonArray = (JSONArray)JSON.Parse(json["mContentCards"].ToString());
Debug.Log(String.Format("Parsed content cards array with {0} cards", jsonArray.Count));
// Iterate over the card array to parse individual cards.
for (int i = 0; i < jsonArray.Count; i++) {
JSONClass cardJson = jsonArray[i].AsObject;
try {
ContentCard card = new ContentCard(cardJson);
Debug.Log(String.Format("Created card object for card: {0}", card));
// Example of logging Content Card analytics on the ContentCard object
card.LogImpression();
card.LogClick();
} catch {
Debug.Log(String.Format("Unable to create and log analytics for card {0}", cardJson));
}
}
}
} catch {
throw new ArgumentException("Could not parse content card JSON message.");
}
}
Aktualisieren von Content Cards
Um Content Cards von Braze zu aktualisieren, rufen Sie eine der folgenden Methoden auf:
1
2
3
4
// results in a network request to Braze
AppboyBinding.RequestContentCardsRefresh()
AppboyBinding.RequestContentCardsRefreshFromCache()
Analytics
Klicks und Impressionen müssen für Content Cards, die nicht direkt von Braze angezeigt werden, manuell protokolliert werden.
Verwenden Sie LogClick() und LogImpression() auf ContentCard, um Klicks und Impressionen für bestimmte Karten zu protokollieren.
Über .NET MAUI Content Cards
Das Braze .NET MAUI (ehemals Xamarin) SDK enthält einen Standard-Karten-Feed, der Ihnen den Einstieg in Content Cards erleichtert. Der im Braze SDK enthaltene Standard-Kartenfeed verarbeitet das gesamte Analytics-Tracking, Ausblendungen und die Darstellung der Content Cards von Nutzer:innen.
Voraussetzungen
Bevor Sie dieses Feature nutzen können, müssen Sie das .NET MAUI Braze SDK integrieren.
Kartentypen und Eigenschaften
Das Braze .NET MAUI SDK verfügt über drei eigene Content-Card-Kartentypen, die ein Basismodell gemeinsam haben: Banner, Bild mit Bildunterschrift und Klassisch. Jeder Typ erbt gemeinsame Eigenschaften von einem Basismodell und hat die folgenden zusätzlichen Eigenschaften.
Basis-Kartenmodell
| Eigenschaft | Beschreibung |
|---|---|
idString |
Die von Braze festgelegte ID der Karte. |
created |
Der Unix-Zeitstempel der Erstellungszeit der Karte von Braze. |
expiresAt |
Der Unix-Zeitstempel des Verfallszeitpunkts der Karte. Wenn der Wert kleiner als 0 ist, bedeutet dies, dass die Karte nie abläuft. |
viewed |
Ob die Karte von Nutzer:innen gelesen oder ungelesen ist. Damit werden keine Analytics protokolliert. |
clicked |
Ob die Karte von Nutzer:innen angeklickt wurde. |
pinned |
Ob die Karte angeheftet ist. |
dismissed |
Ob Nutzer:innen diese Karte ausgeblendet haben. Eine bereits ausgeblendete Karte erneut als ausgeblendet zu markieren, ist ein No-op. |
dismissible |
Ob die Karte von Nutzer:innen ausgeblendet werden kann. |
urlString |
(Optional) Der URL-String, der mit der Kartenklick-Aktion verknüpft ist. |
openUrlInWebView |
Ob die URLs für diese Karte in der Braze WebView geöffnet werden sollen oder nicht. |
isControlCard |
Ob diese Karte eine Kontrollkarte ist. Kontrollkarten sollten Nutzer:innen nicht angezeigt werden. |
extras |
Die Map der Key-Value-Extras für diese Karte. |
isTest |
Ob diese Karte eine Testkarte ist. |
Eine vollständige Referenz der Basiskarte finden Sie in der Android- und iOS-Dokumentation.
Banner
Bannerkarten sind anklickbare Bilder in voller Größe.
| Eigenschaft | Beschreibung |
|---|---|
image |
Die URL des Bildes der Karte. |
imageAspectRatio |
Das Seitenverhältnis des Bildes der Karte. Es dient als Hinweis, bevor der Ladevorgang des Bildes abgeschlossen ist. Beachten Sie, dass die Eigenschaft unter bestimmten Umständen nicht übermittelt werden kann. |
Eine vollständige Referenz der Bannerkarte finden Sie in der Dokumentation für Android und iOS (jetzt umbenannt in „Nur Bild“).
Bild mit Bildunterschrift
Karten mit Bildunterschrift sind anklickbare Bilder in voller Größe mit begleitendem beschreibendem Text.
| Eigenschaft | Beschreibung |
|---|---|
image |
Die URL des Bildes der Karte. |
imageAspectRatio |
Das Seitenverhältnis des Bildes der Karte. Es dient als Hinweis, bevor der Ladevorgang des Bildes abgeschlossen ist. Beachten Sie, dass die Eigenschaft unter bestimmten Umständen nicht übermittelt werden kann. |
title |
Der Titeltext für die Karte. |
cardDescription |
Der Beschreibungstext für die Karte. |
domain |
(Optional) Der Linktext für die Eigenschafts-URL, zum Beispiel "braze.com/resources/". Er kann auf der UI der Karte angezeigt werden, um die Aktion/Richtung beim Anklicken der Karte anzugeben. |
Eine vollständige Referenz zu Karten des Typs „Bild mit Bildunterschrift“ finden Sie in der Android- und iOS-Dokumentation.
Klassisch
Klassische Karten haben einen Titel, eine Beschreibung und ein optionales Bild vor dem Text.
| Eigenschaft | Beschreibung |
|---|---|
image |
(Optional) Die URL des Bildes der Karte. |
title |
Der Titeltext für die Karte. |
cardDescription |
Der Beschreibungstext für die Karte. |
domain |
(Optional) Der Linktext für die Eigenschafts-URL, zum Beispiel "braze.com/resources/". Er kann auf der UI der Karte angezeigt werden, um die Aktion/Richtung beim Anklicken der Karte anzugeben. |
Eine vollständige Referenz der klassischen Content-Card (Textankündigung) finden Sie in der Dokumentation für Android und iOS. Eine vollständige Referenz der klassischen Bildkarte (Kurznachrichten) finden Sie in der Dokumentation für Android und iOS.
Karten-Methoden
Mit diesen zusätzlichen Methoden können Sie einen angepassten Content-Card-Feed in Ihrer App erstellen:
| Methode | Beschreibung |
|---|---|
requestContentCardsRefresh() |
Fordert die neuesten Content Cards vom Braze SDK-Server an. |
getContentCards() |
Ruft Content Cards aus dem Braze SDK ab. Dies gibt die neueste Liste der Karten vom Server zurück. |
logContentCardClicked(cardId) |
Protokolliert einen Klick für die angegebene Content-Card-ID. Diese Methode wird nur zu Analytics-Zwecken verwendet. |
logContentCardImpression(cardId) |
Protokolliert eine Impression für die angegebene Content-Card-ID. |
logContentCardDismissed(cardId) |
Protokolliert eine Ausblendung für die angegebene Content-Card-ID. |