Creación y visualización de ofertas con Decisioning

Descubra cómo mostrar ofertas de Journey Optimizer Decisioning en sus aplicaciones móviles con Experience Platform Mobile SDK.

Journey Optimizer Decisioning es la siguiente generación de administración de ofertas y la sucesora de Administración de decisiones. La función Decisioning le permite ofrecer ofertas de marketing personalizadas combinando un catálogo centralizado de elementos de decisión con un potente motor de decisión. Tanto si está personalizando el contenido para públicos individuales u optimizando estrategias con clasificaciones con tecnología de IA, la toma de decisiones proporciona las herramientas para tomar decisiones basadas en datos a escala. Explore conceptos clave como los elementos de decisión, las reglas y las políticas, y explore cómo estos elementos funcionan conjuntamente para seleccionar y priorizar el mejor contenido para sus campañas. Desde la administración de colecciones y ubicaciones hasta el aprovechamiento de los datos de Adobe Experience Platform, esta guía completa le ayuda a descubrir una personalización más inteligente y a impulsar experiencias de cliente impactantes.

Arquitectura {modal="regular"}

Decisioning simplifica la personalización al ofrecer un catálogo centralizado de ofertas de marketing conocidas como “elementos de decisión” y un motor de decisión sofisticado. Este motor aprovecha las reglas y los criterios de clasificación para seleccionar y presentar a cada persona los elementos de decisión más relevantes. Estos elementos de decisión se integran perfectamente en los mensajes y experiencias de todos los canales de Adobe Journey Optimizer: experiencia basada en código, correo electrónico, SMS, notificaciones push y mucho más.

En esta lección, el enfoque está en el uso del canal de experiencia basado en código para entregar ofertas en la aplicación móvil. Y no en explicar en profundidad todas las capacidades de la solución Decisioning. Consulte la documentación de Decisioning para obtener más información.

NOTE
Esta lección es opcional y solo se aplica a los usuarios de Journey Optimizer que buscan utilizar la funcionalidad Decisioning para mostrar ofertas en una aplicación móvil.

Requisitos previos

Objetivos de aprendizaje

En esta lección, debe

  • Actualice la configuración de Edge para Decisioning.
  • Cree un esquema para representar las ofertas.
  • Valide la configuración en Assurance.
  • Configure un canal de experiencia basado en código.
  • Cree una campaña de experiencia basada en código basada en ofertas de Journey Optimizer - Decisioning.
  • Implemente ofertas desde Decisioning en la aplicación.

Configuración

TIP
Si ya configuró el entorno como parte de la lección Configurar pruebas A/B con Target, es posible que ya haya realizado algunos de los pasos de esta sección de configuración.

Actualizar configuración de secuencia de datos

Para asegurarse de que los datos enviados desde la aplicación móvil a Platform Edge Network se reenvíen a Journey Optimizer - Decisioning, actualice el flujo de datos.

  1. En la IU de recopilación de datos, seleccione Datastreams y su secuencia de datos, por ejemplo Luma Mobile App.

  2. Seleccione Más para Experience Platform y seleccione Editar Editar en el menú contextual.

  3. En la pantalla de Datastreams > Folder > Adobe Experience Platform, compruebe que Offer Decisioning, Edge Segmentation y Adobe Journey Optimizer estén habilitados.

  4. Para guardar la configuración de su secuencia de datos, seleccione Guardar .

    Configuración de secuencia de datos de AEP {modal="regular"}

Definición del esquema

  1. Vaya a la interfaz de recopilación de datos y seleccione Esquemas en el carril izquierdo.

  2. Seleccione Examinar en la barra superior.

  3. Abra el esquema Elementos de oferta personalizados - Experience Decisioning. Este esquema es el esquema dedicado para configurar los elementos de oferta, sus atributos y metadatos.

  4. Agregue grupos de campos adicionales al esquema que representen cómo desea utilizar las ofertas en Decisioning. Consulte Crear esquema para comprender cómo crear esquemas. Para esta lección, se han creado dos grupos de campos como parte de la configuración de la zona protegida _techmarketingdemos: Oferta y Metadatos de la oferta. Puede ver la estructura completa del esquema a continuación.

    • Todos los campos de mediaAssets, como image o imageLowRes son del tipo DesignAssets y automáticamente tienen los campos de cadena destinationURL, edgePath, repository, sourceURL, trackedURL y type.
    • Todos los demás campos son del tipo Object (por ejemplo offerMetadata) o String (por ejemplo fullDescription).

    Toma de decisiones por experiencia de esquema {modal="regular"}

    Puede definir su esquema Elementos de oferta personalizados - Experience Decisioning de la manera que desee. La estructura anterior es solo un ejemplo que se utiliza para el resto de esta lección.

  5. Asegúrese de seleccionar Guardar para guardar los cambios que realice en el esquema Elementos de oferta personalizados - Experience Decisioning.

