Skip to content

Tarjetas de contenido

Obtén información sobre las tarjetas de contenido para el SDK de Braze, incluidos los diferentes modelos de datos y las propiedades específicas de las tarjetas disponibles para tu aplicación.

Requisitos previos

Antes de poder utilizar las Tarjetas de contenido, tendrás que integrar el SDK Web de Braze en tu aplicación. Sin embargo, no es necesaria ninguna configuración adicional. Para crear tu propia interfaz de usuario, consulta la Guía de personalización de tarjetas de contenido.

IU estándar de la fuente

Para utilizar la interfaz de usuario de las Tarjetas de contenido incluida, tendrás que especificar dónde mostrar la fuente en tu sitio web.

En este ejemplo, tenemos un <div id="feed"></div> en el que queremos colocar la fuente de Tarjetas de contenido. Utilizaremos tres botones para ocultar, mostrar o alternar (ocultar o mostrar en función de su estado actual) la fuente.

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>

Al utilizar los métodos toggleContentCards(parentNode, filterFunction) y showContentCards(parentNode, filterFunction), si no se proporcionan argumentos, todas las Tarjetas de contenido se mostrarán en una barra lateral de posición fija en la parte derecha de la página. De lo contrario, la fuente se colocará en la opción parentNode especificada.

Consulta la documentación de referencia del SDK para obtener más información sobre cómo alternar las Tarjetas de contenido.

Probar Tarjetas de contenido en la web

Puedes probar tu integración de Tarjetas de contenido utilizando las herramientas de desarrollador de tu navegador.

  1. Crea una campaña de tarjeta de contenido y dirígela a tu usuario de prueba.
  2. Inicia sesión en el sitio web que tiene tu integración del SDK Web.
  3. Abre la consola de tu navegador. En Chrome, haz clic derecho en la página, selecciona Inspeccionar y luego selecciona la pestaña Consola.
  4. Ejecuta estos comandos en la consola:
    • window.braze.getCachedContentCards()
    • window.braze.toggleContentCards()

Tipos de tarjeta y propiedades

El modelo de datos de las Tarjetas de contenido está disponible en el SDK Web y ofrece los siguientes tipos de tarjetas de contenido: ImageOnly, CaptionedImage y ClassicCard. Cada tipo hereda propiedades comunes de un modelo base Card y tiene las siguientes propiedades adicionales.

Modelo de tarjeta base

Todas las Tarjetas de contenido tienen estas propiedades compartidas:

Solo imagen

Las tarjetas ImageOnly son imágenes a tamaño completo en las que se puede hacer clic.

Imagen subtitulada

Las tarjetas CaptionedImage son imágenes de tamaño completo en las que se puede hacer clic y que van acompañadas de un texto descriptivo.

Clásica

El modelo ClassicCard puede contener una imagen sin texto o un texto con imagen.

Grupo de control

Si utilizas la fuente predeterminada de Tarjetas de contenido, las impresiones y los clics se rastrearán automáticamente.

Si utilizas una integración personalizada para Tarjetas de contenido, necesitas registrar las impresiones cuando se hubiera visto una tarjeta de control. Como parte de este esfuerzo, asegúrate de gestionar las tarjetas de control al registrar las impresiones en una prueba A/B. Estas tarjetas están en blanco y, aunque no las vean los usuarios, debes registrar las impresiones para comparar su rendimiento con el de las tarjetas que no son de control.

Para determinar si una tarjeta de contenido está en el grupo de control de una prueba A/B, comprueba la propiedad card.isControl (Web SDK v4.5.0+) o comprueba si la tarjeta es una instancia de ControlCard (card instanceof braze.ControlCard).

Métodos de tarjeta

Métodos de fuente predeterminada

Usa estos métodos cuando muestres Tarjetas de contenido utilizando la interfaz de usuario predeterminada de Braze:

Métodos de fuente personalizada

