Skip to content

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.

Voraussetzungen

Bevor Sie Content Cards verwenden können, müssen Sie das Braze Web SDK in Ihre App integrieren. Es ist jedoch keine zusätzliche Einrichtung erforderlich. Wenn Sie stattdessen eine eigene UI erstellen möchten, lesen Sie den Leitfaden zur Anpassung von Content-Cards.

Standard-Feed-UI

Um die integrierte Content-Cards-UI zu verwenden, müssen Sie angeben, wo der Feed auf Ihrer Website angezeigt werden soll.

In diesem Beispiel möchten wir den Content-Cards-Feed in <div id="feed"></div> platzieren. Wir verwenden drei Buttons, um den Feed auszublenden, einzublenden oder umzuschalten (d. h. je nach aktuellem Status aus- oder einzublenden).

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 angeben, werden alle Content Cards in einer Seitenleiste mit fester Position auf der rechten Seite der Seite angezeigt. Andernfalls wird der Feed in der angegebenen Option parentNode platziert.

Parameter Beschreibung
parentNode Der HTML-Knoten, in den die Content Cards gerendert werden sollen. Wenn der übergeordnete Knoten bereits eine Braze Content-Cards-Ansicht als direktes untergeordnetes Element hat, werden die vorhandenen Content Cards ersetzt. Sie sollten zum Beispiel document.querySelector(".my-container") übergeben.
filterFunction Eine Filter- oder Sortierfunktion für Karten, die in dieser Ansicht angezeigt werden. Wird mit dem Array von Card-Objekten aufgerufen, sortiert nach {pinned, date}. Erwartet die Rückgabe eines Arrays von sortierten Card-Objekten, die für diese:n Nutzer:in dargestellt werden sollen. Wenn Sie diese Option auslassen, werden alle Karten angezeigt.

In der SDK-Referenzdokumentation finden Sie weitere Informationen zum Umschalten von Content Cards.

Content Cards im Web testen

Sie können Ihre Content-Cards-Integration mit den Entwicklertools Ihres Browsers testen.

  1. Erstellen Sie eine Content-Card-Kampagne und richten Sie sie auf Ihre:n Testnutzer:in aus.
  2. Melden Sie sich auf der Website an, auf der Ihre Web-SDK-Integration eingerichtet ist.
  3. Öffnen Sie die Browser-Konsole. In Chrome rechtsklicken Sie auf die Seite, wählen Sie Untersuchen und dann den Tab Konsole.
  4. Führen Sie diese Befehle in der Konsole aus:
    • window.braze.getCachedContentCards()
    • window.braze.toggleContentCards()

Kartentypen und Eigenschaften

Das Content-Cards-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.

Basis-Kartenmodell

Alle Content Cards haben diese gemeinsamen Eigenschaften:

Eigenschaft Beschreibung
expiresAt Der Unix-Zeitstempel des Verfallszeitpunkts der Karte.
extras (Optional) Schlüssel-Wert-Paar-Daten, formatiert als String-Objekt mit einem Wert-String.
id (Optional) Die ID der Karte. Diese wird zu Analytics-Zwecken zusammen mit den Events an Braze zurückgemeldet.
pinned Diese Eigenschaft zeigt an, ob die Karte im Dashboard als „angeheftet“ eingerichtet wurde.
updated Der Unix-Zeitstempel, wann diese Karte zuletzt geändert wurde.
viewed Diese Eigenschaft zeigt an, ob die:der Nutzer:in die Karte angesehen hat oder nicht.
isControl Diese Eigenschaft ist true, wenn eine Karte eine „Kontrollgruppe“ innerhalb eines A/B-Tests ist.

Nur Bild

ImageOnly-Karten sind anklickbare Bilder in voller Größe.

Eigenschaft Beschreibung
aspectRatio Das Seitenverhältnis des Kartenbildes, das als Hinweis dient, bevor das Laden des Bildes abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen nicht übermittelt werden kann.
categories Diese Eigenschaft dient lediglich der Organisation in Ihrer angepassten Implementierung; diese Kategorien können im Dashboard Composer festgelegt werden.
clicked Diese Eigenschaft zeigt an, ob diese Karte jemals auf diesem Gerät angeklickt wurde.
created Der Unix-Zeitstempel der Erstellungszeit der Karte von Braze.
dismissed Diese Eigenschaft zeigt an, ob diese Karte geschlossen wurde.
dismissible Diese Eigenschaft gibt an, ob die:der Nutzer:in die Karte schließen und damit aus der Ansicht entfernen kann.
imageUrl Die URL des Bildes der Karte.
linkText Der Anzeigetext für die URL.
url Die URL, die geöffnet wird, nachdem auf die Karte geklickt wurde.

