AppboyKit (también conocido como SDK Objective-C) ya no recibe soporte y ha sido sustituido por el SDK Swift. Ya no recibirá nuevas características, correcciones de errores, actualizaciones de seguridad ni soporte técnico; sin embargo, la mensajería y los análisis seguirán funcionando con normalidad. Para obtener más información, consulta Presentación del nuevo SDK Swift de Braze.
Entrega de mensajes dentro de la aplicación
Tipos de desencadenantes
Nuestro producto de mensajes dentro de la aplicación te permite desencadenar la visualización de mensajes dentro de la aplicación como resultado de varios tipos de eventos diferentes: Any Purchase
, Specific Purchase
, Session Start
, Custom Event
, y Push Click
. Además, los desencadenantes Specific Purchase
y Custom Event
contienen filtros de propiedades sólidos.
Los mensajes desencadenados dentro de la aplicación sólo funcionan con eventos personalizados registrados a través del SDK de Braze. Los mensajes dentro de la aplicación no pueden desencadenarse a través de la API o por eventos de la API (como eventos de compra). Si trabajas con iOS, visita nuestro artículo sobre seguimiento de eventos personalizados para obtener más información.
Semántica de la entrega
Todos los mensajes dentro de la aplicación para los que un usuario es elegible se entregan al dispositivo del usuario al inicio de la sesión. Si un evento desencadena dos mensajes dentro de la aplicación, se mostrará el mensaje con mayor prioridad. Para más información sobre la semántica de inicio de sesión del SDK, lee sobre nuestro ciclo de vida de la sesión. Tras la entrega, el SDK precargará los activos para que estén disponibles inmediatamente en el momento del desencadenamiento, minimizando la latencia de visualización.
Cuando un evento desencadenante tiene asociado más de un mensaje dentro de la aplicación elegible, sólo se entregará el mensaje dentro de la aplicación con la prioridad más alta.
Puede haber cierta latencia en los mensajes dentro de la aplicación que se muestran inmediatamente después de la entrega (inicio de sesión, clic push) debido a que los activos no se han precargado.
Intervalo de tiempo mínimo entre desencadenamientos
De forma predeterminada, limitamos la tasa de mensajes dentro de la aplicación a una vez cada 30 segundos para facilitar una experiencia de usuario de calidad.
Puedes anular este valor a través de ABKMinimumTriggerTimeIntervalKey
dentro del parámetro appboyOptions
pasado a startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions:
. Establece en ABKMinimumTriggerTimeIntervalKey
el valor entero que desees como tiempo mínimo en segundos entre mensajes dentro de la aplicación:
1
2
3
4
5
// Sets the minimum trigger time interval to 5 seconds
[Appboy startWithApiKey:@"YOUR-API-KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKMinimumTriggerTimeIntervalKey : @(5) }];
1
Appboy.start(withApiKey: "YOUR-API-KEY", in:application, withLaunchOptions:launchOptions, withAppboyOptions:[ABKMinimumTriggerTimeIntervalKey : 5])
No se encuentra un desencadenante adecuado
Cuando Braze no encuentre un desencadenante que coincida con un evento determinado, llamará al método noMatchingTriggerForEvent:name: del método ABKInAppMessageControllerDelegate
. Implementa este método en tu clase adoptando el protocolo de delegado para manejar este escenario.
Entrega local de mensajes dentro de la aplicación
La pila de mensajes dentro de la aplicación
Mostrar mensajes dentro de la aplicación
Cuando un usuario sea elegible para recibir un mensaje dentro de la aplicación, se ofrecerá a ABKInAppMessageController
el último mensaje dentro de la aplicación de la pila de mensajes dentro de la aplicación. La pila solo conserva los mensajes dentro de la aplicación almacenados en la memoria y se borra entre los lanzamientos de la aplicación desde el modo suspendido.
No muestres mensajes dentro de la aplicación cuando el teclado se muestra en pantalla, ya que la representación no está definida en esta circunstancia.
Añadir mensajes dentro de la aplicación a la pila
Los usuarios son elegibles para recibir un mensaje dentro de la aplicación en las siguientes situaciones:
- Se dispara un evento desencadenador de mensajes dentro de la aplicación
- Evento de inicio de sesión
- La aplicación se abre desde una notificación push
Los mensajes desencadenados dentro de la aplicación se colocan en la pila cuando se dispara su evento desencadenante. Si hay varios mensajes dentro de la aplicación en la pila y esperando a ser mostrados, Braze mostrará primero el mensaje dentro de la aplicación recibido más recientemente (último en entrar, primero en salir).
Devolver mensajes dentro de la aplicación a la pila
Un mensaje dentro de la aplicación desencadenado puede volver al stack en las siguientes situaciones:
- El mensaje dentro de la aplicación se desencadena cuando la aplicación está en segundo plano.
- Actualmente hay visible otro mensaje dentro de la aplicación.
- No se ha implementado el método delegado de interfaz de usuario
beforeInAppMessageDisplayed:withKeyboardIsUp:
obsoleto, y se está mostrando el teclado. - El método delegado
beforeInAppMessageDisplayed:
o el método delegado de interfaz de usuario obsoletobeforeInAppMessageDisplayed:withKeyboardIsUp:
devuelvenABKDisplayInAppMessageLater
.
Descartar mensajes dentro de la aplicación
Un mensaje dentro de la aplicación desencadenado se descartará en las siguientes situaciones:
- El método delegado
beforeInAppMessageDisplayed:
o el método delegado de interfaz de usuario obsoletobeforeInAppMessageDisplayed:withKeyboardIsUp:
devuelvenABKDiscardInAppMessage
. - No se ha podido descargar el activo (imagen o archivo ZIP) del mensaje dentro de la aplicación.
- El mensaje dentro de la aplicación está listo para mostrarse, pero ya ha pasado el tiempo de espera.
- La orientación del dispositivo no coincide con la orientación del mensaje dentro de la aplicación desencadenado.
- El mensaje dentro de la aplicación es un mensaje completo dentro de la aplicación, pero no tiene imagen.
- El mensaje dentro de la aplicación es un mensaje modal dentro de la aplicación sólo con imagen, pero no tiene imagen.
Cola manualmente la visualización de mensajes dentro de la aplicación
Si quieres mostrar un mensaje dentro de la aplicación en otro momento, puedes mostrar manualmente el mensaje más alto de la pila llamando al método siguiente:
1
[[Appboy sharedInstance].inAppMessageController displayNextInAppMessage];
1
Appboy.sharedInstance()!.inAppMessageController.displayNextInAppMessage()
Creación y visualización de mensajes dentro de la aplicación en tiempo real
Los mensajes dentro de la aplicación también pueden crearse localmente dentro de la aplicación y mostrarse a través de Braze. Esto es especialmente útil para mostrar mensajes que deseas desencadenar dentro de la aplicación en tiempo real. Braze no admite análisis de mensajes dentro de la aplicación creados localmente.
1
2
3
4
5
ABKInAppMessageSlideup *customInAppMessage = [[ABKInAppMessageSlideup alloc] init];
customInAppMessage.message = @"YOUR_CUSTOM_SLIDEUP_MESSAGE";
customInAppMessage.duration = 2.5;
customInAppMessage.extras = @{@"key" : @"value"};
[[Appboy sharedInstance].inAppMessageController addInAppMessage:customInAppMessage];
1
2
3
4
5
let customInAppMessage = ABKInAppMessageSlideup.init()
customInAppMessage.message = "YOUR_CUSTOM_SLIDEUP_MESSAGE"
customInAppMessage.duration = 2.5
customInAppMessage.extras = ["key": "value"]
Appboy.sharedInstance()!.inAppMessageController.add(customInAppMessage)