Cartes de contenu
Découvrez les cartes de contenu pour le SDK de Braze, notamment les différents modèles de données et les propriétés spécifiques aux cartes disponibles pour votre application.
Prerequisites
Before you can use Braze Content Cards, you’ll need to integrate the Braze Android SDK into your app. However, no additional setup is required.
Google fragments
In Android, the Content Cards feed is implemented as a fragment available in the Braze Android UI project. The ContentCardsFragment class will automatically refresh and display the contents of the Content Cards and log usage analytics. The cards that can appear in a user’s ContentCards are created on the Braze dashboard.
To learn how to add a fragment to an activity, see Google’s fragments documentation.
Card types and properties
The Content Cards data model is available in the Android SDK and offers the following unique Content Card types. Each type shares a base model, which allows them to inherit common properties from the base model, in addition to having their own unique properties. For full reference documentation, see com.braze.models.cards.
Base card model
The base card model provides foundational behavior for all cards.
| Property | Description |
|---|---|
getId() |
Returns the card’s ID set by Braze. |
getViewed() |
Returns a boolean reflects if the card is read or unread by the user. |
getExtras() |
Returns a map of key-value extras for this card. |
getCreated() |
Returns the unix timestamp of the card’s creation time from Braze. |
isPinned |
Returns a boolean that reflects whether the card is pinned. |
getOpenUriInWebView() |
Returns a boolean that reflects whether Uris for this card should be opened in the Braze WebView or not. |
getExpiredAt() |
Gets the expiration date of the card. |
isRemoved() |
Returns a boolean that reflects whether the end user has dismissed this card. |
isDismissibleByUser() |
Returns a boolean that reflects whether the card is dismissible by the user. |
isClicked() |
Returns a boolean that reflects the clicked state of this card. |
isDismissed() |
Returns a boolean if this card has been dismissed. |
isControl() |
Returns a boolean if this card is a control card and should not be rendered. |
Image only
Image only cards are clickable full-sized images.
| Property | Description |
|---|---|
getImageUrl() |
Returns the URL of the card’s image. |
getUrl() |
Returns the URL that will be opened after the card is clicked. It can be a HTTP(s) URL or a protocol URL. |
getDomain() |
Returns link text for the property URL. |
Captioned image
Captioned image cards are clickable, full-sized images with accompanying descriptive text.
| Property | Description |
|---|---|
getImageUrl() |
Returns the URL of the card’s image. |
getTitle() |
Returns the title text for the card. |
getDescription() |
Returns the body text for the card. |
getUrl() |
Returns the URL that will be opened after the card is clicked. It can be a HTTP(s) URL or a protocol URL. |
getDomain() |
Returns the link text for the property URL. |
Classic
A classic card without an image included will result in a text announcement card. If an image is included, you will receive a short news card.
| Property | Description |
|---|---|
getTitle() |
Returns the title text for the card. |
getDescription() |
Returns the body text for the card. |
getUrl() |
Returns the URL that will be opened after the card is clicked. It can be a HTTP(s) URL or a protocol URL. |
getDomain() |
Returns the link text for the property URL. |
getImageUrl() |
Returns the URL of the card’s image, applies only to the classic Short News Card. |
Card methods
All Card data model objects offer the following analytics methods for logging user events to Braze servers.
| Method | Description |
|---|---|
logImpression() |
Manually log an impression to Braze for a particular card. |
logClick() |
Manually log a click to Braze for a particular card. |
setIsDismissed() |
Manually log a dismissal to Braze for a particular card. If a card is already marked as dismissed, it cannot be marked as dismissed again. |
Prerequisites
Before you can use Content Cards, you’ll need to integrate the Braze Swift SDK into your app. However, no additional setup is required.
View controller contexts
The default Content Cards UI can be integrated from the BrazeUI library of the Braze SDK. Create the Content Cards view controller using the braze instance. If you wish to intercept and react to the Content Card UI lifecycle, implement BrazeContentCardUIViewControllerDelegate as the delegate for your BrazeContentCardUI.ViewController.
For more information about iOS view controller options, refer to the Apple developer documentation.
The BrazeUI library of the Swift SDK provides two default view controller contexts: navigation or modal. This means you can integrate Content Cards in these contexts by adding a few lines of code to your app or site. Both views offer customization and styling options as described in the customization guide. You can also create a custom Content Card view controller instead of using the standard Braze one for even more customization options—refer to the Content Cards UI tutorial for an example.
To handle control variant Content Cards in your custom UI, pass in your Braze.ContentCard.Control object, then call the logImpression method as you would with any other Content Card type. The object will implicitly log a control impression to inform our analytics of when a user would have seen the control card.
Navigation
A navigation controller is a view controller that manages one or more child view controllers in a navigation interface. Here is an example of pushing a BrazeContentCardUI.ViewController instance into a navigation controller:
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
Use modal presentations to create temporary interruptions in your app’s workflow, such as prompting the user for important information. This model view has a navigation bar on top and a Done button on the side of the bar. Here is an example of pushing a BrazeContentCard.ViewController instance into a modal controller:
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];
}
For example usage of BrazeUI view controllers, check out the corresponding Content Cards UI samples in our Examples app.
Base card model
The Content Cards data model is available in the BrazeKit module of the Braze Swift SDK. This module contains the following Content Card types, which are an implementation of the Braze.ContentCard type. For a full list of Content Card properties and their usage, see ContentCard class.
- Image only
- Captioned image
- Classic
- Classic image
- Control
To access the Content Cards data model, call contentCards.cards on your braze instance. See Logging analytics for more information on subscribing to card data.
Keep in mind, BrazeKit offers an alternative ContentCardRaw class for Objective-C compatibility.
Card methods
Each card is initialized with a Context object, which contains various methods for managing your card’s state. Call these methods when you want to modify the corresponding state property on a particular card object.
| Method | Description |
|---|---|
card.context?.logImpression() |
Log the content card impression event. |
card.context?.logClick() |
Log the content card click event. |
card.context?.processClickAction() |
Process a given ClickAction input. |
card.context?.logDismissed() |
Log the content card dismissed event. |
card.context?.logError() |
Log an error related to the content card. |
card.context?.loadImage() |
Load a given content card image from a URL. This method can be nil when the content card does not have an image. |
For more details, refer to the Context class documentation
This guide uses code samples from the Braze Web SDK 4.0.0+. To upgrade to the latest Web SDK version, see SDK Upgrade Guide.
Conditions préalables
Avant de pouvoir utiliser les cartes de contenu, vous devez intégrer le SDK Web de Braze dans votre application. Cependant, aucune configuration supplémentaire n’est nécessaire. Pour créer votre propre interface utilisateur, consultez le Guide de personnalisation des cartes de contenu.
IU de flux standard
Pour utiliser l’IU de cartes de contenu comprise, vous devez spécifier où afficher le flux sur votre site Internet.
Dans cet exemple, nous avons un <div id="feed"></div> dans lequel nous voulons placer le flux de cartes de contenu. Nous utiliserons trois boutons pour masquer, afficher ou basculer le flux (masquer ou afficher en fonction de son état actuel).
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>
Lorsque vous utilisez les méthodes toggleContentCards(parentNode, filterFunction) et showContentCards(parentNode, filterFunction), si aucun argument n’est fourni, toutes les cartes de contenu seront affichées dans une barre latérale à position fixe sur le côté droit de la page. Sinon, l’alimentation sera placée dans les options parentNode de l’appareil.
| Paramètres | Description |
|---|---|
parentNode |
Le nœud HTML pour y afficher les cartes de contenu. Si le nœud parent possède déjà une vue de carte de contenu Braze comme descendant direct, les cartes de contenu existantes seront remplacées. Par exemple, vous devriez transmettre en document.querySelector(".my-container"). |
filterFunction |
Un filtre ou une fonction de tri pour les cartes affichées dans cette vue. Invoqué avec le tableau d’objets Card, triés selon {pinned, date}. On s’attend à ce qu’il retourne un tableau d’objets Card triés à afficher pour cet utilisateur. S’il est omis, toutes les cartes seront affichées. |
Consultez la documentation de référence du SDK pour plus d’informations sur la façon de basculer les cartes de contenu.
Types de cartes et propriétés
Le modèle de données des cartes de contenu est disponible dans le SDK Web et offre les types de cartes de contenu suivants : ImageOnly, CaptionedImage et ClassicCard. Chaque type hérite des propriétés communes d’un modèle de base Card et possède les propriétés supplémentaires suivantes.
Pour enregistrer les données de la carte de contenu, reportez-vous à la section Enregistrement des analyses des cartes.
Modèle de carte de base
Toutes les cartes de contenu ont ces propriétés communes :
| Propriété | Description |
|---|---|
expiresAt |
L’horodatage UNIX du moment d’expiration de la carte. |
extras |
(Facultatif) Les données de paires clé-valeur formatées en tant qu’objet de chaîne de caractères avec une chaîne de valeur. |
id |
(Facultatif) L’ID de la carte. Cela sera rapporté à Braze avec des événements à des fins d’analytique. |
pinned |
Cette propriété reflète si la carte a été définie comme « épinglée » dans le tableau de bord. |
updated |
L’horodatage UNIX de la dernière modification de cette carte. |
viewed |
Cette propriété indique si l’utilisateur a vu la carte ou non. |
isControl |
Cette propriété est true lorsqu’une carte est un groupe de « contrôle » au cours d’un test A/B. |
Image uniquement
Les cartes ImageOnly sont des images cliquables en taille réelle.
| Propriété | Description |
|---|---|
aspectRatio |
Le rapport hauteur/largeur de l’image de la carte sert d’indice avant le chargement complet de l’image. Veuillez noter que la propriété peut ne pas être fournie dans certaines circonstances. |
categories |
Cette propriété vous permet d’organiser votre mise en œuvre personnalisée. Ces catégories peuvent être définies dans le générateur de tableaux de bord. |
clicked |
Cette propriété indique si cette carte a déjà été cliquée sur cet appareil. |
created |
L’horodatage UNIX du moment de création de la carte depuis Braze. |
dismissed |
Cette propriété indique si cette carte a été rejetée. |
dismissible |
Cette propriété reflète si l’utilisateur peut rejeter la carte, la supprimant de la vue. |
imageUrl |
L’URL de l’image de la carte. |
linkText |
Le texte d’affichage de l’URL. |
url |
L’URL qui sera ouverte après avoir cliqué sur la carte. |
Image avec légende
Les cartes d’images sous-titrées sont des images cliquables en taille réelle accompagnées d’un texte descriptif.
| Propriété | Description |
|---|---|
aspectRatio |
Le rapport hauteur/largeur de l’image de la carte sert d’indice avant le chargement complet de l’image. Veuillez noter que la propriété peut ne pas être fournie dans certaines circonstances. |
categories |
Cette propriété vous permet d’organiser votre mise en œuvre personnalisée. Ces catégories peuvent être définies dans le générateur de tableaux de bord. |
clicked |
Cette propriété indique si cette carte a déjà été cliquée sur cet appareil. |
created |
L’horodatage UNIX du moment de création de la carte depuis Braze. |
dismissed |
Cette propriété indique si cette carte a été rejetée. |
dismissible |
Cette propriété reflète si l’utilisateur peut rejeter la carte, la supprimant de la vue. |
imageUrl |
L’URL de l’image de la carte. |
linkText |
Le texte d’affichage de l’URL. |
title |
Le texte du titre pour cette carte. |
url |
L’URL qui sera ouverte après avoir cliqué sur la carte. |
Classique
Le modèle ClassicCard peut contenir une image sans texte ou un texte avec image.
| Propriété | Description |
|---|---|
aspectRatio |
Le rapport hauteur/largeur de l’image de la carte sert d’indice avant le chargement complet de l’image. Veuillez noter que la propriété peut ne pas être fournie dans certaines circonstances. |
categories |
Cette propriété vous permet d’organiser votre mise en œuvre personnalisée. Ces catégories peuvent être définies dans le générateur de tableaux de bord. |
clicked |
Cette propriété indique si cette carte a déjà été cliquée sur cet appareil. |
created |
L’horodatage UNIX du moment de création de la carte depuis Braze. |
description |
Le texte du corps pour cette carte. |
dismissed |
Cette propriété indique si cette carte a été rejetée. |
dismissible |
Cette propriété reflète si l’utilisateur peut rejeter la carte, la supprimant de la vue. |
imageUrl |
L’URL de l’image de la carte. |
linkText |
Le texte d’affichage de l’URL. |
title |
Le texte du titre pour cette carte. |
url |
L’URL qui sera ouverte après avoir cliqué sur la carte. |
Groupe de contrôle
Si vous utilisez le flux par défaut des cartes de contenu, les impressions et les clics seront automatiquement suivis.
Si vous utilisez une intégration personnalisée pour les cartes de contenu, vous devez enregistrer les impressions lorsqu’une carte de contrôle aurait été vue. Dans ce cadre, veillez à gérer les cartes de contrôle lorsque vous enregistrez des impressions dans un test A/B. Ces cartes sont vierges et, bien qu’elles ne soient pas vues par les utilisateurs, vous devriez tout de même enregistrer les impressions afin de comparer leurs performances à celles des cartes de non-contrôle.
Pour déterminer si une carte de contenu se trouve dans le groupe de contrôle pour un test A/B, vérifiez la propriété card.isControl (SDK Web v4.5.0+) ou vérifiez si la carte est une instance de ControlCard (card instanceof braze.ControlCard).
Méthodes de carte
| Méthode | Description |
|---|---|
logContentCardImpressions |
Enregistre un événement d’impression pour la liste de cartes donnée. Cela est nécessaire si vous utilisez une IU personnalisée et non l’IU Braze. |
logContentCardClick |
Enregistre un événement de clic pour une carte donnée. Cela est nécessaire si vous utilisez une IU personnalisée et non l’IU Braze. |
showContentCards |
Affiche les cartes de contenu de l’utilisateur. |
hideContentCards |
Masque les cartes de contenu Braze actuellement affichées. |
toggleContentCards |
Affiche les cartes de contenu de l’utilisateur. |
getCachedContentCards |
Obtient toutes les cartes actuellement disponibles depuis le dernier rafraîchissement de cartes de contenu. |
subscribeToContentCardsUpdates |
Abonne aux mises à jour des cartes de contenu. La fonction de rappel de l’abonné sera appelée chaque fois que les cartes de contenu seront mises à jour. |
dismissCard |
Rejette la carte de manière programmatique (disponible dans la version 2.4.1). |
Pour plus de détails, reportez-vous à la documentation de référence du SDK
Utilisation de Google Tag Manager
Google Tag Manager fonctionne en injectant le réseau de diffusion de Braze (une version de notre SDK Web) directement dans le code de votre site web, ce qui signifie que toutes les méthodes du SDK sont disponibles comme si vous aviez intégré le SDK sans Google Tag Manager, sauf lors de l’implémentation des cartes de contenu.
Mise en place des cartes de contenu
Pour une intégration standard du flux de la carte de contenu, vous pouvez utiliser une étiquette HTML personnalisée dans Google Tag Manager. Ajoutez ce qui suit à votre balise HTML personnalisée, ce qui activera le flux de carte de contenu standard :
1
2
3
<script>
window.braze.showContentCards();
</script>