Bildunterschrift

CaptionedImage-Karten sind anklickbare Bilder in voller Größe mit begleitendem beschreibendem Text.

Eigenschaft Beschreibung
aspectRatio Das Seitenverhältnis des Kartenbildes, das als Hinweis dient, bevor das Laden des Bildes abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen nicht übermittelt werden kann.
categories Diese Eigenschaft dient lediglich der Organisation in Ihrer angepassten Implementierung; diese Kategorien können im Dashboard Composer festgelegt werden.
clicked Diese Eigenschaft zeigt an, ob diese Karte jemals auf diesem Gerät angeklickt wurde.
created Der Unix-Zeitstempel der Erstellungszeit der Karte von Braze.
dismissed Diese Eigenschaft zeigt an, ob diese Karte geschlossen wurde.
dismissible Diese Eigenschaft gibt an, ob die:der Nutzer:in die Karte schließen und damit aus der Ansicht entfernen kann.
imageUrl Die URL des Bildes der Karte.
linkText Der Anzeigetext für die URL.
title Der Titeltext für diese Karte.
url Die URL, die geöffnet wird, nachdem auf die Karte geklickt wurde.

Klassisch

Das ClassicCard-Modell kann ein Bild ohne Text oder einen Text mit Bild enthalten.

Eigenschaft Beschreibung
aspectRatio Das Seitenverhältnis des Kartenbildes, das als Hinweis dient, bevor das Laden des Bildes abgeschlossen ist. Beachten Sie, dass diese Eigenschaft unter bestimmten Umständen nicht übermittelt werden kann.
categories Diese Eigenschaft dient lediglich der Organisation in Ihrer angepassten Implementierung; diese Kategorien können im Dashboard Composer festgelegt werden.
clicked Diese Eigenschaft zeigt an, ob diese Karte jemals auf diesem Gerät angeklickt wurde.
created Der Unix-Zeitstempel der Erstellungszeit der Karte von Braze.
description Der Fließtext für diese Karte.
dismissed Diese Eigenschaft zeigt an, ob diese Karte geschlossen wurde.
dismissible Diese Eigenschaft gibt an, ob die:der Nutzer:in die Karte schließen und damit aus der Ansicht entfernen kann.
imageUrl Die URL des Bildes der Karte.
linkText Der Anzeigetext für die URL.
title Der Titeltext für diese Karte.
url Die URL, die geöffnet wird, nachdem auf die Karte geklickt wurde.

Kontrollgruppe

Wenn Sie den standardmäßigen Content-Cards-Feed verwenden, werden Impressionen und Klicks automatisch getrackt.

Wenn Sie eine angepasste Integration für Content Cards verwenden, müssen Sie Impressionen protokollieren, wenn eine Kontrollgruppen-Karte gesehen worden wäre. Achten Sie darauf, dass Sie bei der Protokollierung der Impressionen in einem A/B-Test auch die Kontrollgruppen-Karten berücksichtigen. Diese Karten sind leer, und obwohl sie von den Nutzer:innen nicht gesehen werden, sollten Sie dennoch Impressionen protokollieren, um zu vergleichen, wie sie im Vergleich zu Nicht-Kontrollkarten abschneiden.

Um festzustellen, ob sich eine Content Card in der Kontrollgruppe für einen A/B-Test befindet, prüfen Sie die Eigenschaft card.isControl (Web SDK v4.5.0+) oder prüfen Sie, ob die Karte eine Instanz des Typs ControlCard ist (card instanceof braze.ControlCard).

Karten-Methoden

Standard-Feed-Methoden

Verwenden Sie diese Methoden, wenn Sie Content Cards mit der standardmäßigen Braze-Feed-UI anzeigen:

