Skip to content


Integración de Content Cards

Modelo de datos de Content Cards

El modelo de datos de Content Cards está disponible en el SDK de iOS.

Obtener los datos

Para acceder al modelo de datos de Content Cards, suscríbete a los eventos de actualización de Content Cards:

1
2
3
4
5
6
// Subscribe to Content Cards updates
// Note: you should remove the observer where appropriate
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(contentCardsUpdated:)
                                             name:ABKContentCardsProcessedNotification
                                           object:nil];
1
2
3
4
5
6
7
// Called when Content Cards are refreshed (via `requestContentCardsRefresh`)
- (void)contentCardsUpdated:(NSNotification *)notification {
  BOOL updateIsSuccessful = [notification.userInfo[ABKContentCardsProcessedIsSuccessfulKey] boolValue];
  if (updateIsSuccessful) {
    // get the cards using [[Appboy sharedInstance].contentCardsController getContentCards];
  }
}
1
2
3
4
5
// Subscribe to content card updates
// Note: you should remove the observer where appropriate
NotificationCenter.default.addObserver(self, selector:
  #selector(contentCardsUpdated),
  name:NSNotification.Name.ABKContentCardsProcessed, object: nil)
1
2
3
4
5
6
7
8
// Called when the Content Cards are refreshed (via `requestContentCardsRefresh`)
@objc private func contentCardsUpdated(_ notification: Notification) {
  if let updateIsSuccessful = notification.userInfo?[ABKContentCardsProcessedIsSuccessfulKey] as? Bool {
    if (updateIsSuccessful) {
      // get the cards using Appboy.sharedInstance()?.contentCardsController.contentCards
    }
  }
}

Si quieres cambiar los datos de la tarjeta después de que los haya enviado Braze, te recomendamos que almacenes localmente una copia profunda de los datos de la tarjeta, actualices los datos y los muestres tú mismo. Se puede acceder a las tarjetas a través de ABKContentCardsController.

Modelo de Content Cards

Braze ofrece tres tipos de Content Cards: banner, imagen con subtítulo y clásica. Cada tipo hereda propiedades comunes de una clase base ABKContentCard y tiene las siguientes propiedades adicionales.

Propiedades del modelo base de Content Cards - ABKContentCard

Propiedad Descripción
idString (Solo lectura) El ID de la tarjeta configurado por Braze.
viewed Esta propiedad refleja si el usuario ha visto la tarjeta o no.
created (Solo lectura) Esta propiedad es la marca de tiempo unix de la hora de creación de la tarjeta desde Braze.
expiresAt (Solo lectura) Esta propiedad es la marca de tiempo unix de la hora de caducidad de la tarjeta.
dismissible Esta propiedad refleja si el usuario puede descartar la tarjeta.
pinned Esta propiedad refleja si la tarjeta se configuró como “anclada” en el dashboard.
dismissed Esta propiedad refleja si el usuario ha descartado la tarjeta.
url La URL que se abrirá al hacer clic en la tarjeta. Puede ser una URL HTTP(s) o una URL de protocolo.
openURLInWebView Esta propiedad determina si la URL se abrirá dentro de la aplicación o en un navegador web externo.
extras Un NSDictionary opcional de valores NSString.
Propiedad Descripción
image Esta propiedad es la URL de la imagen de la tarjeta.
imageAspectRatio Esta propiedad es la relación de aspecto de la imagen de la tarjeta y sirve como pista antes de que se complete la carga de la imagen. Ten en cuenta que la propiedad puede no proporcionarse en determinadas circunstancias.

Propiedades de la tarjeta de contenido de imagen con subtítulo - ABKCaptionedImageCard

Propiedad Descripción
image Esta propiedad es la URL de la imagen de la tarjeta.
imageAspectRatio Esta propiedad es la relación de aspecto de la imagen de la tarjeta.
title El texto del título de la tarjeta.
cardDescription El texto del cuerpo de la tarjeta.
domain El texto del enlace para la URL de la propiedad, como @”blog.braze.com”. Se puede mostrar en la interfaz de usuario de la tarjeta para indicar la acción/dirección de hacer clic en la tarjeta.

Propiedades de la tarjeta de contenido clásica - ABKClassicContentCard

Propiedad Descripción
image (Opcional) Esta propiedad es la URL de la imagen de la tarjeta.
title El texto del título de la tarjeta.
cardDescription El texto del cuerpo de la tarjeta.
domain El texto del enlace para la URL de la propiedad, como @”blog.braze.com”. Se puede mostrar en la interfaz de usuario de la tarjeta para indicar la acción y la dirección al hacer clic en la tarjeta.

Métodos de tarjeta

Método Descripción
logContentCardImpression Registra manualmente una impresión en Braze para una tarjeta concreta.
logContentCardClicked Registra manualmente un clic en Braze para una tarjeta concreta. El SDK solo registrará un clic de tarjeta cuando la tarjeta tenga la propiedad url con un valor válido.
logContentCardDismissed Registra manualmente en Braze el descarte de una tarjeta concreta. El SDK solo registrará un descarte de tarjeta si la propiedad dismissed de la tarjeta no está ya establecida en true.
isControlCard Determina si una tarjeta es la tarjeta de control para una prueba A/B.

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

Integración del controlador de vista de Content Cards

Las Content Cards pueden integrarse con dos contextos de controlador de vista: navegación o modal.

Ejemplo de inserción de una instancia de ABKContentCardsTableViewController en un controlador de navegación:

1
2
3
4
ABKContentCardsTableViewController *contentCards = [[ABKContentCardsTableViewController alloc] init];
contentCards.title = @"Content Cards Title";
contentCards.disableUnreadIndicator = YES;
[self.navigationController pushViewController:contentCards animated:YES];
1
2
3
4
let contentCards = ABKContentCardsTableViewController()
contentCards.title = "Content Cards Title"
contentCards.disableUnreadIndicator = true
navigationController?.pushViewController(contentCards, animated: true)

Este modal se utiliza para presentar el controlador de vista en una vista modal, con una barra de navegación en la parte superior y un botón Done en el lateral de la barra.

1
2
3
4
ABKContentCardsViewController *contentCards = [[ABKContentCardsViewController alloc] init];
contentCards.contentCardsViewController.title = @"Content Cards Title";
contentCards.contentCardsViewController.disableUnreadIndicator = YES;
[self.navigationController presentViewController:contentCards animated:YES completion:nil];
1
2
3
4
let contentCards = ABKContentCardsViewController()
contentCards.contentCardsViewController.title = "Content Cards Title"
contentCards.contentCardsViewController.disableUnreadIndicator = true
self.present(contentCards, animated: true, completion: nil)

Para ver ejemplos de controladores de vista, consulta nuestra aplicación de ejemplo de Content Cards.

New Stuff!