Pour obtenir plus de libertés pour personnaliser l’apparence de vos cartes de contenu et leurs flux, vous pouvez intégrer directement les cartes de contenu dans votre site Internet natif. Vous pouvez suivre deux approches dans ce domaine : utiliser l’IU de flux standard ou créer une IU de flux personnalisée.
Lors de l’implémentation de l’interface utilisateur standard, les méthodes de Braze doivent être précédées de window.. Par exemple, braze.showContentCards devrait être window.braze.showContentCards à la place.
Pour l’habillage du flux personnalisé, les étapes sont les mêmes que si vous aviez intégré le SDK sans GTM. Par exemple, si vous désirez personnaliser la largeur de votre flux de carte de contenu, vous pouvez coller ce qui suit dans votre fichier CSS :
1
2
3
body .ab-feed {
width: 800px;
}
Mise à jour des modèles
Pour obtenir la dernière version du SDK Web de Braze, effectuez les trois étapes suivantes dans votre tableau de bord Google Tag Manager :
- Mise à jour du modèle de balise
Accédez à la page Modèles de votre espace de travail. Vous devez y voir une icône indiquant qu’une mise à jour est disponible.
Cliquez sur cette icône et, après avoir révisé la modification, cliquez sur Accepter la mise à jour.
- Mise à jour du numéro de version
Une fois votre modèle de balise mis à jour, modifiez la balise d’initialisation Braze et mettez à jour la version SDK sur la version la plus récentemajor.minor. Par exemple, si la dernière version est4.1.2, saisissez4.1. Vous pouvez consulter la liste des versions du SDK dans notre journal des modifications.
- AQ et publication
Vérifiez que la nouvelle version du SDK fonctionne à l’aide de l’ outil de débogage de Google Tag Manager avant de publier une mise à jour de votre conteneur d’étiquettes.
Résolution des problèmes{#troubleshooting}
Activer le débogage de balise
Chaque modèle de balise de Braze dispose d’une case à cocher facultative Débogage de balises GTM qui peut être utilisée pour enregistrer les messages de débogage sur la console JavaScript de votre page Web.

Entrer dans le mode débogage
Un autre moyen de déboguer l’intégration de Google Tag Manager est d’utiliser la fonctionnalité de prévisualisation de Google.
Cela permet d’identifier les valeurs envoyées par la couche de données de votre page web à chaque étiquette Braze déclenchée et d’expliquer quelles étiquettes ont été déclenchées ou non.

Activer la jounalisation verbeuse
Pour permettre à l’assistance technique de Braze de soutenir les journaux d’accès lors du test, vous pouvez activer la journalisation verbeuse sur votre intégration de Google Tag Manager. Ces journaux apparaîtront dans l’onglet Console des outils de développement de votre navigateur .
Dans votre intégration Google Tag Manager, accédez à votre balise d’initialisation Braze et sélectionnez Activer la journalisation du SDK Web.

Prerequisites
Before you can use this feature, you’ll need to integrate the Cordova Braze SDK.
Flux de cartes
Le SDK Braze comprend un flux de cartes par défaut. Pour afficher le flux de cartes par défaut, vous pouvez utiliser la méthode launchContentCards(). Cette méthode gère l’ensemble des activités de suivi des analyses, de rejets et de rendu des cartes de contenu d’un utilisateur.
Cartes de contenu
Vous pouvez utiliser ces méthodes supplémentaires pour créer un flux de cartes de contenu personnalisé dans votre application :
| Méthode | Description |
|---|---|
requestContentCardsRefresh() |
Envoie une requête en arrière-plan pour demander les dernières cartes de contenu au serveur SDK de Braze. |
getContentCardsFromServer(successCallback, errorCallback) |
Récupère les cartes de contenu du SDK Braze Cette fonction demande les dernières cartes de contenu au serveur et renvoie la liste des cartes terminées. |
getContentCardsFromCache(successCallback, errorCallback) |
Récupère les cartes de contenu du SDK Braze Cette fonction renvoie la dernière liste de cartes du cache local, qui a été actualisée lors de la dernière actualisation. |
logContentCardClicked(cardId) |
Enregistre un clic pour l’ID de carte de contenu donné. |
logContentCardImpression(cardId) |
Enregistre une impression pour l’ID de carte de contenu donné. |
logContentCardDismissed(cardId) |
Enregistre un rejet pour l’ID de carte de contenu donné. |
À propos des cartes de contenu de Flutter
Le SDK Braze comprend un flux de cartes par défaut pour vous permettre de vous lancer dans les cartes de contenu. Pour afficher le flux de carte, vous pouvez utiliser la méthode braze.launchContentCards(). Le flux de cartes par défaut inclus avec le SDK Braze traitera tous les suivis, les masquages et le rendu des cartes de contenu d’un utilisateur.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK de Flutter Braze.
Méthodes de carte
Vous pouvez utiliser ces méthodes supplémentaires pour créer un flux de cartes de contenu personnalisé dans votre application en utilisant les méthodes suivantes disponibles sur l’interface publique du plugin:
| Méthode | Description |
|---|---|
braze.requestContentCardsRefresh() |
Demande les dernières cartes de contenu au serveur Braze SDK. |
braze.logContentCardClicked(contentCard) |
Enregistre un clic pour l’objet de carte de contenu donné. |
braze.logContentCardImpression(contentCard) |
Enregistre une impression pour l’objet de carte de contenu donné. |
braze.logContentCardDismissed(contentCard) |
Enregistre un abandon pour l’objet de carte de contenu donné. |
Réception des données de cartes de contenu
Pour recevoir des données de cartes de contenu dans votre application Flutter, le BrazePlugin prend en charge l’envoi de données de cartes de contenu à l’aide de Dart Streams.
L’objet BrazeContentCard prend en charge un sous-ensemble de champs disponibles dans les objets du modèle natif, y compris description, title, image, url, extras et plus encore.
Étape 1 : Écoutez les données de la carte de contenu dans la couche Dart
Pour recevoir les données de cartes de contenu dans la couche Dart, utilisez le code ci-dessous pour créer un StreamSubscription et appeler braze.subscribeToContentCards(). N’oubliez pas de cancel() l’abonnement au flux lorsqu’il n’est plus nécessaire.
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();
Consultez main.dart dans notre exemple d’application.
Étape 2 : Transférer les données de la carte de contenu depuis la couche native
Pour recevoir les données dans la couche Dart à partir de l’étape 1, ajoutez le code suivant pour transférer les données de la carte de contenu des couches natives.
Les données de la carte de contenu sont automatiquement transférées depuis la couche Android.
-
Implémentez
contentCards.subscribeToUpdatespour vous abonner aux mises à jour des cartes de contenu comme décrit dans la documentation subscribeToUpdates. -
Votre implémentation de fonction de rappel
contentCards.subscribeToUpdatesdoit appelerBrazePlugin.processContentCards(contentCards).
Consultez AppDelegate.swift dans notre exemple d’application.
Rejouer la fonction de rappel pour les cartes de contenu
Pour enregistrer n’importe quelle carte de contenu déclenchée avant que la fonction de rappel soit disponible et la rejouer une fois qu’elle est définie, ajoutez l’entrée suivante à la map customConfigs lors de l’initialisation du BrazePlugin :
1
BrazePlugin braze = new BrazePlugin(customConfigs: {replayCallbacksConfigKey: true});
À propos des cartes de contenu React Native
Les SDK Braze incluent un flux de cartes par défaut pour vous permettre de démarrer avec les cartes de contenu. Pour afficher le flux de carte, vous pouvez utiliser la méthode Braze.launchContentCards(). Le flux de cartes par défaut inclus avec le SDK Braze traitera tous les suivis, les masquages et le rendu des cartes de contenu d’un utilisateur.
Prerequisites
Before you can use this feature, you’ll need to integrate the React Native Braze SDK.
Méthodes pour les cartes
Pour créer votre propre interface utilisateur, vous pouvez obtenir une liste des cartes disponibles et écouter des mises à jour des cartes :
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();
Si vous choisissez de créer votre propre interface utilisateur, vous devez appeler logContentCardImpression pour recevoir des analyses pour ces cartes. Ceci inclut les cartes control, qui doivent faire l’objet d’un suivi même si elles ne sont pas affichées pour l’utilisateur.
Vous pouvez utiliser ces méthodes supplémentaires pour créer un flux de cartes de contenu personnalisé dans votre application :
| Méthode | Description |
|---|---|
launchContentCards() |
Lance l’élément d’interface utilisateur Cartes de contenu. |
requestContentCardsRefresh() |
Demande les dernières cartes de contenu au serveur Braze SDK. La liste de cartes qui en résulte est transmise à chacun des récepteurs d’événements de carte de contenu précédemment enregistrés. |
getContentCards() |
Récupère les cartes de contenu du SDK Braze Ceci renvoie une promesse qui se résout avec la dernière liste de cartes du serveur. |
getCachedContentCards() |
Renvoie le tableau de cartes de contenu le plus récent du cache. |
logContentCardClicked(cardId) |
Enregistre un clic pour l’ID de carte de contenu donné. Cette méthode est uniquement utilisée pour les analyses. Pour exécuter l’action de clic, appelez processContentCardClickAction(cardId) en plus. |
logContentCardImpression(cardId) |
Enregistre une impression pour l’ID de carte de contenu donné. |
logContentCardDismissed(cardId) |
Enregistre un rejet pour l’ID de carte de contenu donné. |
processContentCardClickAction(cardId) |
Effectuer l’action d’une carte particulière. |
Types de cartes et propriétés
Le modèle de données Content Cards est disponible dans le SDK React Native et propose les types de cartes Content Cards suivants : Image seule, Image légendée et Classique. Il existe également un type de carte spécial “ Contrôle”, qui est renvoyé aux utilisateurs qui font partie du groupe de contrôle pour une carte donnée. Chaque type hérite des propriétés communes d’un modèle de base en plus de ses propriétés uniques.
Modèle de carte de base
Le modèle de carte de base fournit un comportement fondamental pour toutes les cartes.
| Propriété | Description |
|---|---|
id |
L’ID de la carte est défini par Braze. |
created |
L’horodatage UNIX du moment de création de la carte depuis Braze. |
expiresAt |
L’horodatage UNIX du moment d’expiration de la carte. Lorsque la valeur est inférieure à 0, cela signifie que la carte n’expire jamais. |
viewed |
Si la carte est lue ou non par l’utilisateur. Ceci ne permet pas d’enregistrer les analyses. |
clicked |
Si la carte a été cliquée par l’utilisateur. |
pinned |
Si la carte est épinglée. |
dismissed |
Indique si l’utilisateur a fermé la carte de contenu. Marquer comme rejetée une carte qui l’a déjà été n’est pas possible. |
dismissible |
Détermine si la carte peut être ou non rejetée par l’utilisateur. |
url |
(Facultatif) Chaîne de caractères de l’URL associée à l’action de clic sur la carte. |
openURLInWebView |
Indique si les URL de cette carte doivent être ouvertes dans le WebView de Braze ou non. |
isControl |
Si cette carte est une carte de contrôle. Les cartes de contrôle ne doivent pas être montrées à l’utilisateur. |
extras |
Mappage des suppléments clé-valeur pour cette carte. |
Pour une référence complète de la carte de base, consultez la documentation Android et iOS.
Image uniquement
Les cartes avec image seulement sont des images cliquables en taille réelle.
| Propriété | Description |
|---|---|
type |
Le type de carte de contenu, IMAGE_ONLY. |
image |
L’URL de l’image de la carte. |
imageAspectRatio |
Le rapport hauteur/largeur de l’image de la carte. Il sert d’indice avant que le chargement de l’image ne soit terminé. Veuillez noter que la propriété peut ne pas être fournie dans certaines circonstances. |
Pour une référence complète de la carte image seule, consultez la documentation Android et iOS.
Image avec légende
Les cartes d’images légendées sont des images cliquables en taille réelle accompagnées d’un texte descriptif.
| Propriété | Description |
|---|---|
type |
Le type de carte de contenu, CAPTIONED. |
image |
L’URL de l’image de la carte. |
imageAspectRatio |
Le rapport hauteur/largeur de l’image de la carte. Il sert d’indice avant que le chargement de l’image ne soit terminé. Veuillez noter que la propriété peut ne pas être fournie dans certaines circonstances. |
title |
Le texte du titre pour la carte. |
cardDescription |
Texte de description de la carte. |
domain |
(Facultatif) Texte du lien pour l’URL de propriété, par exemple, "braze.com/resources/". Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action/la direction du clic sur la carte. |
Pour une référence complète de la carte d’image sous-titrée, consultez la documentation Android et iOS.
Classique
Les cartes classiques comportent un titre, une description et une image facultative à gauche du texte.
| Propriété | Description |
|---|---|
type |
Le type de carte de contenu, CLASSIC. |
image |
(Facultatif) L’URL de l’image de la carte. |
title |
Le texte du titre pour la carte. |
cardDescription |
Texte de description de la carte. |
domain |
(Facultatif) Texte du lien pour l’URL de propriété, par exemple, "braze.com/resources/". Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action/la direction du clic sur la carte. |
Pour une référence complète de la carte de contenu classique (annonce textuelle), consultez la documentation Android et iOS. Pour la carte image classique (nouvelles brèves), voir la documentation Android et iOS.
Contrôle
Les cartes de contrôle incluent toutes les propriétés de base, avec quelques différences importantes. Et surtout :
- La propriété
isControlest garantietrue. - La propriété
extrasest garantie vide.
Pour une référence complète de la carte de contrôle, consultez la documentation Android et iOS.
Conditions préalables
Avant de pouvoir utiliser les cartes de contenu, vous devez intégrer le SDK Swift de Braze dans votre application. Vous devrez ensuite suivre les étapes de configuration de votre application tvOS.
Gardez à l’esprit que vous devrez implémenter votre propre interface utilisateur personnalisée, car les cartes de contenu sont prises en charge par une interface utilisateur Headless à l’aide du SDK Swift, qui n’inclut pas d’interface utilisateur ou de vues par défaut pour tvOS.
Configurer votre application tvOS
Étape 1 : Créer une nouvelle application iOS
Dans Braze, sélectionnez Paramètres > Paramètres des applications, puis Ajouter une application. Saisissez un nom pour votre application tvOS, sélectionnez iOS, et non tvOS, puis sélectionnez Ajouter une application.

Si vous cochez la case tvOS, vous ne pourrez pas personnaliser les cartes de contenu pour tvOS.
Étape 2 : Obtenir la clé API de votre application
Dans les paramètres de votre application, sélectionnez votre nouvelle appli tvOS, puis prenez note de la clé API de votre appli. Vous utiliserez cette clé pour configurer votre application dans Xcode.

Étape 3 : Intégrer BrazeKit
Utilisez la clé API de votre application pour intégrer le SDK Braze Swift à votre projet tvOS dans Xcode. Il vous suffit d’intégrer BrazeKit à partir du SDK Swift de Braze.
Étape 4 : Créez votre interface utilisateur personnalisée
Braze ne proposant pas d’interface utilisateur par défaut pour les cartes de contenu sur tvOS, vous devrez la personnaliser vous-même. Pour une description complète, consultez notre tutoriel étape par étape : Personnalisation des cartes de contenu pour tvOS. Pour obtenir un exemple de projet, consultez les exemples du SDK Swift de Braze.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devez intégrer le SDK d’Unity Braze.
Affichage natif des cartes de contenu
Vous pouvez afficher l’interface utilisateur par défaut pour les cartes de contenu à l’aide de l’appel suivant :
1
Appboy.AppboyBinding.DisplayContentCards();
Réception des données de carte de contenu dans Unity
Vous pouvez lister des objets de jeu Unity pour être avertis des cartes de contenu entrantes. Nous recommandons de définir des auditeurs d’objets de jeu à partir de l’éditeur de configuration Braze.
Si vous devez configurer votre auditeur d’objet de jeu lors de l’exécution, utilisez AppboyBinding.ConfigureListener() et spécifiez BrazeUnityMessageType.CONTENT_CARDS_UPDATED.
Notez que vous devrez également appeler AppboyBinding.RequestContentCardsRefresh() pour commencer à recevoir des données dans votre auditeur d’objet de jeu sur iOS.
Analyse des cartes de contenu
Les messages de type string entrants reçus dans votre rappel d’objet de jeu de cartes de contenu peuvent être analysés dans notre objet de modèle ContentCard pré-fourni pour plus de commodité.
L’analyse des cartes de contenu nécessite une analyse JSON, voir l’exemple suivant pour plus de détails :
Exemple de fonction de rappel des cartes de contenu
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.");
}
}
Rafraîchir les cartes de contenu
Pour actualiser les cartes de contenu de Braze, appelez l’une des méthodes suivantes :
1
2
3
4
// results in a network request to Braze
AppboyBinding.RequestContentCardsRefresh()
AppboyBinding.RequestContentCardsRefreshFromCache()
Analyse
Les clics et les impressions doivent être enregistrés manuellement pour les cartes de contenu non affichées directement par Braze.
Utilisez LogClick() et LogImpression() sur Contentcardable pour enregistrer les clics et les impressions pour des cartes spécifiques.
À propos des cartes de contenu Xamarin
Le SDK Xamarin de Braze inclut un flux de cartes par défaut pour vous permettre de démarrer avec les cartes de contenu. Le flux de cartes par défaut inclus avec le SDK Braze traitera tous les suivis d’analyse, les rejets et le rendu des cartes de contenu d’un utilisateur.
Conditions préalables
Avant de pouvoir utiliser cette fonctionnalité, vous devrez intégrer le SDK Xamarin Braze.
Types de cartes et propriétés
Le SDK Xamarin de Braze dispose de trois types de cartes de contenu uniques qui partagent un modèle de base : Bannière, Image légendée et Classique. Chaque type hérite des propriétés communes d’un modèle de base et possède les propriétés supplémentaires suivantes.
Modèle de carte de base
| Propriété | Description |
|---|---|
idString |
L’ID de la carte est défini par Braze. |
created |
L’horodatage UNIX du moment de création de la carte depuis Braze. |
expiresAt |
L’horodatage UNIX du moment d’expiration de la carte. Lorsque la valeur est inférieure à 0, cela signifie que la carte n’expire jamais. |
viewed |
Si la carte est lue ou non par l’utilisateur. Ceci ne permet pas d’enregistrer les analyses. |
clicked |
Si la carte a été cliquée par l’utilisateur. |
pinned |
Si la carte est épinglée. |
dismissed |
Indique si l’utilisateur a fermé la carte de contenu. Marquer comme rejetée une carte qui l’a déjà été n’est pas possible. |
dismissible |
Détermine si la carte peut être ou non rejetée par l’utilisateur. |
urlString |
(Facultatif) Chaîne de caractères de l’URL associée à l’action de clic sur la carte. |
openUrlInWebView |
Indique si les URL de cette carte doivent être ouvertes dans le WebView de Braze ou non. |
isControlCard |
Si cette carte est une carte de contrôle. Les cartes de contrôle ne doivent pas être montrées à l’utilisateur. |
extras |
Mappage des suppléments clé-valeur pour cette carte. |
isTest |
Que cette carte soit une carte de test. |
Pour une référence complète de la carte de base, consultez la documentation Android et iOS.
Bannière
Les cartes de bannière sont des images cliquables et de taille réelle.
| Propriété | Description |
|---|---|
image |
L’URL de l’image de la carte. |
imageAspectRatio |
Le rapport hauteur/largeur de l’image de la carte. Il sert d’indice avant que le chargement de l’image ne soit terminé. Veuillez noter que la propriété peut ne pas être fournie dans certaines circonstances. |
Pour une référence complète de la carte bannière, consultez la documentation Android et iOS (désormais renommée en image uniquement).
Image avec légende
Les cartes d’images légendées sont des images cliquables en taille réelle accompagnées d’un texte descriptif.
| Propriété | Description |
|---|---|
image |
L’URL de l’image de la carte. |
imageAspectRatio |
Le rapport hauteur/largeur de l’image de la carte. Il sert d’indice avant que le chargement de l’image ne soit terminé. Veuillez noter que la propriété peut ne pas être fournie dans certaines circonstances. |
title |
Le texte du titre pour la carte. |
cardDescription |
Texte de description de la carte. |
domain |
(Facultatif) Texte du lien pour l’URL de propriété, par exemple, "braze.com/resources/". Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action/la direction du clic sur la carte. |
Pour une référence complète de la carte d’image sous-titrée, consultez la documentation Android et iOS.
Classique
Les cartes classiques comportent un titre, une description et une image facultative à gauche du texte.
| Propriété | Description |
|---|---|
image |
(Facultatif) L’URL de l’image de la carte. |
title |
Le texte du titre pour la carte. |
cardDescription |
Texte de description de la carte. |
domain |
(Facultatif) Texte du lien pour l’URL de propriété, par exemple, "braze.com/resources/". Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action/la direction du clic sur la carte. |
Pour une référence complète de la carte de contenu classique (annonce textuelle), consultez la documentation Android et iOS. Pour une référence complète de la carte d’image classique (courte nouvelle), consultez la documentation Android et iOS.
Méthodes de carte
Vous pouvez utiliser ces méthodes supplémentaires pour créer un flux de cartes de contenu personnalisé dans votre application :
| Méthode | Description |
|---|---|
requestContentCardsRefresh() |
Demande les dernières cartes de contenu au serveur Braze SDK. |
getContentCards() |
Récupère les cartes de contenu du SDK Braze Cela renverra la dernière liste de cartes du serveur. |
logContentCardClicked(cardId) |
Enregistre un clic pour l’ID de carte de contenu donné. Cette méthode est uniquement utilisée pour les analyses. |
logContentCardImpression(cardId) |
Enregistre une impression pour l’ID de carte de contenu donné. |
logContentCardDismissed(cardId) |
Enregistre un rejet pour l’ID de carte de contenu donné. |
Modifier cette page sur GitHub