Instalación de la extensión Journey Optimizer tags

Para que la aplicación funcione con Journey Optimizer, debe actualizar la propiedad de etiquetas.

  1. Vaya a Etiquetas > Extensiones > Catálogo.
  2. Abra su propiedad, por ejemplo Luma Mobile App Tutorial.
  3. Seleccione Catálogo.
  4. Busque la extensión Adobe Journey Optimizer.
  5. Instale la extensión de.

Cuando solo usa ofertas basadas en Decisioning en su aplicación, en Instalar extensión o Configurar extensión, no necesita configurar nada. Si ya ha seguido la lección Notificaciones push del tutorial, verá que para el entorno Desarrollo, el conjunto de datos AJO Push Tracking Experience Event Dataset está seleccionado de la lista Conjunto de datos de evento.

Implementar Journey Optimizer en la aplicación

Como se ha explicado en lecciones anteriores, la instalación de una extensión de etiqueta móvil solo proporciona la configuración. A continuación, debe instalar y registrar Messaging SDK. Si estos pasos no están claros, revise la sección Instalar SDK.

NOTE
Si ha completado la sección Instalar SDK, SDK ya está instalado y puede omitir este paso.
iOS
  1. En Xcode, asegúrese de que Mensajería de AEP se agrega a la lista de paquetes en Dependencias del paquete. Consulte Administrador De Paquetes Swift.

  2. Vaya a Luma > Luma > AppDelegate en el navegador del proyecto Xcode.

  3. Asegúrese de que AEPMessaging forme parte de su lista de importaciones.

    import AEPMessaging

  4. Asegúrese de que Messaging.self forme parte de la matriz de extensiones que está registrando.

    code language-swift
    let extensions = [
        AEPIdentity.Identity.self,
        Lifecycle.self,
        Signal.self,
        Edge.self,
        AEPEdgeIdentity.Identity.self,
        Consent.self,
        UserProfile.self,
        Places.self,
        Messaging.self,
        Optimize.self,
        Assurance.self
    ]
    
Android
  1. En Android Studio, asegúrese de que aepsdk-messaging-android forme parte de las dependencias de build.gradle.kts en Android ChevronDown > Gradle Scripts. Ver Gradle.

  2. Vaya a Android ChevronDown app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication en el navegador de proyectos de Android Studio.

  3. Asegúrese de que com.adobe.marketing.mobile.Messaging forme parte de su lista de importaciones.

    import import com.adobe.marketing.mobile.Messaging

  4. Asegúrese de que Messaging.EXTENSION forme parte de la matriz de extensiones que está registrando.

    code language-kotlin
    val extensions = listOf(
        Identity.EXTENSION,
        Lifecycle.EXTENSION,
        Signal.EXTENSION,
        Edge.EXTENSION,
        Consent.EXTENSION,
        UserProfile.EXTENSION,
        Places.EXTENSION,
        Messaging.EXTENSION,
        Optimize.EXTENSION,
        Assurance.EXTENSION
    )
    

Validar la configuración en Assurance

No es necesario validar la configuración de Decisioning en Assurance. Decisioning no utiliza una extensión de etiqueta de recopilación de datos Experience Platform específica ni requiere un paquete adicional para la aplicación. La toma de decisiones depende de la extensión de mensajería de su aplicación, que ya debería haber agregado como parte de las lecciones de Instalar los SDK móviles de Adobe Experience Platform y Crear y enviar mensajes en la aplicación de este tutorial.

Crear una configuración de canal de experiencia basada en código

