Integración de actividades en directo con Adobe Experience Platform Mobile SDK mobile-live-config-sdk

En esta página: Integre Adobe Experience Platform Mobile SDK en su aplicación de iOS para que pueda registrar, mostrar y recibir actualizaciones de actividades en vivo en tiempo real en la pantalla de bloqueo y Dynamic Island.

Adobe Experience Platform Mobile SDK ofrece compatibilidad integrada con las actividades en directo de Apple. Esto permite que la aplicación muestre actualizaciones dinámicas en tiempo real directamente en la pantalla de bloqueo y en Dynamic Island sin necesidad de abrir la aplicación.

  1. Importación de módulos necesarios

    Importe los siguientes módulos: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.

  2. Definir atributos

    Cumplir con LiveActivityAttributes, incluir LiveActivityData y un atributo ContentState.

  3. Registrar actividad en directo

    Use Messaging.registerLiveActivity() después de la inicialización de SDK.

  4. Crear configuración de widget

    Implemente ActivityConfiguration tanto para la pantalla bloqueada como para la interfaz de Dynamic Island.

  5. Iniciar una actividad Live localmente (opcional)

    La actividad en directo se puede iniciar de forma remota a través de Journey Optimizer o de forma local dentro del código de la aplicación.

  6. Agregar compatibilidad de depuración (opcional)

    Implementar LiveActivityAssuranceDebuggable para Assurance.

Compruebe que están instaladas las siguientes versiones mínimas para garantizar una configuración y compatibilidad correctas.

Requisitos previos:

  • iOS:

    • iOS16.1 o posterior: Funcionalidad básica de actividad en directo
    • iOS 17.2+: compatibilidad con push-to-start
    • iOS 18+: compatibilidad con el canal de difusión
  • Xcode: 14.0 o posterior

  • Swift: 5.7 o posterior

  • Dependencias: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit

  • AEP Mobile SDK versión: iOS Messaging 5.11.0 o posterior

Paso 1: Importar los módulos necesarios import

Para empezar, primero debe importar los siguientes módulos: AEPMessaging, AEPMessagingLiveActivity, ActivityKit.

import AEPMessaging
import AEPMessagingLiveActivity
import ActivityKit

Paso 2: definir los atributos de la actividad activa attributes

Cree una estructura que se ajuste al protocolo LiveActivityAttributes. Esto define tanto los datos estáticos como el estado del contenido dinámico para su actividad en directo.

Los componentes clave incluyen:

  • liveActivityData (obligatorio) que contiene datos específicos de Adobe Experience Platform.

    • Para usuarios individuales: use LiveActivityData(liveActivityID: "unique-id")
    • Para difusión: usar LiveActivityData(channelID: "channel-id")
  • Atributos estáticos, propiedades personalizadas específicas del caso de uso, por ejemplo restaurantName.

  • ContentState, que define los datos dinámicos que se pueden actualizar durante el ciclo vital de la actividad. Debe ajustarse a Codable y Hashable.

  • La enumeración LiveActivityOrigin especifica si una actividad se inició localmente en la aplicación o de forma remota mediante una notificación push-to-start, admitida en iOS 17.2 y versiones posteriores. Este valor permite a SDK diferenciar entre la actividad en directo iniciada localmente y la activada de forma remota durante la recopilación de datos.

Ejemplos

@available(iOS 16.1, *)
struct FoodDeliveryLiveActivityAttributes: LiveActivityAttributes {
    // Mandatory: AEP Integration Data
    var liveActivityData: LiveActivityData

    // Static Attributes: Custom properties that do not change
    var restaurantName: String

    // Dynamic Content State: Data that can be updated
    struct ContentState: Codable, Hashable {
        var orderStatus: String
    }
}
@available(iOS 16.1, *)
public struct LiveActivityData: Codable {
    /// Unique identifier for broadcast Live activity channels
    public let channelID: String?

    /// Unique identifier for individual Live activity
    public let liveActivityID: String?

    /// Indicates local vs remote creation
    public let origin: LiveActivityOrigin?

    // Initializers
    public init(channelID: String)        // For broadcast Live activity
    public init(liveActivityID: String)   // For individual Live activity
}

También puede registrar varios tipos de actividades en directo para la aplicación:

if #available(iOS 16.1, *) {
    Messaging.registerLiveActivity(AirplaneTrackingAttributes.self)
    Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
    Messaging.registerLiveActivity(GameScoreLiveActivityAttributes.self)
}

Paso 3: Registro de una actividad activa register

Registre los tipos de actividades de Live en su AppDelegate después de la inicialización de SDK, esto le permite:

  • Habilita la recopilación automática de tokens de push-to-start (iOS 17.2+)
  • Recopila automáticamente tokens de actualización de actividades en directo
  • Habilita la administración del ciclo vital y el seguimiento de eventos

Ejemplo de una actividad de entrega de alimentos en directo:

if #available(iOS 16.1, *) {
    Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
}

Paso 4: crear widgets de actividad activos widgets

Se muestra una actividad en directo a través de widgets. Debe crear un paquete de widgets y una configuración:

Ejemplo de una actividad de entrega de alimentos en directo:

@main
struct FoodDeliveryWidgetBundle: WidgetBundle {
    var body: some Widget {
        FoodDeliveryLiveActivityWidget()
    }
}

