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 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.

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.

  1. Erstellen Sie eine Content-Card-Campaign 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 Browserkonsole. In Chrome klicken Sie mit der rechten Maustaste auf die Seite, wählen Sie Untersuchen und dann den Tab Konsole aus.
  4. 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.

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).

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>

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

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:

  1. 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.

    Seite „Templates“ mit Hinweis auf ein verfügbares Update

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

    Ein Vergleich des alten und neuen Tag-Templates mit einem Button „Accept Update“

  2. Versionsnummer aktualisieren
    Sobald Ihr Tag-Template aktualisiert wurde, bearbeiten Sie das Braze Initialization Tag und aktualisieren Sie die SDK-Version auf die neueste major.minor-Version. 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 Initialization Template mit einem Eingabefeld zur Änderung der SDK-Version

  3. 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.

Das Debugging-Tool von Google Tag Manager

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.

Die Übersichtsseite des Braze Initialization Tags bietet einen Überblick ü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) ausgelöst wird, bevor das Braze Initialization-Tag abgeschlossen ist. 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] aus.
  3. 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.

Die Übersichtsseite des Braze Initialization Tags mit aktivierter 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 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.

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 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();

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.

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 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, integrieren Sie das Braze Swift SDK in Ihre App. Führen Sie dann die Schritte zur Einrichtung Ihrer tvOS-App aus.

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 iOSnicht tvOS—und dann Add App.

Dialog „App hinzufügen“ in Braze mit ausgewählter iOS-Plattform zur Registrierung einer tvOS-App.

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.

App-Einstellungen für eine tvOS-App mit dem API-Schlüssel für die SDK-Integration.

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