Para mostrar ofertas en las pantallas de la aplicación, debe configurar un canal de experiencia dedicado basado en código. Este canal de experiencia basado en código define la superficie (la ubicación) de la aplicación donde muestra las ofertas.

Para crear un canal de experiencia basado en código.

  1. En la interfaz de usuario de Journey Optimizer, seleccione Canal Canales de Administración en el carril izquierdo.

  2. Seleccione Configuraciones de canal de Configuración general.

  3. Seleccione Crear configuración de canal.

  4. En detalles de configuración del canal:

    Detalles de configuración del canal

    1. Escriba un Nombre. Por ejemplo: LumaMobileAppCodeBased.

    2. Escriba una descripción. Por ejemplo: Code-based experience for Luma app used in Mobile SDK tutorial.

    3. Seleccione Experiencia basada en código del menú desplegable Seleccionar canal.

    4. Seleccione una o más acciones de marketing de Seleccione una o varias acciones de marketing. Por ejemplo Personalization in situ.

    5. Seleccione las plataformas para las que desea configurar la experiencia basada en código. Para este tutorial, selecciona iOS, Android o ambos.

      • Para iOS:

        1. Escriba el ID de aplicación seleccionado. Por ejemplo, el identificador de su aplicación: com.adobe.luma.tutorial.swiftui.
        2. Escriba o seleccione una ubicación para ubicación o ruta de acceso dentro de la aplicación. Por ejemplo: offersLocation.
        3. Escriba una URL de vista previa. Por ejemplo: lumatutorialswiftui://.
      • Para Android:

        1. Escriba el ID de aplicación seleccionado. Por ejemplo, el identificador de su aplicación: com.adobe.luma.tutorial.android.
        2. Escriba o seleccione una ubicación para ubicación o ruta de acceso dentro de la aplicación. Por ejemplo: offersLocation.
        3. Escriba una URL de vista previa. Por ejemplo: lumatutorialandroid://default.
      • Contenido

        • Seleccione JSON para el Formato.
  5. Seleccione Enviar para enviar su experiencia basada en código.

Crear ofertas