Methode Beschreibung
showContentCards Zeigt den standardmäßigen Content-Cards-Feed an. Rendert Karten in ein bereitgestelltes parentNode-HTML-Element oder als Seitenleiste mit fester Position auf der rechten Seite der Seite, wenn kein Element angegeben wird. Akzeptiert eine optionale filterFunction, um Karten vor der Anzeige zu sortieren oder zu filtern.
hideContentCards Blendet den standardmäßigen Content-Cards-Feed aus, wenn er gerade angezeigt wird.
toggleContentCards Zeigt den standardmäßigen 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üssen, verwenden Sie stattdessen showContentCards und hideContentCards.

Methoden für angepasste Feeds

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 dies als primäre Methode, um Kartendaten für Ihren angepassten Feed zu erhalten. Muss vor openSession() aufgerufen werden, um Updates bei der ersten Sitzung zu erhalten.
getCachedContentCards Gibt alle aktuell verfügbaren Karten von der letzten Content-Cards-Aktualisierung zurück. Verwenden Sie dies, um Karten beim Seitenaufruf sofort anzuzeigen, ohne auf eine neue Serveranfrage zu warten, z. B. wenn die:der Nutzer:in während einer aktiven Sitzung zu einer Seite zurückkehrt.
requestContentCardsRefresh Fordert eine sofortige Aktualisierung der Content Cards von den Braze-Servern an. Standardmäßig werden Karten beim Sitzungsstart und beim erneuten Öffnen des Standard-Feeds aktualisiert. Verwenden Sie dies, um eine Aktualisierung zu anderen Zeitpunkten zu erzwingen, z. B. nach einer bestimmten Nutzeraktion. Beachten Sie die Rate-Limits.
logContentCardImpressions Protokolliert Impression-Events für ein Array von Karten. Rufen Sie dies auf, wenn Karten gerendert und für die:den Nutzer:in sichtbar sind. Erforderlich für genaues Kampagnen-Reporting bei Verwendung einer angepassten UI, da Impressionen außerhalb des Standard-Feeds nicht automatisch getrackt werden.
logContentCardClick Protokolliert ein Klick-Event für eine einzelne Karte. Rufen Sie dies auf, wenn eine:ein Nutzer:in mit einer Karte in Ihrer angepassten UI interagiert. Erforderlich für genaues Kampagnen-Reporting, da Klicks außerhalb des Standard-Feeds nicht automatisch getrackt werden.
handleBrazeAction Verarbeitet die URL einer Karte und führt die konfigurierte Klick-Aktion aus, einschließlich Braze-Aktionen (brazeActions://-URLs) und Standard-URL-Navigation. Rufen Sie dies in Ihrem Karten-Klick-Handler auf, um sicherzustellen, dass im Braze-Dashboard konfigurierte Klick-Verhaltensweisen ausgeführt werden.
dismissCard Schließt eine Karte programmatisch und entfernt sie aus dem Feed der:des Nutzer:in. Verwenden Sie dies, um Nutzer:innen das Schließen von Karten in Ihrer angepassten UI zu ermöglichen.

Weitere Einzelheiten 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 Karten verwenden, um Inhalte über Seitenladevorgänge hinweg beizubehalten

Da subscribeToContentCardsUpdates() seinen Callback nur bei neuen Updates aufruft (z. B. beim Sitzungsstart), können Karten aus Ihrem angepassten Feed verschwinden, wenn eine:ein Nutzer:in die Seite während einer Sitzung aktualisiert. Um dies zu verhindern, verwenden Sie getCachedContentCards(), um Karten sofort aus dem lokalen Cache zu rendern, zusammen mit 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 getrackt. Sie müssen jedes Event manuell protokollieren:

  • Impressionen: Rufen Sie logContentCardImpressions([card1, card2, ...]) mit einem Array von Kartenobjekten auf, wenn Karten für die:den Nutzer:in sichtbar werden.
  • Klicks: Rufen Sie logContentCardClick(card) auf, wenn eine:ein Nutzer:in mit einer Karte interagiert.
  • Klick-Verhalten: Rufen Sie handleBrazeAction(card.url) auf, um die konfigurierte Klick-Aktion der Karte auszuführen (z. B. Navigation zu einer URL oder Protokollierung eines angepassten Events).

Google Tag Manager verwenden

Google Tag Manager funktioniert, indem das Braze CDN (eine Version unseres Web SDK) direkt in den Code Ihrer Website eingespeist wird. Das bedeutet, dass alle SDK-Methoden genauso verfügbar sind, als hätten Sie das SDK ohne Google Tag Manager integriert – außer bei der Implementierung von Content Cards.

Content Cards einrichten

Für eine Standardintegration des Content-Card-Feeds können Sie ein Custom HTML-Tag im Google Tag Manager verwenden. Fügen Sie Ihrem Custom-HTML-Tag Folgendes hinzu, um den standardmäßigen Content-Card-Feed zu aktivieren:

1
2
3
<script>
   window.braze.showContentCards();
</script>

Tag-Konfiguration im Google Tag Manager eines Custom-HTML-Tags, das den Content-Card-Feed anzeigt.

Um das Erscheinungsbild von Content Cards und ihres Feeds stärker anpassen zu können, können Sie Content Cards direkt in Ihre native Website integrieren. Hierfür gibt es zwei Möglichkeiten: Sie können die Standard-Feed-UI verwenden oder eine angepasste Feed-UI erstellen.

Bei der Implementierung der Standard-Feed-UI müssen die Methoden von Braze mit window. beginnen. braze.showContentCards sollte dann beispielsweise window.braze.showContentCards lauten.

Für den Stil des angepassten Feeds sind die gleichen Schritte durchzuführen wie bei der Integration des SDK ohne GTM. Wenn Sie zum Beispiel 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 ein Upgrade auf die neueste Version des Braze Web SDK durchzuführen, führen Sie die folgenden drei Schritte im Google Tag Manager-Dashboard aus:

  1. Tag-Template aktualisieren
    Rufen Sie die Seite Templates in Ihrem Workspace auf. Hier sollten Sie ein Symbol sehen, das anzeigt, dass ein Update verfügbar ist.

    Templates-Seite zeigt an, dass ein Update verfügbar ist

    Klicken Sie auf dieses Symbol und klicken Sie nach Überprüfung der Änderung auf Accept Update.

    Ein Bildschirm, der die alten und neuen Tag-Templates vergleicht, mit einem Button „Accept Update“

  2. Versionsnummer aktualisieren
    Nachdem Sie das Tag-Template aktualisiert haben, bearbeiten Sie das Braze-Initialisierungs-Tag und aktualisieren die SDK-Version auf die neueste Version im Format major.minor. Wenn die neueste Version beispielsweise 4.1.2 ist, geben Sie 4.1 ein. Sie können eine Liste der SDK-Versionen in unserem Changelog einsehen.

    Braze-Initialisierungs-Template mit einem Eingabefeld zum Ändern der SDK-Version

  3. QA und Veröffentlichung
    Vergewissern Sie sich, dass die neue SDK-Version funktioniert, indem Sie das Debugging-Tool von Google Tag Manager verwenden, 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 Sie Debug-Nachrichten in der JavaScript-Konsole Ihrer Webseite protokollieren können.

Das Debugging-Tool von Google Tag Manager

Debugging-Modus aufrufen

Eine weitere Möglichkeit, Ihre Google Tag Manager-Integration zu debuggen, ist die Verwendung der Google-Funktion Vorschaumodus.

Auf diese Weise können Sie feststellen, welche Werte von der Datenebene Ihrer Webseite an die einzelnen ausgelösten Braze-Tags gesendet werden, und Sie erfahren, welche Tags ausgelöst wurden und welche nicht.

Die Übersichtsseite des Braze-Initialisierungs-Tags bietet eine Übersicht über das Tag, einschließlich Informationen darüber, welche Tags 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) vor dem Braze Initialization-Tag ausgelöst wird. Um dies zu beheben, konfigurieren Sie die Tag-Reihenfolge in GTM:

  1. Öffnen Sie das Aktions-Tag, das nicht korrekt protokolliert wird.
  2. Wählen Sie unter Advanced Settings > Tag Sequencing die Option A tag that fires before [this tag].
  3. Wählen Sie Ihr Braze Initialization-Tag als Setup-Tag.