Usa estos métodos cuando construyas tu propia interfaz de usuario de Tarjetas de contenido:

Para más detalles, consulta la documentación de referencia del SDK.

Buenas prácticas

Llama a los métodos en el orden correcto

Para fuentes personalizadas, las Tarjetas de contenido solo se actualizan al inicio de sesión si subscribeToContentCardsUpdates() se llama antes de openSession(). Llama a tus métodos de Braze en este orden:

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

Usa tarjetas en caché para mantener el contenido entre cargas de página

Dado que subscribeToContentCardsUpdates() solo invoca su devolución de llamada cuando hay nuevas actualizaciones (como al inicio de sesión), las tarjetas pueden desaparecer de tu fuente personalizada si un usuario actualiza la página a mitad de sesión. Para evitar esto, usa getCachedContentCards() para renderizar tarjetas inmediatamente desde la caché local, junto con tu suscripción para nuevas actualizaciones:

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

Registra análisis para fuentes personalizadas

Cuando usas una interfaz personalizada, las impresiones, los clics y los descartes no se rastrean automáticamente. Debes registrar cada evento manualmente:

  • Impresiones: Llama a logContentCardImpressions([card1, card2, ...]) con una matriz de objetos de tarjeta cuando las tarjetas sean visibles para el usuario.
  • Clics: Llama a logContentCardClick(card) cuando un usuario interactúe con una tarjeta.
  • Comportamiento de clic: Llama a handleBrazeAction(card.url) para ejecutar la acción de clic configurada de la tarjeta (como navegar a una URL o registrar un evento personalizado).

Uso de Google Tag Manager

Google Tag Manager funciona inyectando la CDN de Braze (una versión de nuestro SDK Web) directamente en el código de tu sitio web, lo que significa que todos los métodos del SDK están disponibles igual que si hubieras integrado el SDK sin Google Tag Manager, excepto al implementar Tarjetas de contenido.

Configuración de las Tarjetas de contenido

Para una integración estándar de la fuente de Tarjetas de contenido, puedes utilizar una etiqueta HTML personalizada en Google Tag Manager. Añade lo siguiente a tu etiqueta HTML personalizada, que activará la fuente estándar de Tarjetas de contenido:

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

Configuración en Google Tag Manager de una etiqueta HTML personalizada que muestra la fuente de Tarjetas de contenido.

Para tener más libertad a la hora de personalizar el aspecto de las Tarjetas de contenido y su fuente, puedes integrar directamente las Tarjetas de contenido en tu sitio web nativo. Puedes hacerlo de dos formas: utilizando la interfaz de usuario estándar o creando una interfaz de usuario personalizada.

Al implementar la IU de fuente estándar, los métodos de Braze deben tener window. añadido al principio del método. Por ejemplo, braze.showContentCards debería ser window.braze.showContentCards.

Para el estilo personalizado de la fuente, los pasos son los mismos que si hubieras integrado el SDK sin GTM. Por ejemplo, si quieres personalizar la anchura de la fuente de Tarjetas de contenido, puedes pegar lo siguiente en tu archivo CSS:

1
2
3
body .ab-feed { 
    width: 800px;
}

Actualización de plantillas

Para actualizar a la última versión del SDK Web de Braze, sigue los tres pasos siguientes en tu dashboard de Google Tag Manager:

  1. Actualizar plantilla de etiquetas
    Ve a la página Plantillas dentro de tu espacio de trabajo. Aquí deberías ver un icono que indica que hay una actualización disponible.

    Página de plantillas que muestra que hay una actualización disponible

    Haz clic en ese icono y, tras revisar el cambio, haz clic en Aceptar actualización.

    Una pantalla comparando las plantillas de etiquetas antigua y nueva con un botón para "Aceptar actualización"

  2. Actualizar número de versión
    Una vez actualizada tu plantilla de etiquetas, edita la etiqueta de inicialización de Braze y actualiza la versión del SDK a la versión más reciente de major.minor. Por ejemplo, si la última versión es 4.1.2, introduce 4.1. Puedes ver una lista de las versiones del SDK en nuestro registro de cambios.

    Plantilla de inicialización de Braze con un campo de entrada para cambiar la versión del SDK

  3. Control de calidad y publicación
    Comprueba que la nueva versión del SDK funciona utilizando la herramienta de depuración de Google Tag Manager antes de publicar una actualización en tu contenedor de etiquetas.