@available(iOS 16.1, *)
struct FoodDeliveryLiveActivityWidget: Widget {
    var body: some WidgetConfiguration {
        ActivityConfiguration(for: FoodDeliveryLiveActivityAttributes.self) { context in
            // Lock Screen UI
            VStack {
                Text("Order from \(context.attributes.restaurantName)")
                Text("Status: \(context.state.orderStatus)") // possible status may include "Ordered", "Order accepted", "Preparing", "On the Way","Delivered"
            }
        } dynamicIsland: { context in
            // Dynamic Island UI
            DynamicIsland {
                // Expanded UI
            } compactLeading: {
                // Compact leading UI
            } compactTrailing: {
                // Compact trailing UI
            } minimal: {
                // Minimal UI
            }
        }
    }
}

Paso 5: Inicio de una actividad local (opcional) local

Aunque Journey Optimizer puede iniciar actividades Live de forma remota, también puede iniciarlas localmente:

Ejemplo de una actividad de entrega de alimentos en directo:

let attributes = FoodDeliveryLiveActivityAttributes(
    liveActivityData: LiveActivityData(liveActivityID: "order123"),
    restaurantName: "Pizza Palace"
)

let contentState = FoodDeliveryLiveActivityAttributes.ContentState(
    orderStatus: "Ordered"
)

let activity = try Activity<FoodDeliveryLiveActivityAttributes>.request(
    attributes: attributes,
    contentState: contentState,
    pushType: .token
)

Paso 6: Agregar compatibilidad de depuración (opcional) debug

Si es necesario, puede depurar los esquemas de actividad en directo en Adobe Assurance:

Ejemplo de una actividad de entrega de alimentos en directo:

@available(iOS 16.1, *)
extension FoodDeliveryLiveActivityAttributes: LiveActivityAssuranceDebuggable {
    static func getDebugInfo() -> (attributes: FoodDeliveryLiveActivityAttributes, state: ContentState) {
        return (
            FoodDeliveryLiveActivityAttributes(
                liveActivityData: LiveActivityData(liveActivityID: "debug-order-123"),
                restaurantName: "Debug Restaurant"
            ),
            ContentState(orderStatus: "Ordered")
        )
    }
}

Recursos adicionales

Para obtener documentación completa de SDK y detalles de la implementación:

TIP
Si tiene problemas con el registro de tokens, la alineación de carga útil o la entrega de actividades en directo, consulte Solucionar problemas de actividades en directo para obtener instrucciones detalladas sobre la depuración.
AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: This page explains how to integrate the Adobe Experience Platform Mobile SDK into an iOS app so it can register, display, and receive real-time Live activity updates on the Lock Screen and Dynamic Island.

Intents:

  • Import the required modules AEPMessaging, AEPMessagingLiveActivity, and ActivityKit
  • Define Live activity attributes conforming to LiveActivityAttributes, including LiveActivityData and a ContentState
  • Register Live activity types with Messaging.registerLiveActivity() after SDK initialization
  • Create a widget configuration (ActivityConfiguration) for both the Lock Screen and Dynamic Island
  • Optionally start a Live activity locally and add Assurance debug support

Glossary:

  • LiveActivityAttributes: The protocol a struct conforms to, defining both the static data and the dynamic content state for a Live activity (product-specific)
  • LiveActivityData: A required property containing Adobe Experience Platform-specific data; liveActivityID for individual users, channelID for broadcast (product-specific)
  • ContentState: Dynamic data that can be updated during the Live activity lifecycle; must conform to Codable and Hashable
  • LiveActivityOrigin: An enumeration specifying whether an activity was initiated locally or remotely via a push-to-start notification, supported in iOS 17.2 and later (product-specific)
  • Messaging.registerLiveActivity(): The call used after SDK initialization to register Live activity types (product-specific)
  • ActivityConfiguration: The widget configuration implemented for the Lock Screen and Dynamic Island interface
  • LiveActivityAssuranceDebuggable: The protocol implemented to debug Live activity schemas in Adobe Assurance (product-specific)

Guardrails:

  • iOS: 16.1 or later for basic Live activity functionality; 17.2 or later for push-to-start; 18 or later for broadcast channel support (minimum versions).
  • Xcode 14.0 or later (minimum version).
  • Swift 5.7 or later (minimum version).
  • AEP Mobile SDK: iOS Messaging 5.11.0 or later (minimum version).
  • Required dependencies: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit.
  • liveActivityData is required and contains Adobe Experience Platform-specific data; ContentState must conform to Codable and Hashable.

Terminology:

  • Canonical name: Adobe Experience Platform Mobile SDK — Acronym: AEP Mobile SDK — variants: Mobile SDK, messaging SDK
  • Synonyms: “push-to-start” = “remotely triggered start, supported in iOS 17.2 and later”
  • Do not confuse: “liveActivityID” (individual users) ≠ “channelID” (broadcast)
  • Do not confuse: “start a Live activity locally” (initiated within the application code) ≠ “start remotely via push-to-start” (triggered remotely through Journey Optimizer)

FAQ:

  • Q: Which modules must I import? — AEPMessaging, AEPMessagingLiveActivity, and ActivityKit.
  • Q: What is the minimum iOS version? — iOS 16.1 or later for basic functionality; iOS 17.2 or later for push-to-start; iOS 18 or later for broadcast channel support.
  • Q: Which AEP Mobile SDK version is required? — iOS Messaging 5.11.0 or later.
  • Q: How do I register Live activity types? — Use Messaging.registerLiveActivity() in your AppDelegate after SDK initialization; you can register multiple Live activity types.
  • Q: Can I start a Live activity without Journey Optimizer? — Yes, a Live activity can be initiated locally within the application code (optional), in addition to being started remotely through Journey Optimizer.
recommendation-more-help
journey-optimizer-help