Dies stellt sicher, dass das SDK vollständig initialisiert ist, bevor Aktions-Tags versuchen, Daten an Braze zu senden.

Ausführliche Protokollierung aktivieren

Um detaillierte Protokolle für die Fehlerbehebung zu erfassen, können Sie die ausführliche Protokollierung in Ihrer Google Tag Manager-Integration aktivieren. Diese Protokolle erscheinen im Tab Console der Entwicklertools Ihres Browsers.

Navigieren Sie in Ihrer Google Tag Manager-Integration zu Ihrem Braze-Initialisierungs-Tag und wählen Sie Enable Web SDK Logging.

Die Übersichtsseite des Braze-Initialisierungs-Tags mit der aktivierten Option „Enable Web SDK Logging“.

Voraussetzungen

Bevor Sie Braze Content Cards verwenden können, müssen Sie das Braze Android SDK in Ihre App integrieren. Es ist jedoch keine zusätzliche Einrichtung erforderlich.

Google-Fragmente

In Android ist der Content-Card-Feed als Fragment implementiert, das im Braze Android UI-Projekt verfügbar ist. Die Klasse ContentCardsFragment wird automatisch aktualisiert, zeigt den Inhalt der Content Cards an und protokolliert die Nutzungs-Analytics. Die Karten, die in den ContentCards einer Nutzerin oder eines Nutzers angezeigt werden können, werden im Braze-Dashboard erstellt.