En esta sección creará ofertas para la toma de decisiones.

  1. En la interfaz de usuario de Journey Optimizer, seleccione DecisionItems Catálogos de Decisioning en el carril izquierdo.

  2. Seleccione Ofertas de catálogos para ver la lista de Ofertas.

  3. Seleccione Crear elemento.

    1. En el paso ➊ Atributos de creación de una oferta (elemento de decisión):

      Atributos para una oferta en Decisioning {modal="regular"}

      1. En la sección Atributos estándar:

        1. Escriba un nombre de oferta. Por ejemplo: Luma - Desiree Fitness Tee.
        2. Escriba una fecha de inicio o seleccione una con Calendario . Por ejemplo: 7/1/2026, 12:00 AM.
        3. Escriba una fecha de finalización o seleccione una con Calendario . Por ejemplo: 12/31/2026, 12:00 AM.
        4. Escriba una prioridad. Por ejemplo: 10.
        5. Seleccione una o más etiquetas apropiadas del menú desplegable Etiquetas. Por ejemplo: Luma - Aplicación móvil.
      2. En la sección Atributos personalizados, escriba valores para el contenido y los metadatos de la oferta. Los datos que puede introducir y cómo puede hacerlo están totalmente determinados por la forma en que ha definido su esquema para las ofertas. En este tutorial, debe proporcionar un título, un texto y una imagen para cada oferta.

        1. En el contenedor Offer, dentro del subcontenedor Media Assets:

          1. Seleccione Agregar desde la dirección URL para Imagen e introduzca un valor apropiado para E​Introducir dirección URL de origen. Por ejemplo: https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg.
          2. Seleccione Agregar desde la dirección URL para Imagen (alta resolución) e introduzca un valor apropiado para Introducir dirección URL de origen. Por ejemplo: https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg.
        2. En el contenedor Offer, dentro del subcontenedor Text:

          1. Escriba un valor para Descripción completa. Por ejemplo: When you're too far to turn back, thank yourself for choosing the Desiree Fitness Tee. Its ultra-lightweight, ultra-breathable fabric wicks sweat away from your body and helps keeps you cool for the distance.
          2. Escriba un valor para Title. Por ejemplo: Desiree Fitness Tee.
      3. Seleccione Siguiente.

    2. En el paso ➋ Elegibilidad de la creación de una oferta (elemento de decisión):

      Crear elemento de oferta - Elegibilidad {modal="regular"}

      1. En Elegibilidad, asegúrese de que Todos los visitantes esté seleccionado.
      2. No es necesario crear un límite en la sección Límite.
      3. Seleccione Siguiente.
    3. En el paso ➌ revisar de la creación de una oferta (elemento de decisión):

      Crear elemento de oferta - Revisar {modal="regular"}

      1. Revise la oferta. Puede usar Editar para cambiar atributos estándar, atributos del cliente o restricciones de perfil.
      2. Seleccione Guardar.
  4. Repita el paso 3 (Crear elemento) para las siguientes ofertas adicionales:

    table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4
    Nombre Título Descripción completa Imagen e imagen (alta resolución)
    Luma - Affirm Water Bottle Affirm Water Bottle You'll stay hydrated with ease with the Affirm Water Bottle by your side or in hand. Measurements on the outside help you keep track of how much you're drinking, while the screw-top lid prevents spills. A metal carabiner clip allows you to attach it to the outside of a backpack or bag for easy access. https://newluma.enablementadobe.com/images/ug06-lb-0.jpg
    Luma - Aero Daily Fitness Tee Aero Daily Fitness Tee Need an everyday action tee that helps keep you dry? The Aero Daily Fitness Tee is made of 100% polyester wicking knit that funnels moisture away from your skin. Don't be fooled by its classic style; this tee hides premium performance technology beneath its unassuming look. https://newluma.enablementadobe.com/images/ms01-black_main.jpg
    Luma - Adrienne Trek Jacket Adrienne Trek Jacket You're ready for a cross-country jog or a coffee on the patio in the Adrienne Trek Jacket. Its style is unique with stand collar and drawstrings, and it fits like a jacket should. https://newluma.enablementadobe.com/images/wj08-gray_main.jpg
    Luma - Juno Jacket Juno Jacket On colder-than-comfortable mornings, you'll love warming up in the Juno All-Ways Performanc Jacket, designed to compete with wind and chill. Built-in Cocona™ technology aids evaporation, while a special zip placket and stand-up collar keep your neck protected. https://newluma.enablementadobe.com/images/wj06-purple_main.jpg

    Todos los demás valores, como Fecha de inicio, Fecha de finalización, Prioridad, Límite, Elegibilidad y otros que no se definen explícitamente en la tabla anterior, deben ser los mismos en todas las ofertas y en función de lo que haya definido para la primera oferta.

Ahora debería tener la siguiente lista de ofertas:

Lista de ofertas {modal="regular"}

Crear una colección

Para presentar una oferta al usuario de la aplicación móvil, debe crear una colección de ofertas que consista en una o varias de las ofertas creadas. Utilice reglas para seleccionar qué ofertas pertenecen a una colección.

  1. En la interfaz de usuario de Journey Optimizer, seleccione DecisionItems Catálogos de Decisioning en el carril izquierdo.

  2. Seleccione Colecciones de catálogos para ver la lista de Colecciones.

  3. Seleccione Crear colección.

  4. En la sección Detalles:

    1. Escriba un Nombre para la colección. Por ejemplo: Luma - Mobile App Collection.
    2. Escriba una descripción para la colección. Por ejemplo: Collection of Luma mobile app offers.
  5. En la sección Reglas de colección, debajo de NÚMERO DE ELEMENTOS:

    1. Seleccione Haga clic para crear un elemento de decisión…

    2. Use Seleccionar atributo para seleccionar un atributo.

      1. En el diálogo Seleccionar un atributo, seleccione un atributo de decisión. Por ejemplo nombre de oferta.
      2. Seleccione Guardar.
    3. Utilice el menú desplegable Igual a para seleccionar una condición. Por ejemplo Comienza con.

    4. En el campo de texto, introduzca el valor de la condición. Por ejemplo: Luma -. Este valor seleccionará todas las ofertas cuyo nombre comience por Luma - para que formen parte de la colección. Puede crear cualquier tipo de regla y también combinar reglas, usando AddCircle Agregar regla.

  6. Seleccione Crear para crear la colección.

    Ofertas - Colección {modal="regular"}