Solución de problemas

Habilitar la depuración de etiquetas

Cada plantilla de etiqueta de Braze tiene una casilla de verificación opcional Depuración de etiquetas GTM que puede utilizarse para registrar mensajes de depuración en la consola JavaScript de tu página web.

Herramienta de depuración de Google Tag Manager

Entrar en modo depuración

Otra forma de ayudar a depurar tu integración con Google Tag Manager es utilizar la característica de modo de vista previa de Google.

Esto ayudará a identificar qué valores se envían desde la capa de datos de tu página web a cada etiqueta de Braze desencadenada y también explicará qué etiquetas se desencadenaron o no.

La página de resumen de la etiqueta de inicialización de Braze proporciona un resumen de la etiqueta, incluyendo información sobre qué etiquetas se desencadenaron.

Verificar la secuencia de etiquetas para eventos personalizados

Si los eventos personalizados u otras acciones no se registran en Braze, una causa común es una condición de carrera en la que una etiqueta de acción (como Evento personalizado o Compra) se dispara antes de que la etiqueta de inicialización de Braze haya completado. Para solucionarlo, configura la secuencia de etiquetas en GTM:

  1. Abre la etiqueta de acción que no se está registrando correctamente.
  2. En Configuración avanzada > Secuencia de etiquetas, selecciona Una etiqueta que se dispara antes de [esta etiqueta].
  3. Elige tu etiqueta de inicialización de Braze como la etiqueta de configuración.

Esto asegura que el SDK esté completamente inicializado antes de que cualquier etiqueta de acción intente enviar datos a Braze.

Habilitar el registro detallado

Para capturar registros detallados para la solución de problemas, puedes habilitar el registro detallado en tu integración con Google Tag Manager. Estos registros aparecerán en la pestaña Consola de las herramientas de desarrollador de tu navegador.

En tu integración de Google Tag Manager, navega hasta tu etiqueta de inicialización de Braze y selecciona Habilitar registro del SDK Web.

La página de resumen de la etiqueta de inicialización de Braze con la opción Habilitar registro del SDK Web activada.

Requisitos previos

Antes de poder utilizar las tarjetas de contenido de Braze, deberás realizar la integración del SDK de Braze para Android en tu aplicación. Sin embargo, no es necesario realizar ninguna configuración adicional.

Fragmentos de Google

En Android, la fuente de tarjetas de contenido se implementa como un fragmento disponible en el proyecto Braze Android UI. La clase ContentCardsFragment actualizará y mostrará automáticamente el contenido de las tarjetas de contenido y registrará los análisis de uso. Las tarjetas que pueden aparecer en el ContentCards de un usuario se crean en el panel de Braze.

Para aprender a añadir un fragmento a una actividad, consulta la documentación sobre fragmentos de Google.

Tipos y propiedades de las tarjetas

El modelo de datos de tarjetas de contenido está disponible en el SDK de Android y ofrece los siguientes tipos de tarjetas de contenido únicos. Cada tipo comparte un modelo base, lo que les permite heredar propiedades comunes del modelo base, además de tener sus propias propiedades únicas. Para obtener la documentación de referencia completa, consulta com.braze.models.cards.

Modelo de tarjeta base

El modelo de tarjeta base proporciona un comportamiento básico para todas las tarjetas.

Solo imagen

Las tarjetas de sólo imagen son imágenes a tamaño completo en las que se puede hacer clic.

