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.
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.
Requisitos previos
- La aplicación se ha creado y ejecutado correctamente con los SDK instalados y configurados.
- Configure la aplicación para Adobe Experience Platform.
- Acceso a Journey Optimizer: toma de decisiones con los permisos adecuados para administrar ofertas y decisiones.
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
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.
-
En la IU de recopilación de datos, seleccione Datastreams y su secuencia de datos, por ejemplo Luma Mobile App.
-
Seleccione
para Experience Platform y seleccione Editar en el menú contextual. -
En la pantalla de Datastreams >
> Adobe Experience Platform, compruebe que Offer Decisioning, Edge Segmentation y Adobe Journey Optimizer estén habilitados.- Si planea seguir solo esta lección de Decisioning y no la lección de Administración de decisiones, no necesita habilitar Offer Decisioning.
- Si sigues la lección de Target, selecciona Destinos de Personalization también. Consulte Configuración de Adobe Experience Platform para obtener más información.
-
Para guardar la configuración de su secuencia de datos, seleccione Guardar .
{modal="regular"}
Definición del esquema
-
Vaya a la interfaz de recopilación de datos y seleccione Esquemas en el carril izquierdo.
-
Seleccione Examinar en la barra superior.
-
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.
-
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).
{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.
-
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.
- Vaya a Etiquetas > Extensiones > Catálogo.
- Abra su propiedad, por ejemplo Luma Mobile App Tutorial.
- Seleccione Catálogo.
- Busque la extensión Adobe Journey Optimizer.
- 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.
-
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.
-
Vaya a Luma > Luma > AppDelegate en el navegador del proyecto Xcode.
-
Asegúrese de que
AEPMessagingforme parte de su lista de importaciones.import AEPMessaging -
Asegúrese de que
Messaging.selfforme 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 ]
-
En Android Studio, asegúrese de que aepsdk-messaging-android forme parte de las dependencias de build.gradle.kts en Android
> Gradle Scripts. Ver Gradle. -
Vaya a Android
app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication en el navegador de proyectos de Android Studio. -
Asegúrese de que
com.adobe.marketing.mobile.Messagingforme parte de su lista de importaciones.import import com.adobe.marketing.mobile.Messaging -
Asegúrese de que
Messaging.EXTENSIONforme 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.
-
En la interfaz de usuario de Journey Optimizer, seleccione
Canales de Administración en el carril izquierdo. -
Seleccione Configuraciones de canal de Configuración general.
-
Seleccione Crear configuración de canal.
-
En detalles de configuración del canal:
-
Escriba un Nombre. Por ejemplo:
LumaMobileAppCodeBased. -
Escriba una descripción. Por ejemplo:
Code-based experience for Luma app used in Mobile SDK tutorial. -
Seleccione Experiencia basada en código del menú desplegable Seleccionar canal.
-
Seleccione una o más acciones de marketing de Seleccione una o varias acciones de marketing. Por ejemplo Personalization in situ.
-
Seleccione las plataformas para las que desea configurar la experiencia basada en código. Para este tutorial, selecciona iOS, Android o ambos.
-
Para iOS:
- Escriba el ID de aplicación seleccionado. Por ejemplo, el identificador de su aplicación:
com.adobe.luma.tutorial.swiftui. - Escriba o seleccione una ubicación para ubicación o ruta de acceso dentro de la aplicación. Por ejemplo:
offersLocation. - Escriba una URL de vista previa. Por ejemplo:
lumatutorialswiftui://.
- Escriba el ID de aplicación seleccionado. Por ejemplo, el identificador de su aplicación:
-
Para Android:
- Escriba el ID de aplicación seleccionado. Por ejemplo, el identificador de su aplicación:
com.adobe.luma.tutorial.android. - Escriba o seleccione una ubicación para ubicación o ruta de acceso dentro de la aplicación. Por ejemplo:
offersLocation. - Escriba una URL de vista previa. Por ejemplo:
lumatutorialandroid://default.
- Escriba el ID de aplicación seleccionado. Por ejemplo, el identificador de su aplicación:
-
Contenido
- Seleccione JSON para el Formato.
-
-
-
Seleccione Enviar para enviar su experiencia basada en código.
Crear ofertas
En esta sección creará ofertas para la toma de decisiones.
-
En la interfaz de usuario de Journey Optimizer, seleccione
Catálogos de Decisioning en el carril izquierdo. -
Seleccione Ofertas de catálogos para ver la lista de Ofertas.
-
Seleccione Crear elemento.
-
En el paso ➊ Atributos de creación de una oferta (elemento de decisión):
{modal="regular"}
-
En la sección Atributos estándar:
- Escriba un nombre de oferta. Por ejemplo:
Luma - Desiree Fitness Tee. - Escriba una fecha de inicio o seleccione una con
. Por ejemplo:7/1/2026, 12:00 AM. - Escriba una fecha de finalización o seleccione una con
. Por ejemplo:12/31/2026, 12:00 AM. - Escriba una prioridad. Por ejemplo:
10. - Seleccione una o más etiquetas apropiadas del menú desplegable Etiquetas. Por ejemplo: Luma - Aplicación móvil.
- Escriba un nombre de oferta. Por ejemplo:
-
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.
-
En el contenedor Offer, dentro del subcontenedor Media Assets:
- Seleccione Agregar desde la dirección URL para Imagen e introduzca un valor apropiado para EIntroducir dirección URL de origen. Por ejemplo:
https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg. - 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.
- Seleccione Agregar desde la dirección URL para Imagen e introduzca un valor apropiado para EIntroducir dirección URL de origen. Por ejemplo:
-
En el contenedor Offer, dentro del subcontenedor Text:
- 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. - Escriba un valor para Title. Por ejemplo:
Desiree Fitness Tee.
- Escriba un valor para Descripción completa. Por ejemplo:
-
-
Seleccione Siguiente.
-
-
En el paso ➋ Elegibilidad de la creación de una oferta (elemento de decisión):
{modal="regular"}
- En Elegibilidad, asegúrese de que Todos los visitantes esté seleccionado.
- No es necesario crear un límite en la sección Límite.
- Seleccione Siguiente.
-
En el paso ➌ revisar de la creación de una oferta (elemento de decisión):
{modal="regular"}
- Revise la oferta. Puede usar
para cambiar atributos estándar, atributos del cliente o restricciones de perfil. - Seleccione Guardar.
- Revise la oferta. Puede usar
-
-
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 BottleAffirm Water BottleYou'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.jpgLuma - Aero Daily Fitness TeeAero Daily Fitness TeeNeed 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.jpgLuma - Adrienne Trek JacketAdrienne Trek JacketYou'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.jpgLuma - Juno JacketJuno JacketOn 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.jpgTodos 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:
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.
-
En la interfaz de usuario de Journey Optimizer, seleccione
Catálogos de Decisioning en el carril izquierdo. -
Seleccione Colecciones de catálogos para ver la lista de Colecciones.
-
Seleccione Crear colección.
-
En la sección Detalles:
- Escriba un Nombre para la colección. Por ejemplo:
Luma - Mobile App Collection. - Escriba una descripción para la colección. Por ejemplo:
Collection of Luma mobile app offers.
- Escriba un Nombre para la colección. Por ejemplo:
-
En la sección Reglas de colección, debajo de NÚMERO DE ELEMENTOS:
-
Seleccione Haga clic para crear un elemento de decisión…
-
Use Seleccionar atributo para seleccionar un atributo.
- En el diálogo Seleccionar un atributo, seleccione un atributo de decisión. Por ejemplo nombre de oferta.
- Seleccione Guardar.
-
Utilice el menú desplegable Igual a para seleccionar una condición. Por ejemplo Comienza con.
-
En el campo de texto, introduzca el valor de la condición. Por ejemplo:
Luma -. Este valor seleccionará todas las ofertas cuyo nombre comience porLuma -para que formen parte de la colección. Puede crear cualquier tipo de regla y también combinar reglas, usando Agregar regla.
-
-
Seleccione Crear para crear la 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.
-
En la interfaz de usuario de Journey Optimizer, seleccione
Configuración de estrategia de Toma de decisiones en el carril izquierdo. -
Seleccione Estrategias de selección.
-
Seleccione Crear estrategia de selección. En el diálogo Crear estrategia de selección:
-
Escriba un nombre de estrategia de selección. Por ejemplo:
Luma - Mobile App Selection Strategy. -
Use Seleccionar colección para seleccionar la colección para la estrategia de selección.
- En el cuadro de diálogo Colección, seleccione una colección. Por ejemplo: Luma - Colección de aplicaciones móviles.
- Seleccione Guardar.
-
Asegúrese de que Todos los visitantes se ha seleccionado para Elegibilidad.
-
Asegúrese de que Prioridad de ofertas esté seleccionada para Método de clasificación.
-
-
Seleccione Crear para crear la 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.
-
En la interfaz de usuario de Journey Optimizer, seleccione
Campaigns de Recorrido management en el carril izquierdo. -
Seleccione Crear campaña.
-
En el cuadro de diálogo Crear su campaña, seleccione Programado - Marketing como el tipo de campaña que desea crear.
-
Seleccione Confirmar.
-
En la pestaña Properties de la pantalla **Campaign - *timestamp ***:
- Escriba un Nombre para la campaña. Por ejemplo:
Luma - Mobile App Offers. - Opcionalmente, escriba Descripción.
- Escriba un Nombre para la campaña. Por ejemplo:
-
Seleccione Acciones.
-
En la sección Acciones:
- Seleccione
Agregar acción. En el menú desplegable, seleccione Experiencia basada en código. - 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.
- Seleccione
-
No cambien las demás configuraciones de Optimization, Languages y Conflict management.
-
-
Seleccione Contenido.
-
En la pantalla de la experiencia basada en código, seleccione
Editar código. -
En la experiencia basada en código | Configuración del canal: pantalla de LumaMobileAppCodeBased:
-
En el editor, escriba el siguiente JSON:
code language-json { "version": "1.0", "offers": [ ] } -
Seleccione
directiva de decisión en el segundo carril izquierdo.-
Seleccione
Agregar directiva de decisión. -
En el asistente de diálogo Crear directiva de decisión, en el paso ➊ Detalles:
- Escriba un Nombre para la directiva de decisión. Por ejemplo:
Luma - Mobile App Decision Policy. - Seleccione o ingrese
2para el Número de elementos. Esta entrada garantiza que se devuelvan dos ofertas. - Seleccione Siguiente.
- Escriba un Nombre para la directiva de decisión. Por ejemplo:
-
En el asistente de diálogo Crear directiva de decisión, en el paso ➋ Estrategias:
-
En la secuencia de estrategia, seleccione
Agregar para agregar una secuencia de estrategia. -
En el menú contextual, seleccione Estrategia de selección.
- 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.
- Seleccione Guardar.
-
Seleccione Siguiente.
-
-
En el asistente del cuadro de diálogo Crear directiva de decisión, en el paso ➌ Revisar, revise la directiva de decisión.
- Seleccione Crear para crear la directiva de decisión.
-
-
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.
-
En el editor JSON, agregue una nueva línea entre
[y]. -
Desde el carril Luma - Directiva de decisión de aplicación móvil:
- Seleccione
Insertar directiva para insertar la directiva de decisión como JSON en el editor. - Coloque el cursor en el editor en una línea antes de cerrar
{{/each}}. - 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. - 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. - 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.
Asegúrese de que los elementos JSON
title,textyimageestén envueltos como un objeto mediante{ }. Y que inserta un(a),después de ese objeto y justo antes de{{/each}}en el JSON. - Seleccione
-
-
Use
Validate para validar el JSON. -
Seleccione Guardar y cerrar.
-
-
-
Seleccione Revisar para activar.
-
La pantalla Revisar para activar (Luma: ofertas de aplicaciones móviles) proporciona información general sobre la campaña.
-
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.
-
En la lista de campañas, debería ver la campaña cambiando el estado de
Activando a Procesando a 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.
-
En Xcode, asegúrese de que AEP Messaging se agrega a la lista de paquetes en Dependencias del paquete. Consulte Administrador De Paquetes Swift.
-
Vaya a Luma > Luma > AppDelegate en el navegador del proyecto Xcode.
-
Asegúrese de que
AEPMessagingforme parte de su lista de importaciones.code language-swift import AEPMessaging -
Asegúrese de que
Messaging.selfforme 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 ] -
Vaya a Luma > Luma > Model > Data > general en el navegador del proyecto Xcode. Asegúrese de que
showDecisioningestá establecido entruey queshowPersonalizationestá establecido enfalseen la secciónconfig.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.
-
Vaya a Luma > Luma > Model > Data > general en el navegador del proyecto Xcode. Asegúrese de que haya configurada una sección
decisioningcon un elementosurfaceque 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" }, -
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.
-
Vaya a Luma > Luma > Views > Personalization > EdgeDecisioningOffersView en el navegador del proyecto Xcode. Busque la función
func fetchPropositions() asynce inspeccione el código de esta función. La parte más importante de esta función es la llamada a la APIMessaging.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.
-
Todavía en EdgeDecisioningOffersView, vea cómo en .
taskmodificador:- Las propuestas se han actualizado mediante
self.updatePropositionsForSurface(). - Se implementa una breve espera para que la red de Edge responda y almacene en caché las propuestas.
- Las propuestas en caché se recuperan usando
await self.fetchPropositions.
- Las propuestas se han actualizado mediante
-
En Android Studio, asegúrese de que aepsdk-optimize-android forme parte de las dependencias en build.gradle.kts (Módulo :app) en Android
> Gradle Scripts. Ver Gradle. -
Vaya a Android
> app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity en el navegador de Android Studio. -
Asegúrese de que
Optimizeforme parte de su lista de importaciones.code language-kotlin import com.adobe.marketing.mobile.optimize.Optimize -
Asegúrese de que
Optimize.EXTENSIONforme 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 ) -
Vaya a Android
> app > assets > data > general.json en el navegador del proyecto. Asegúrese de queshowDecisioningestá establecido entruey queshowPersonalizationestá establecido enfalseen la secciónconfig.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.
-
Vaya a Android
> app > assets > data > general.json en el navegador del proyecto. Asegúrese de que haya configurada una seccióndecisioningcon un elementosurfaceque 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" }, -
Vaya a Android
> app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK en el navegador de Android Studio. Busque la funciónsuspend 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.
-
Vaya a Android
> app > kotlin+java > com.adobe.luma.tutorial.android > views > EdgeDecisioningOffersView.kt en el navegador del proyecto. Busque la funciónsuspend 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 APIMessaging.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.
-
Aún en EdgeDecisioningOffersView.kt, vea cómo funcionan en
LaunchedEffect:- Las propuestas se han actualizado mediante
MobileSDK.shared.updatePropositionsForSurfaces(listOf(surface)). - Se implementa un breve retraso para que la red de Edge responda y almacene en caché las propuestas.
- Las propuestas en caché se recuperan usando
fetchPropositionsForSurface(surface).
- Las propuestas se han actualizado mediante
Validación mediante la aplicación
-
Vuelva a compilar y ejecute la aplicación en el simulador o en un dispositivo físico desde Xcode con
. -
Vaya a la pestaña Personalization.
-
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.
-
Vuelva a compilar y ejecute la aplicación en el simulador o en un dispositivo físico desde Android Studio con
. -
Vaya a la pestaña Personalization.
-
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:
-
Revise la sección instrucciones de configuración para conectar el simulador o dispositivo a Assurance.
-
Seleccione Eventos en el carril izquierdo.
-
Busque eventos de respuesta de propuestas de mensajes en la lista de eventos.
-
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.
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.
Siguiente: Realizar pruebas A/B