Informationen zum Hinzufügen eines Fragments zu einer Aktivität finden Sie in der Dokumentation zu Fragmenten von Google.

Kartentypen und Eigenschaften

Das Datenmodell für Content Cards ist im Android SDK verfügbar und bietet die folgenden einzigartigen Content-Card-Typen. Jeder Typ verfügt über ein Basismodell, wodurch sie neben ihren eigenen einzigartigen Eigenschaften auch gemeinsame Eigenschaften vom Basismodell übernehmen können. Die vollständige Referenzdokumentation finden Sie unter com.braze.models.cards.

Basiskartenmodell

Das Basiskartenmodell bietet grundlegende Verhaltensweisen für alle Karten.

Eigenschaft Beschreibung
getId() Gibt die von Braze festgelegte ID der Karte zurück.
getViewed() Gibt einen booleschen Wert zurück, der angibt, ob die Karte von der Nutzerin oder dem Nutzer gelesen oder ungelesen ist.
getExtras() Gibt eine Map mit Schlüssel-Wert-Extras für diese Karte zurück.
getCreated() Gibt den Unix-Zeitstempel des Erstellungszeitpunkts der Karte aus Braze zurück.
isPinned Gibt einen booleschen Wert zurück, der angibt, ob die Karte angeheftet ist.
getOpenUriInWebView() Gibt einen booleschen Wert zurück, der angibt, ob URIs für diese Karte
in Braze WebView geöffnet werden sollen oder nicht.
getExpiredAt() Ruft das Ablaufdatum der Karte ab.
isRemoved() Gibt einen booleschen Wert zurück, der angibt, ob die Endnutzerin oder der Endnutzer diese Karte geschlossen hat.
isDismissibleByUser() Gibt einen booleschen Wert zurück, der angibt, ob die Karte von 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 ausgeblendet wurde. Setzen Sie den Wert auf true, um die Karte als ausgeblendet zu markieren. Wenn eine Karte bereits als ausgeblendet markiert ist, kann sie nicht erneut als ausgeblendet markiert werden.
isControl() Gibt einen booleschen Wert zurück, wenn diese Karte eine Kontrollkarte ist und nicht gerendert werden sollte.

Nur Bild

Karten, die nur aus Bildern bestehen, sind anklickbare Bilder in voller Größe.

Eigenschaft Beschreibung
getImageUrl() Gibt die URL des Bildes der Karte zurück.
getUrl() Gibt die URL zurück, die nach dem Klick auf die Karte geöffnet wird. Kann eine HTTP(s)-URL oder eine Protokoll-URL sein.
getDomain() Gibt den Linktext für die URL der Eigenschaft zurück.

Bild mit Bildunterschrift

Bildkarten mit Bildunterschrift sind anklickbare Bilder in voller Größe mit begleitendem Beschreibungstext.

Eigenschaft Beschreibung
getImageUrl() Gibt die URL des Bildes der Karte zurück.
getTitle() Gibt den Titeltext für die Karte zurück.
getDescription() Gibt den Textkörper für die Karte zurück.
getUrl() Gibt die URL zurück, die nach dem Klick auf die Karte geöffnet wird. Kann eine HTTP(s)-URL oder eine Protokoll-URL sein.
getDomain() Gibt den Linktext für die URL der Eigenschaft zurück.