Imagen con pie de foto

Las tarjetas de imágenes con subtítulos son imágenes de tamaño completo en las que se puede hacer clic y que van acompañadas de un texto descriptivo.

Clásico

Una tarjeta clásica sin imagen incluida dará como resultado una tarjeta de anuncio de texto. Si se incluye una imagen, recibirás una breve tarjeta de noticias.

Métodos de tarjeta

Todos los objetos del modelo de datos Card ofrecen los siguientes métodos de análisis para registrar eventos de usuario en servidores de Braze.

Requisitos previos

Antes de poder utilizar las tarjetas de contenido, tendrás que integrar el SDK de Braze Swift en tu aplicación. Sin embargo, no es necesaria ninguna configuración adicional.

Ver contextos del controlador

La interfaz de usuario predeterminada de las tarjetas de contenido puede integrarse desde la biblioteca BrazeUI del SDK de Braze. Crea el controlador de vista Tarjetas de contenido utilizando la instancia braze. Si deseas interceptar y reaccionar al ciclo de vida de la interfaz de usuario de la tarjeta de contenido, implementa BrazeContentCardUIViewControllerDelegate como delegado de tu BrazeContentCardUI.ViewController.

La biblioteca BrazeUI del SDK de Swift proporciona dos contextos predeterminados de controlador de vista: navegación o modal. Esto significa que puedes integrar las tarjetas de contenido en estos contextos añadiendo unas pocas líneas de código a tu aplicación o sitio web. Ambas vistas ofrecen opciones de personalización y estilo, como se describe en la guía de personalización. También puedes crear un controlador de vista de tarjeta de contenido personalizado, en lugar de utilizar el estándar de Braze, para tener aún más opciones de personalización: consulta el tutorial sobre la interfaz de usuario de las tarjetas de contenido para ver un ejemplo.

Navegación

Un controlador de navegación es un controlador de vistas que gestiona uno o varios controladores de vistas hijos en una interfaz de navegación. He aquí un ejemplo de push de una instancia de BrazeContentCardUI.ViewController en un controlador de navegación:

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

Utiliza presentaciones modales para crear interrupciones temporales en el flujo de trabajo de tu aplicación, como solicitar al usuario información importante. Esta vista modelo tiene una barra de navegación en la parte superior y un botón de Terminar en el lateral de la barra. He aquí un ejemplo de push de una instancia de BrazeContentCard.ViewController en un controlador modal:

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];
}

Para ver ejemplos de uso de los controladores de vista BrazeUI, consulta los ejemplos de interfaz de usuario de las tarjetas de contenido correspondientes en nuestra aplicación Ejemplos.

Modelo de tarjeta base

El modelo de datos de las tarjetas de contenido está disponible en el módulo BrazeKit del SDK de Braze Swift. Este módulo contiene los siguientes tipos de tarjetas de contenido, que son una implementación del tipo Braze.ContentCard. Para obtener una lista completa de las propiedades de la tarjeta de contenido y su uso, consulta la claseContentCard .

  • Solo imagen
  • Imagen subtitulada
  • Clásica
  • Imagen clásica
  • Control

Para acceder al modelo de datos de las tarjetas de contenido, llama a contentCards.cards en tu instancia braze. Consulta Análisis de tarjetas para obtener más información sobre cómo suscribirte a los datos de las tarjetas.

Métodos de tarjeta

Cada tarjeta se inicializa con un objeto Context, que contiene varios métodos para gestionar el estado de tu tarjeta. Llama a estos métodos cuando quieras modificar la propiedad de estado correspondiente en un objeto tarjeta concreto.

Para más detalles, consulta la documentación de la clase Context

Requisitos previos

Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de Cordova.

Fuentes de tarjetas