Crear una estrategia de selección

Una estrategia de selección es reutilizable y consiste en una colección asociada con una restricción de elegibilidad y un método de clasificación para determinar las ofertas que se mostrarán cuando se seleccionen en una política de decisión. La política de decisión se cubre en la sección Crear una campaña.

En nuestra implementación, la estrategia de selección se mantiene lo más simple posible.

  1. En la interfaz de usuario de Journey Optimizer, seleccione Estrategia Configuración de estrategia de Toma de decisiones en el carril izquierdo.

  2. Seleccione Estrategias de selección.

  3. Seleccione Crear estrategia de selección. En el diálogo Crear estrategia de selección:

    1. Escriba un nombre de estrategia de selección. Por ejemplo: Luma - Mobile App Selection Strategy.

    2. Use Seleccionar colección para seleccionar la colección para la estrategia de selección.

      1. En el cuadro de diálogo Colección, seleccione una colección. Por ejemplo: Luma - Colección de aplicaciones móviles.
      2. Seleccione Guardar.
    3. Asegúrese de que Todos los visitantes se ha seleccionado para Elegibilidad.

    4. Asegúrese de que Prioridad de ofertas esté seleccionada para Método de clasificación.

  4. Seleccione Crear para crear la estrategia de selección.

    Crear estrategia de selección

Creación de una campaña

Ahora puede crear una campaña que utilice tanto la colección de ofertas como el canal de configuración de experiencias basado en código. Las campañas son acciones de marketing coordinadas que ofrecen contenido a una audiencia específica a través de uno o más canales.

Como parte de la campaña, también puede crear una política de decisión. Las políticas de decisión son contenedores para sus ofertas que aprovechan el motor de tomas de decisiones para devolver de forma dinámica el mejor contenido para entregar a cada miembro del público. Su objetivo es seleccionar las mejores ofertas para cada perfil, mientras que la creación de campañas/recorridos le permite indicar cómo se deben presentar los elementos de decisión seleccionados, incluidos los atributos de elemento que se deben incluir en el mensaje.

  1. En la interfaz de usuario de Journey Optimizer, seleccione Claxon Campaigns de Recorrido management en el carril izquierdo.

  2. Seleccione Crear campaña.

  3. En el cuadro de diálogo Crear su campaña, seleccione Programado - Marketing como el tipo de campaña que desea crear.

  4. Seleccione Confirmar.

  5. En la pestaña Properties de la pantalla **Campaign - *timestamp ***:

    1. Escriba un Nombre para la campaña. Por ejemplo: Luma - Mobile App Offers.
    2. Opcionalmente, escriba Descripción.
  6. Seleccione Acciones.

    1. En la sección Acciones:

      1. Seleccione Agregar Agregar acción. En el menú desplegable, seleccione Código Experiencia basada en código.
      2. En la sección de configuración de acciones de la experiencia basada en código, seleccione la configuración de canal de experiencia basada en código LumaMobileAppCodeBased en el menú desplegable Configuración de canal de experiencia basada en código.
    2. No cambien las demás configuraciones de Optimization, Languages y Conflict management.

  7. Seleccione Contenido.

    1. En la pantalla de la experiencia basada en código, seleccione Editar Editar código.

    2. En la experiencia basada en código | Configuración del canal: pantalla de LumaMobileAppCodeBased:

      1. En el editor, escriba el siguiente JSON:

        code language-json
        {
           "version": "1.0",
           "offers": [
           ]
        }
        
      2. Seleccione DecisionItemsConfiguration directiva de decisión en el segundo carril izquierdo.

        1. Seleccione DecisionItemsConfiguration Agregar directiva de decisión.

        2. En el asistente de diálogo Crear directiva de decisión, en el paso ➊ Detalles:

          1. Escriba un Nombre para la directiva de decisión. Por ejemplo: Luma - Mobile App Decision Policy.
          2. Seleccione o ingrese 2 para el Número de elementos. Esta entrada garantiza que se devuelvan dos ofertas.
          3. Seleccione Siguiente.
        3. En el asistente de diálogo Crear directiva de decisión, en el paso ➋ Estrategias:

          1. En la secuencia de estrategia, seleccione AgregarCírculo Agregar para agregar una secuencia de estrategia.

          2. En el menú contextual, seleccione Estrategia de selección.

            1. En el cuadro de diálogo Agregar una estrategia de selección, seleccione la estrategia de selección que creó anteriormente, Luma: estrategia de selección de aplicaciones móviles.
            2. Seleccione Guardar.
          3. Seleccione Siguiente.

        4. En el asistente del cuadro de diálogo Crear directiva de decisión, en el paso ➌ Revisar, revise la directiva de decisión.

          1. Seleccione Crear para crear la directiva de decisión.
      3. Ahora que hay disponible una directiva de decisión, puede usar el carril Luma: directiva de decisión para aplicaciones móviles para insertar los elementos adecuados de esa directiva de decisión en el editor JSON.

        1. En el editor JSON, agregue una nueva línea entre [ y ].

        2. Desde el carril Luma - Directiva de decisión de aplicación móvil:

          1. Seleccione Agregar Insertar directiva para insertar la directiva de decisión como JSON en el editor.
          2. Coloque el cursor en el editor en una línea antes de cerrar {{/each}}.
          3. Seleccione tenant-name (por ejemplo: _techmarketingdemos) > Oferta > Contenido de texto > Título y luego +. Esto agrega el título de la oferta al JSON como un elemento title.
          4. Seleccione tenant-name > Oferta > Contenido de texto > Descripción completa y luego +. Esto agrega la descripción de la oferta al JSON como un elemento text.
          5. Seleccione tenant-name > Oferta > Recursos multimedia > Imagen > sourceURL y luego +. Esto agrega la dirección URL de origen para la imagen de alta resolución de la oferta al JSON como un elemento image.

          El JSON final debe ser similar al siguiente, con valores actualizados para el identificador de la política de decisión y los nombres de los inquilinos.

          JSON final para la directiva de toma de decisiones

          Asegúrese de que los elementos JSON title, text y image estén envueltos como un objeto mediante { }. Y que inserta un(a) , después de ese objeto y justo antes de {{/each}} en el JSON.

      4. Use FileCode Validate para validar el JSON.

      5. Seleccione Guardar y cerrar.

  8. Seleccione Revisar para activar.

  9. La pantalla Revisar para activar (Luma: ofertas de aplicaciones móviles) proporciona información general sobre la campaña.

    Revisar para activar

  10. Si no ve advertencias ni errores, seleccione Activar para activar la campaña. En el cuadro de diálogo de confirmación, seleccione Activar una vez más.

  11. En la lista de campañas, debería ver la campaña cambiando el estado de StatusOrange Activando a StatusOrange Procesando a StatusBlue Activo.

