Personalizar el comportamiento de las Content Cards
Esta guía de implementación trata sobre cómo cambiar el comportamiento de las Content Cards, cómo añadir extras como pares clave-valor a tu carga útil, y recetas para personalizaciones comunes. Para obtener la lista completa de tipos de tarjetas de contenido, consulta Acerca de las Content Cards.
Pares clave-valor
Braze te permite enviar cargas útiles de datos adicionales a través de Content Cards a los dispositivos de los usuarios mediante pares clave-valor. Estos pueden ayudarte a hacer seguimiento de métricas internas, actualizar el contenido de la aplicación y personalizar propiedades. Añade pares clave-valor usando el panel.

No recomendamos enviar valores JSON anidados como pares clave-valor. En su lugar, aplana el JSON antes de enviarlo.
Los pares clave-valor se almacenan en objetos card como extras. Estos pueden utilizarse para enviar datos junto con una tarjeta para su posterior procesamiento por parte de la aplicación. Llama a card.extras para acceder a estos valores.
Los pares clave-valor se almacenan en objetos card como extras. Estos pueden utilizarse para enviar datos junto con una tarjeta para su posterior procesamiento por parte de la aplicación. Llama a card.extras para acceder a estos valores.
Los pares clave-valor se almacenan en objetos card como extras. Estos pueden utilizarse para enviar datos junto con una tarjeta para su posterior procesamiento por parte de la aplicación. Llama a card.extras para acceder a estos valores.

Es importante que tus equipos de marketing y desarrollo coordinen qué pares clave-valor se utilizarán (por ejemplo, feed_type = brand_homepage), ya que cualquier par clave-valor que los especialistas en marketing introduzcan en el panel de Braze debe coincidir exactamente con los pares clave-valor que los desarrolladores integren en la lógica de la aplicación.
Content Cards como contenido complementario

Puedes integrar fácilmente Content Cards en una fuente existente, permitiendo que los datos de múltiples fuentes se carguen simultáneamente. Esto crea una experiencia cohesiva y armoniosa con Content Cards de Braze y el contenido existente de la fuente.
El ejemplo adjunto muestra una fuente con una lista híbrida de elementos que se rellenan utilizando datos locales y Content Cards impulsadas por Braze. De esta forma, las Content Cards pueden resultar indistinguibles del contenido existente.
Pares clave-valor activados por API
Las Campaigns activadas por API son una buena estrategia a emplear cuando los valores de una tarjeta dependen de factores externos para determinar qué contenido mostrar al usuario. Por ejemplo, para mostrar contenido complementario, configura pares clave-valor utilizando Liquid. Ten en cuenta que class_type debe conocerse en el momento de la configuración.

Content Cards como contenido interactivo

Las Content Cards se pueden aprovechar para crear experiencias dinámicas e interactivas para tus usuarios. En el ejemplo que se muestra, aparece una ventana emergente de Content Card en el momento del pago para ofrecer a los usuarios promociones de último momento. Las tarjetas bien ubicadas como esta son una excelente forma de dar a los usuarios un “empujón” hacia acciones específicas.
Los pares clave-valor para este caso de uso incluyen un discount_percentage configurado como el monto de descuento deseado y class_type configurado como coupon_code. Estos pares clave-valor te permiten filtrar y mostrar Content Cards de un tipo específico en la pantalla de pago. Para obtener más información sobre el uso de pares clave-valor para administrar múltiples fuentes, consulta Personalización de la fuente predeterminada de Content Cards.

Señales de Content Cards

Las señales son pequeños iconos ideales para captar la atención del usuario. Usar señales para alertar al usuario sobre nuevo contenido de Content Cards puede atraer a los usuarios de vuelta a tu aplicación y aumentar las sesiones.
Mostrar el número de Content Cards no leídas como señal
Puedes mostrar el número de Content Cards no leídas que tiene tu usuario como una señal en el icono de tu aplicación.
Puedes solicitar el número de tarjetas no leídas en cualquier momento llamando a:
1
braze.getCachedContentCards().getUnviewedCardCount();
Luego puedes usar esta información para mostrar una señal que indique cuántas Content Cards no leídas hay. Consulta la documentación de referencia del SDK para más información.
Puedes solicitar el número de tarjetas no leídas en cualquier momento llamando a:
1
Braze.getInstance(context).getContentCardUnviewedCount();
1
Braze.getInstance(context).contentCardUnviewedCount
Luego puedes usar esta información para mostrar una señal que indique cuántas Content Cards no leídas hay. Consulta la documentación de referencia del SDK para más información.
El siguiente ejemplo usa braze.contentCards para solicitar y mostrar el número de Content Cards no leídas. Después de que la aplicación se cierra y la sesión del usuario termina, este código solicita un recuento de tarjetas, filtrando el número de tarjetas según la propiedad viewed.
Las aplicaciones que han adoptado el ciclo de vida UIScene (obligatorio para aplicaciones compiladas con Xcode 27 y versiones posteriores) deben implementar esto en sceneDidEnterBackground(_:) de SceneDelegate.swift en lugar de applicationDidEnterBackground(_:) de AppDelegate.swift.
1
func sceneDidEnterBackground(_ scene: UIScene)
Dentro de este método, implementa el siguiente código, que actualiza activamente el recuento de señales mientras el usuario visualiza las tarjetas durante una sesión determinada:
1
2
let unreadCards = AppDelegate.braze?.contentCards.cards.filter { $0.viewed == false }
UIApplication.shared.applicationIconBadgeNumber = unreadCards?.count ?? 0
1
(void)sceneDidEnterBackground:(UIScene *)scene
Dentro de este método, implementa el siguiente código, que actualiza activamente el recuento de señales mientras el usuario visualiza las tarjetas durante una sesión determinada:
1
2
3
4
5
6
7
NSInteger unreadCardCount = 0;
for (BRZContentCardRaw *card in AppDelegate.braze.contentCards.cards) {
if (card.viewed == NO) {
unreadCardCount += 1;
}
}
[UIApplication sharedApplication].applicationIconBadgeNumber = unreadCardCount;