El SDK de Braze incluye una fuente de tarjetas predeterminada. Para mostrar la fuente de tarjetas predeterminada, puedes utilizar el método launchContentCards(). Este método gestiona todo el seguimiento de análisis, los descartes y la representación de las tarjetas de contenido de un usuario.

Tarjetas de contenido

Puedes utilizar estos métodos adicionales para crear una fuente personalizada de tarjetas de contenido dentro de tu aplicación:

Acerca de las tarjetas de contenido de Flutter

El SDK de Braze incluye una fuente de tarjetas predeterminada para que empieces a utilizar las tarjetas de contenido. Para mostrar la fuente de tarjetas, puedes utilizar el método braze.launchContentCards(). La fuente predeterminada de tarjetas incluida en el SDK de Braze gestionará todo el seguimiento de análisis, los descartes y la representación de las tarjetas de contenido de un usuario.

Requisitos previos

Antes de poder utilizar esta característica, tendrás que integrar el SDK de Flutter Braze.

Métodos de tarjeta

Puedes utilizar estos métodos adicionales para crear una fuente de tarjetas de contenido personalizada dentro de tu aplicación, usando los siguientes métodos disponibles en la interfaz pública del complemento:

Recepción de datos de tarjetas de contenido

Para recibir datos de tarjetas de contenido en tu aplicación Flutter, BrazePlugin admite el envío de datos de tarjetas de contenido mediante Dart Streams.

El objeto BrazeContentCard admite un subconjunto de campos disponibles en los objetos del modelo nativo, como description, title, image, url, extras, etc.

Escuchar datos de tarjetas de contenido en la capa Dart

Para recibir los datos de tarjetas de contenido en la capa Dart, utiliza el código siguiente para crear un StreamSubscription y llamar a braze.subscribeToContentCards(). Recuerda llamar a cancel() en la suscripción al stream cuando ya no la necesites.

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

Para ver un ejemplo, consulta main.dart en la aplicación de ejemplo del SDK de Braze para Flutter.

Transmitir datos de tarjetas de contenido desde la capa nativa de iOS

Los datos de tarjetas de contenido se transmiten automáticamente desde las capas nativas de Android e iOS. No se requiere configuración adicional.

Si estás utilizando Flutter SDK 17.1.0 o anterior, la transmisión de datos de tarjetas de contenido desde la capa nativa de iOS requiere configuración manual. Es probable que tu aplicación contenga una devolución de llamada contentCards.subscribeToUpdates que llame a BrazePlugin.processContentCards(contentCards). Para migrar a Flutter SDK 18.0.0, elimina la llamada a BrazePlugin.processContentCards(_:): la transmisión de datos ahora se gestiona automáticamente.

Para ver un ejemplo, consulta AppDelegate.swift en la aplicación de ejemplo del SDK de Braze para Flutter.

Repetición de la devolución de llamada para tarjetas de contenido

Para almacenar las tarjetas de contenido desencadenadas antes de que la devolución de llamada esté disponible y reproducirlas una vez establecida, añade la siguiente entrada al mapa customConfigs al inicializar BrazePlugin:

1
BrazePlugin braze = new BrazePlugin(customConfigs: {replayCallbacksConfigKey: true});

Acerca de las tarjetas de contenido React Native

Los SDK de Braze incluyen una fuente de tarjetas predeterminada para que empieces a utilizar las tarjetas de contenido. Para mostrar la fuente de la tarjeta, puedes utilizar el método Braze.launchContentCards(). La fuente predeterminada de tarjetas incluida en el SDK de Braze gestionará todos los análisis de seguimiento, descarte de tarjetas y representación de las tarjetas de contenido de un usuario.

Requisitos previos

Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de React Native.

Métodos de tarjetas

Para construir tu propia interfaz de usuario, puedes obtener una lista de las tarjetas disponibles y escuchar las actualizaciones de las tarjetas:

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

Puedes utilizar estos métodos adicionales para crear una fuente personalizada de tarjetas de contenido dentro de tu aplicación:

Tipos de tarjeta y propiedades

El modelo de datos de tarjetas de contenido está disponible en el SDK de React Native y ofrece los siguientes tipos de tarjeta de tarjetas de contenido: Sólo imagen, Imagen con subtítulos y Clásico. También hay un tipo especial de tarjeta de Control, que se devuelve a los usuarios que están en el grupo de control de una tarjeta determinada. Cada tipo hereda propiedades comunes de un modelo base, además de sus propias propiedades únicas.

Modelo de tarjeta base

El modelo de tarjeta base proporciona un comportamiento básico para todas las tarjetas.

Para una referencia completa de la tarjeta base, consulta la documentación de Android e iOS.

Solo imagen

Las tarjetas de sólo imagen son imágenes de tamaño completo en las que se puede hacer clic.

Para una referencia completa de la tarjeta de sólo imagen, consulta la documentación de Android e iOS.

Imagen subtitulada

Las tarjetas de imágenes con subtítulos son imágenes de tamaño completo en las que se puede hacer clic y que van acompañadas de un texto descriptivo.

Para una referencia completa de la tarjeta de imagen subtitulada, consulta la documentación de Android e iOS.

Clásica

Las tarjetas clásicas tienen un título, una descripción y una imagen opcional a la izquierda del texto.

Para una referencia completa de la tarjeta de contenido clásica (anuncio de texto), consulta la documentación de Android e iOS. Para la tarjeta de imagen clásica (noticias breves), consulta la documentación de Android e iOS.

Control

Las tarjetas de control incluyen todas las propiedades básicas, con algunas diferencias importantes. Y lo que es más importante:

  • La propiedad isControl está garantizada en true.
  • Se garantiza que la propiedad extras está vacía.

Para una referencia completa de la tarjeta de control, consulta la documentación de Android e iOS.

Requisitos previos

Antes de poder utilizar las tarjetas de contenido, tendrás que integrar el SDK de Braze Swift en tu aplicación. A continuación, tendrás que completar los pasos para configurar tu aplicación tvOS.

Configuración de tu aplicación tvOS

Paso 1: Crear una nueva aplicación iOS

En Braze, selecciona Configuración > Configuración de la aplicación y, a continuación, Añadir aplicación. Introduce un nombre para tu aplicación de tvOS, selecciona iOS (no_tvOS) y_luego selecciona Añadir aplicación.

ALT_TEXT.

Paso 2: Obtén la clave de API de tu aplicación

En la configuración de tu aplicación, selecciona tu nueva aplicación para tvOS y toma nota de la clave de API de tu aplicación. Utilizarás esta clave para configurar tu aplicación en Xcode.

ALT_TEXT

Paso 3: Integrar BrazeKit

Utiliza la clave de API de tu aplicación para integrar el SDK de Braze Swift en tu proyecto de tvOS en Xcode. Solo tienes que integrar BrazeKit desde el SDK Swift de Braze.

Paso 4: Crea tu interfaz de usuario personalizada

Como Braze no proporciona una interfaz predeterminada para las tarjetas de contenido en tvOS, tendrás que personalizarla tú mismo. Para un recorrido completo, consulta nuestro tutorial paso a paso: Personaliza las tarjetas de contenido para tvOS. Para ver un proyecto de ejemplo, consulta los ejemplos del SDK Swift de Braze.

Requisitos previos

Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de Unity.

Mostrar tarjetas de contenido de forma nativa

Puedes mostrar la IU predeterminada para las tarjetas de contenido utilizando la siguiente llamada:

1
Appboy.AppboyBinding.DisplayContentCards();

Recepción de datos de la tarjeta de contenido en Unity

Puedes registrar objetos del juego Unity para que se te notifique la llegada de tarjetas de contenido. Recomendamos configurar los oyentes del objeto del juego desde el editor de configuración de Braze.