Klassisch

Eine klassische Karte ohne Bild wird zu einer Textankündigungskarte. Wenn ein Bild enthalten ist, erhalten Sie eine kurze Nachrichtenkarte.

Eigenschaft Beschreibung
getTitle() Gibt den Titeltext für die Karte zurück.
getDescription() Gibt den Textkörper für die Karte zurück.
getUrl() Gibt die URL zurück, die nach dem Klick auf die Karte geöffnet wird. Kann eine HTTP(s)-URL oder eine Protokoll-URL sein.
getDomain() Gibt den Linktext für die URL der Eigenschaft zurück.
getImageUrl() Gibt die URL des Kartenbildes zurück, gilt nur für die klassische Short News Card.
isDismissed Gibt einen booleschen Wert zurück, der angibt, ob die Karte ausgeblendet wurde. Setzen Sie den Wert auf true, um die Karte als ausgeblendet zu markieren. Wenn eine Karte bereits als ausgeblendet markiert ist, kann sie nicht erneut als ausgeblendet markiert werden.

Karten-Methoden

Alle Card-Datenmodellobjekte bieten die folgenden Analytics-Methoden für die Protokollierung von Nutzerereignissen auf Braze-Servern.

Methode Beschreibung
logImpression() Protokollieren Sie manuell eine Impression in Braze für eine bestimmte Karte.
logClick() Protokollieren Sie manuell einen Klick in 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.

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.

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.

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.

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 Objekt BrazeContentCard 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 Benutzeroberfläche 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();

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.
getContentCards() Ruft Content Cards aus dem Braze SDK ab. Gibt ein Promise zurück, das mit der neuesten Kartenliste vom Server aufgelöst wird.
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.

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 Benutzeroberfläche 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 auf der linken Seite des Textes.

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 Benutzeroberfläche 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 isControl ist garantiert true.
  • Die Eigenschaft extras ist garantiert leer.

Eine vollständige Referenz der Kontrollkarte finden Sie in der Android- bzw. iOS-Dokumentation.

Voraussetzungen

Bevor Sie Content-Cards verwenden können, müssen Sie das Braze Swift SDK in Ihre App integrieren. Dann müssen Sie die Schritte zur Einrichtung Ihrer tvOS App ausführen.

Einrichten Ihrer tvOS-App

Schritt 1: Erstellen Sie eine neue iOS-App

Wählen Sie in Braze Einstellungen > App-Einstellungen und wählen Sie dann App hinzufügen. Geben Sie einen Namen für Ihre tvOS-App ein, wählen Sie iOSnicht tvOS – und dann App hinzufügen aus.

ALT_TEXT.

Schritt 2: Holen Sie sich den API-Schlüssel für Ihre App

Wählen Sie in Ihren App-Einstellungen Ihre neue tvOS-App aus und notieren Sie sich den API-Schlüssel Ihrer App. Sie verwenden diesen Schlüssel, um Ihre App in Xcode zu konfigurieren.

ALT_TEXT

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 über das Braze Swift SDK integrieren.

Schritt 4: Angepasste UI erstellen

Da Braze unter tvOS keine Standard-UI für Content-Cards bietet, müssen Sie diese selbst anpassen. Eine ausführliche Anleitung finden Sie in unserem Schritt-für-Schritt-Tutorial: Anpassen von Content-Cards für tvOS. 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-Benutzeroberfläche für Inhaltskarten anzeigen:

1
Appboy.AppboyBinding.DisplayContentCards();

Empfangen von Inhaltskartendaten in Unity

Sie können Unity-Spielobjekte registrieren, um über eingehende Content-Cards benachrichtigt zu werden. Wir empfehlen Ihnen, 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 Inhaltskarten

Eingehende Nachrichten des Typs string, die im Spielobjekt-Callback von Content-Cards empfangen werden, können in unser vorgefertigtes Modellobjekt ContentCard geparst werden.

Das Parsen von Content-Cards erfordert JSON-Parsing, siehe das folgende Beispiel für Details:

Beispiel für das Callback von Content-Cards
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 Inhaltskarten

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 auf der linken Seite des Textes.

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.
New Stuff!