Ahora, su campaña de experiencia basada en código está activa y puede actualizar la aplicación móvil para utilizar la campaña de experiencia basada en código y procesar ofertas en la ubicación o superficie definida en la configuración del canal de experiencia basada en código.

Implementación de ofertas en la aplicación

Como se ha explicado en lecciones anteriores, la instalación de una extensión de etiqueta móvil solo proporciona la configuración. A continuación, debe asegurarse de que la extensión de mensajería esté configurada para su aplicación. Si estos pasos no están claros, revise la sección Instalar SDK.

iOS
  1. En Xcode, asegúrese de que AEP Messaging se agrega a la lista de paquetes en Dependencias del paquete. Consulte Administrador De Paquetes Swift.

  2. Vaya a Luma > Luma > AppDelegate en el navegador del proyecto Xcode.

  3. Asegúrese de que AEPMessaging forme parte de su lista de importaciones.

    code language-swift
    import AEPMessaging
    
  4. Asegúrese de que Messaging.self forme parte de la matriz de extensiones que está registrando.

    code language-swift
    let extensions = [
        AEPIdentity.Identity.self,
        Lifecycle.self,
        Signal.self,
        Edge.self,
        AEPEdgeIdentity.Identity.self,
        Consent.self,
        UserProfile.self,
        Places.self,
        Messaging.self,
        Optimize.self,
        Assurance.self
    ]
    
  5. Vaya a Luma > Luma > Model > Data > general en el navegador del proyecto Xcode. Asegúrese de que showDecisioning está establecido en true y que showPersonalization está establecido en false en la sección config.

    code language-json
    ...
    "showPersonalisation": false,
    "showDecisioning": true,
    ...
    

    Esta configuración garantiza que Decisioning se use para ofertas en la ficha Personalización de la aplicación.

  6. Vaya a Luma > Luma > Model > Data > general en el navegador del proyecto Xcode. Asegúrese de que haya configurada una sección decisioning con un elemento surface que identifique la ubicación o superficie que ha configurado para su canal de experiencia basado en código. Por ejemplo: offersLocation.

    code language-json
    "decisioning": {
       "surface": "offersLocation"
    },
    
  7. Vaya a Luma > Luma > Utils > MobileSDK en el navegador del proyecto Xcode. Busque la función func updatePropositionsForSurface(). Añada el siguiente código:

    code language-swift
    // get the propositions for the surfaces configured.
    Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Updating \(surfaces.count) surface(s)")
    for surface in surfaces {
       Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Surface URI: \(surface.uri)")
    }
    
    // Call the Messaging extension API to fetch propositions
    Messaging.updatePropositionsForSurfaces(surfaces)
    
    Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Update triggered successfully")
    

    Esta función:

    • obtiene las propuestas para las superficies.

    En esta implementación, solo se configura y utiliza una superficie. El código requiere actualizaciones si desea gestionar varias superficies configuradas.

  8. Vaya a Luma > Luma > Views > Personalization > EdgeDecisioningOffersView en el navegador del proyecto Xcode. Busque la función func fetchPropositions() async e inspeccione el código de esta función. La parte más importante de esta función es la llamada a la API Messaging.getPropositionsForSurfaces([surface]) { propositionsDict, error in, que

    • recupera las propuestas del perfil actual en función de la superficie,
    • recupera la oferta de la propuesta,
    • desajusta el contenido de la oferta (mediante la función parseCodeBasedContent) para que se pueda mostrar correctamente en la aplicación.
  9. Todavía en EdgeDecisioningOffersView, vea cómo en .task modificador:

    1. Las propuestas se han actualizado mediante self.updatePropositionsForSurface().
    2. Se implementa una breve espera para que la red de Edge responda y almacene en caché las propuestas.
    3. Las propuestas en caché se recuperan usando await self.fetchPropositions.
Android
  1. En Android Studio, asegúrese de que aepsdk-optimize-android forme parte de las dependencias en build.gradle.kts (Módulo :app) en Android ChevronDown > Gradle Scripts. Ver Gradle.

  2. Vaya a Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity en el navegador de Android Studio.

  3. Asegúrese de que Optimize forme parte de su lista de importaciones.

    code language-kotlin
    import com.adobe.marketing.mobile.optimize.Optimize
    
  4. Asegúrese de que Optimize.EXTENSION forme parte de la matriz de extensiones que está registrando.

    code language-kotlin
    val extensions = listOf(
       Identity.EXTENSION,
       Lifecycle.EXTENSION,
       Signal.EXTENSION,
       Edge.EXTENSION,
       Consent.EXTENSION,
       UserProfile.EXTENSION,
       Places.EXTENSION,
       Messaging.EXTENSION,
       Optimize.EXTENSION,
       Assurance.EXTENSION
    )
    
  5. Vaya a Android ChevronDown > app > assets > data > general.json en el navegador del proyecto. Asegúrese de que showDecisioning está establecido en true y que showPersonalization está establecido en false en la sección config.

    code language-json
    ...
    "showPersonalisation": false,
    "showDecisioning": true,
    ...
    

    Esta configuración garantiza que Decisioning se use para ofertas en la ficha Personalización de la aplicación.

  6. Vaya a Android ChevronDown > app > assets > data > general.json en el navegador del proyecto. Asegúrese de que haya configurada una sección decisioning con un elemento surface que identifique la ubicación o superficie que ha configurado para su canal de experiencia basado en código. Por ejemplo: offersLocation.

    code language-json
    "decisioning": {
       "surface": "offersLocation"
    },
    
  7. Vaya a Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK en el navegador de Android Studio. Busque la función suspend fun updatePropositionsForSurfaces(surfaces: List<Surface>). Añada el siguiente código:

    code language-kotlin
    // get the propositions for the surfaces configured
    withContext(Dispatchers.IO) {
       Log.i("MobileSDK", "updatePropositionsForSurfaces: Updating ${surfaces.size} surface(s)")
       surfaces.forEach { surface ->
          Log.i("MobileSDK", "updatePropositionsForSurfaces: Surface URI: ${surface.uri}")
       }
    
       Messaging.updatePropositionsForSurfaces(surfaces)
       Log.i("MobileSDK", "updatePropositionsForSurfaces: Update triggered successfully")
    }
    

    Esta función:

    • obtiene las propuestas para las superficies.

    En esta implementación, solo se configura y utiliza una superficie. El código requiere actualizaciones si desea gestionar varias superficies configuradas.

  8. Vaya a Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > views > EdgeDecisioningOffersView.kt en el navegador del proyecto. Busque la función suspend fun fetchPropositionsForSurface(surface: Surface): DecisioningResult = withContext(Dispatchers.IO) e inspeccione el código de esta función. La parte más importante de esta función es la llamada a la API Messaging.getPropositionsForSurfaces(listOf(surface)) { propositionsMap -> propositionsMap[surface]?.let { propositions ->, que

    • recupera las propuestas del perfil actual en función de la superficie,
    • recupera la oferta de la propuesta,
    • desajusta el contenido de la oferta (mediante la función parseCodeBasedContent) para que se pueda mostrar correctamente en la aplicación.
  9. Aún en EdgeDecisioningOffersView.kt, vea cómo funcionan en LaunchedEffect:

    1. Las propuestas se han actualizado mediante MobileSDK.shared.updatePropositionsForSurfaces(listOf(surface)).
    2. Se implementa un breve retraso para que la red de Edge responda y almacene en caché las propuestas.
    3. Las propuestas en caché se recuperan usando fetchPropositionsForSurface(surface).

Validación mediante la aplicación

iOS
  1. Vuelva a compilar y ejecute la aplicación en el simulador o en un dispositivo físico desde Xcode con Play .

  2. Vaya a la pestaña Personalization.

  3. Desplácese hasta la parte superior y verá dos ofertas aleatorias mostradas de la colección que ha definido en el mosaico Surface Offers Location.

    {width="300"}

    Las ofertas son aleatorias, ya que ha dado a todas las ofertas la misma prioridad y la clasificación de las ofertas se basa en la prioridad.

Android
  1. Vuelva a compilar y ejecute la aplicación en el simulador o en un dispositivo físico desde Android Studio con Play .

  2. Vaya a la pestaña Personalization.

  3. Desplácese hasta la parte superior y verá dos ofertas aleatorias en el cuadro superior de la colección que ha definido en el mosaico Surface Offers Location.

    {width="300"}

    Las ofertas son aleatorias, ya que ha dado a todas las ofertas la misma prioridad y la clasificación de las ofertas se basa en la prioridad.

Validación de la implementación en Assurance

Para validar la implementación de ofertas en Assurance:

  1. Revise la sección instrucciones de configuración para conectar el simulador o dispositivo a Assurance.

  2. Seleccione Eventos en el carril izquierdo.

  3. Busque eventos de respuesta de propuestas de mensajes en la lista de eventos.

  4. En el panel derecho, despliegue este evento: ACPExtensionEventData > propositions > 0 > items > 0 > data > content > offers. Verá dos ofertas 0 y 1, cada una con los datos esperados.

    Decisioning ofrece garantía

Próximos pasos

Ahora debería tener todas las herramientas para empezar a añadir más funcionalidades a su implementación de Journey Optimizer - Decisioning. Por ejemplo:

  • aplique parámetros diferentes a las ofertas (por ejemplo, prioridad o límite)
  • recopile atributos de perfil en la aplicación (consulte Perfil) y utilícelos para generar audiencias. A continuación, utilice estas audiencias como parte de las reglas de idoneidad en la toma de decisiones.
  • combinar varias superficies.
SUCCESS
Ha habilitado la aplicación para que muestre las ofertas con Decisioning.
Gracias por dedicar su tiempo a conocer Adobe Experience Platform Mobile SDK. Si tiene preguntas, desea compartir comentarios generales o tiene sugerencias sobre contenido futuro, compártalas en esta publicación de debate de la comunidad de Experience League.

Siguiente: Realizar pruebas A/B

recommendation-more-help
platform-learn-help-tutorial-mobile-sdk