Si necesitas configurar la escucha de tu objeto del juego en tiempo de ejecución, utiliza AppboyBinding.ConfigureListener() y especifica BrazeUnityMessageType.CONTENT_CARDS_UPDATED.

Nota, además tendrás que hacer una llamada a AppboyBinding.RequestContentCardsRefresh() para empezar a recibir datos en tu receptor de objetos del juego en iOS.

Análisis sintáctico de tarjetas de contenido

Los mensajes entrantes de string recibidos en tu devolución de llamada al objeto del juego Tarjetas de contenido pueden analizarse en nuestro ContentCard para mayor comodidad.

El análisis de las tarjetas de contenido requiere el análisis JSON, consulta el siguiente ejemplo para obtener más detalles:

Ejemplo de devolución de llamada de tarjetas de contenido
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.");
  }
}

Actualizar tarjetas de contenido

Para actualizar las tarjetas de contenido desde Braze, llama a cualquiera de los siguientes métodos:

1
2
3
4
// results in a network request to Braze
AppboyBinding.RequestContentCardsRefresh()

AppboyBinding.RequestContentCardsRefreshFromCache()

Análisis

Los clics y las impresiones deben registrarse manualmente para las tarjetas de contenido no mostradas directamente por Braze.

Utiliza LogClick() y LogImpression() en ContentCard para registrar los clics y las impresiones de tarjetas concretas.

Acerca de las tarjetas de contenido de .NET MAUI

El SDK Braze .NET MAUI (antes Xamarin) incluye una fuente de tarjetas predeterminada para que puedas empezar a utilizar las tarjetas de contenido. La fuente predeterminada de tarjetas incluida en el SDK de Braze gestionará todos los análisis de seguimiento, descarte de tarjetas y representación de las tarjetas de contenido de un usuario.

Requisitos previos

Antes de poder utilizar esta característica, deberás realizar la integración del SDK .NET MAUI Braze.

Tipos y propiedades de las tarjetas

El SDK Braze .NET MAUI tiene tres tipos de tarjetas de contenido únicos que comparten un modelo base: Banner, imagen con pie de foto y clásico. Cada tipo hereda propiedades comunes de un modelo base y tiene las siguientes propiedades adicionales.

Modelo de tarjeta base

Para una referencia completa de la tarjeta base, consulta la documentación de Android e iOS.

Banner

Las tarjetas banner son imágenes de tamaño completo en las que se puede hacer clic.

Para una referencia completa de la tarjeta banner, consulta la documentación de Android e iOS (ahora renombrada a sólo imagen).

Imagen subtitulada

Las tarjetas de imágenes con subtítulos son imágenes de tamaño completo en las que se puede hacer clic y que van acompañadas de un texto descriptivo.

Para una referencia completa de la tarjeta de imagen subtitulada, consulta la documentación de Android e iOS.

Clásica

Las tarjetas clásicas tienen un título, una descripción y una imagen opcional a la izquierda del texto.

Para una referencia completa de la tarjeta de contenido clásica (anuncio de texto), consulta la documentación de Android e iOS. Para una referencia completa de la tarjeta de imagen clásica (noticias breves), consulta la documentación de Android e iOS.

Métodos de tarjeta

Puedes utilizar estos métodos adicionales para crear una fuente personalizada de tarjetas de contenido dentro de tu aplicación:

Método Descripción
requestContentCardsRefresh() Solicita las últimas tarjetas de contenido al servidor SDK de Braze.
getContentCards() Recupera tarjetas de contenido del SDK Braze. Esto devolverá la última lista de tarjetas del servidor.
logContentCardClicked(cardId) Registra un clic para el ID de tarjeta de contenido dado. Este método sólo se utiliza para análisis.
logContentCardImpression(cardId) Registra una impresión para el ID de tarjeta de contenido dado.
logContentCardDismissed(cardId) Registra un descarte para el ID de tarjeta de contenido dado.
New Stuff!