Creación y envío de notificaciones push
Obtenga información sobre cómo crear notificaciones push para aplicaciones móviles con el SDK móvil de Experience Platform y Journey Optimizer.
Journey Optimizer le permite crear recorridos y enviar mensajes a audiencias de destino. Antes de enviar notificaciones push con Journey Optimizer, debe asegurarse de que las configuraciones e integraciones adecuadas estén implementadas. Para comprender el flujo de datos de notificaciones push en Journey Optimizer, consulte la documentació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 y permisos suficientes como se describe aquí. Además, necesita permisos suficientes para las siguientes funciones de Journey Optimizer.
- Cree una superficie de aplicación.
- Cree un recorrido.
- Cree un mensaje.
- Cree ajustes preestablecidos de mensaje.
-
Cuenta de desarrollador de Apple de pago con acceso suficiente para crear certificados, identificadores y claves.
-
Dispositivo o simulador físico de iOS para realizar pruebas.
Objetivos de aprendizaje
En esta lección, debe
- Registre el ID de la aplicación con el servicio de notificaciones push de Apple (APNS).
- Crear una superficie de aplicación en Journey Optimizer.
- Actualice el esquema para incluir los campos de mensajería push.
- Instale y configure la extensión de etiquetas de Journey Optimizer.
- Actualice la aplicación para registrar la extensión de etiqueta de Journey Optimizer.
- Valide la configuración en Assurance.
- Enviar un mensaje de prueba desde Assurance
- Defina su propio evento, recorrido y experiencia de notificaciones push en Journey Optimizer.
- Envíe su propia notificación push desde la aplicación.
Configuración
Registro del ID de la aplicación con APNS
Los siguientes pasos no son específicos de Adobe Experience Cloud y están diseñados para guiarle a través de la configuración de APNS.
Crear una clave privada
-
En Apple Developer Portal, vaya a Keys.
-
Para crear una clave, seleccione +.
-
Proporcione un Nombre de clave.
-
Seleccione la casilla de verificación Servicio de notificaciones push de Apple (APN).
-
Seleccione Continuar.
-
Revise la configuración y seleccione Registrar.
-
Descargar la clave privada
.p8
. Se utiliza en la configuración de la superficie de la aplicación más adelante en esta lección. -
Tome nota de la ID de clave. Se utiliza en la configuración de la superficie de la aplicación.
-
Tome nota de Id. de equipo. Se utiliza en la configuración de la superficie de la aplicación.
Encontrará documentación adicional aquí.
Añadir una superficie de aplicación en la recopilación de datos
-
En la interfaz de recopilación de datos, seleccione Superficies de la aplicación en el panel izquierdo.
-
Para crear una configuración, seleccione Crear superficie de aplicación.
-
Escriba un Nombre para la configuración, por ejemplo
Luma App Tutorial
. -
En Configuración de aplicaciones móviles, seleccione Apple iOS.
-
Introduzca el ID del paquete de la aplicación móvil en el campo ID de la aplicación (ID del paquete de iOS). Por ejemplo,
com.adobe.luma.tutorial.swiftui
. -
Active la opción Credenciales push para agregar sus credenciales.
-
Arrastre y suelte su archivo
.p8
Clave de autenticación de notificaciones push de Apple. -
Proporcione la ID de clave, una cadena de 10 caracteres asignada durante la creación de la clave de autenticación
p8
. Se encuentra en la ficha Keys de la página Certificados, identificadores y perfiles de las páginas del portal de Apple Developer. Consulte también Crear una clave privada. -
Proporcione el ID de equipo. El identificador de equipo es un valor que se encuentra en la ficha Pertenencia o en la parte superior de la página del portal para desarrolladores de Apple. Consulte también Crear una clave privada.
-
Seleccione Guardar.
Actualizar configuración de secuencia de datos
Para garantizar que los datos enviados desde su aplicación móvil al Edge Network se reenvíen a Journey Optimizer, actualice la configuración de Experience Edge
-
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 del menú contextual.
-
En la pantalla Datastreams > > Adobe Experience Platform:
-
Si aún no está seleccionado, seleccione Conjunto de datos del perfil push de AJO de Conjunto de datos de perfil. Este conjunto de datos de perfil es necesario al usar la llamada API
MobileCore.setPushIdentifier
(consulte Registrar el token de dispositivo para notificaciones push), que garantiza que el identificador único para notificaciones push (también conocido como identificador push) se almacene como parte del perfil del usuario. -
Adobe Journey Optimizer está seleccionado. 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.
-
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.
-
En el diálogo Instalar extensión
-
Seleccione un entorno, por ejemplo Desarrollo.
-
Seleccione el conjunto de datos AJO Push Tracking Experience Event Dataset de la lista Event Dataset.
-
Seleccione Guardar en biblioteca y compilar.
-
Validar la configuración con Assurance
-
Revise la sección instrucciones de configuración para conectar su simulador o dispositivo a Assurance.
-
En la IU de Assurance, seleccione Configurar.
-
Seleccione junto a Push Debug.
-
Seleccione Guardar.
-
Seleccione Push Debug en el panel de navegación izquierdo.
-
Seleccione la ficha Validar configuración.
-
Seleccione su dispositivo de la lista Cliente.
-
Confirme que no está recibiendo ningún error.
-
Seleccione la ficha Enviar inserción de prueba.
-
(opcional) Cambie los detalles predeterminados de Title y Body
-
Seleccione Enviar notificación push de prueba.
-
Compruebe resultados de la prueba.
-
Debería ver la notificación push de prueba en la aplicación.
{width="300"}
Firma
La firma de la aplicación Luma es necesaria para enviar notificaciones push y requiere una cuenta de desarrollador de Apple de pago.
Para actualizar la firma de la aplicación:
-
Vaya a la aplicación en Xcode.
-
Seleccione Luma en el navegador de proyectos.
-
Seleccione el destino Luma.
-
Seleccione la pestaña Firma y capacidades.
-
Configure Firma automática de administración, Equipo y Identificador de paquete, o use sus detalles específicos de aprovisionamiento de desarrollo de Apple.
note important IMPORTANT Asegúrese de utilizar un identificador de paquete unique y reemplace el identificador de paquete com.adobe.luma.tutorial.swiftui
, ya que cada identificador de paquete debe ser único. Normalmente, utiliza un formato DNS inverso para cadenas de ID de paquete, comocom.organization.brand.uniqueidentifier
. La versión final de este tutorial, por ejemplo, utilizacom.adobe.luma.tutorial.swiftui
.{modal="regular"}
Añadir funciones de notificaciones push a la aplicación
-
En Xcode, seleccione Luma de la lista TARGETS, seleccione la pestaña Firma y capacidades, seleccione el botón + capacidad y, a continuación, seleccione Notificaciones push. Esto permite que la aplicación reciba notificaciones push.
-
A continuación, debe añadir una extensión de notificación a la aplicación. Vuelva a la ficha General y seleccione el icono + en la parte inferior de la sección TARGETS.
-
Se le pedirá que seleccione la plantilla para el nuevo destino. Seleccione Extensión del servicio de notificaciones y, a continuación, seleccione Siguiente.
-
En la siguiente ventana, use
NotificationExtension
como nombre de la extensión y haga clic en el botón Finalizar.
Ahora debería tener una extensión de notificación push agregada a la aplicación, similar a la pantalla siguiente.
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 el SDK de mensajería. Si estos pasos no están claros, revise la sección Instalar SDK.
-
En Xcode, asegúrese de que AEP Messaging se añada 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
AEPMessaging
forme parte de su lista de importaciones.import AEPMessaging
-
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 ]
Registrar token de dispositivo para notificaciones push
-
Agregar la API
MobileCore.setPushIdentifier
a la funciónfunc application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
.code language-swift // Send push token to Mobile SDK MobileCore.setPushIdentifier(deviceToken)
Esta función recupera el token del dispositivo exclusivo del dispositivo en el que está instalada la aplicación. A continuación, establece el token para la entrega de notificaciones push mediante la configuración que ha configurado y que depende del servicio de notificaciones push de Apple (APN).
MobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true])
determina si las notificaciones push utilizan una zona protegida de APNS o un servidor de producción para enviar notificaciones push. Al probar la aplicación en el simulador o en un dispositivo, asegúrese de que messaging.useSandbox
está establecido en true
para que reciba notificaciones push. Al implementar su aplicación para producción con el programa Testflight de Apple, asegúrese de establecer messaging.useSandbox
en false
; de lo contrario, la aplicación de producción no podrá recibir notificaciones push.Cree su propia notificación push
Para crear su propia notificación push, debe definir un evento en Journey Optimizer que almacene en déclencheur un recorrido que se encargue de enviar una notificación push.
Actualizar el esquema
Va a definir un nuevo tipo de evento, que aún no está disponible, como parte de la lista de eventos definidos en el esquema. Este tipo de evento se utiliza más adelante al activar las notificaciones push.
-
En la interfaz de usuario de Journey Optimizer, seleccione Esquemas en el carril izquierdo.
-
Seleccione Examinar en la barra de fichas.
-
Seleccione el esquema, por ejemplo Luma Mobile App Event Schema para abrirlo.
-
En el Editor de esquemas:
-
Seleccione el campo eventType.
-
En el panel Propiedades del campo, desplácese hacia abajo para ver la lista de valores posibles para el tipo de evento. Seleccione Agregar fila y agregue
application.test
como VALUE yTest event for push notification
comoDISPLAY NAME
. -
Seleccione Aplicar.
-
Seleccione Guardar.
-
Definición de un evento
Los eventos de Journey Optimizer le permiten almacenar en déclencheur sus recorridos de forma unitaria para enviar mensajes como, por ejemplo, notificaciones push. Consulte Acerca de los eventos para obtener más información.
-
En la interfaz de usuario de Journey Optimizer, seleccione Configuraciones en el carril izquierdo.
-
En la pantalla Tablero, seleccione el botón Administrar en el mosaico Eventos.
-
En la pantalla Eventos, seleccione Crear evento.
-
En el panel Editar evento de evento1:
-
Escriba
LumaTestEvent
como Nombre del evento. -
Proporcione una descripción, por ejemplo
Test event to trigger push notifications in Luma app
. -
Seleccione el esquema del evento de experiencia de la aplicación móvil que creó anteriormente en Crear un esquema XDM desde la lista Esquema, por ejemplo Luma Mobile App Event Schema v.1.
-
Seleccione junto a la lista Campos.
En el cuadro de diálogo Campos, asegúrese de que los siguientes campos estén seleccionados (sobre los campos predeterminados que siempre están seleccionados (_id, id y timestamp)). Con la lista desplegable, puede alternar entre Seleccionado, Todo y Principal, o usar el campo .
- Aplicación identificada (id.),
- Tipo de evento (eventType),
- Principal (principal).
A continuación, seleccione Aceptar.
-
Seleccione junto al campo Condición de ID de evento.
-
En el cuadro de diálogo Agregar una condición de id. de evento, arrastre y suelte Tipo de evento (eventType) en Arrastrar y soltar un elemento aquí.
-
En la ventana emergente, desplácese hasta la parte inferior y seleccione application.test (que es el tipo de evento que agregó anteriormente a la lista de tipos de eventos como parte de Actualizar el esquema). A continuación, desplácese hacia arriba y seleccione Aceptar.
-
Seleccione Aceptar para guardar la condición.
-
-
Seleccione ECID (ECID) de la lista Espacio de nombres. Automáticamente, el campo Identificador de perfil se rellena con El identificador del primer elemento del ECID de clave para el identityMap del mapa.
-
Seleccione Guardar.
-
Acaba de crear una configuración de evento basada en el esquema de eventos de experiencia de la aplicación móvil creado anteriormente como parte de este tutorial. Esta configuración de evento filtrará los eventos de experiencia entrantes usando su tipo de evento específico (application.test
), de modo que solo los eventos con ese tipo específico, iniciados desde su aplicación móvil, almacenarán en déclencheur el recorrido que genere en el siguiente paso. En una situación real, es posible que desee enviar notificaciones push desde un servicio externo; sin embargo, se aplican los mismos conceptos: desde la aplicación externa, envíe un evento de experiencia al Experience Platform que tenga campos específicos que pueda utilizar para aplicar condiciones antes de que estos eventos entren en déclencheur con un recorrido.
Creación del recorrido
El siguiente paso es crear el recorrido que almacene en déclencheur el envío de la notificación push al recibir el evento correspondiente.
-
En la interfaz de usuario de Journey Optimizer, seleccione Recorridos en el carril izquierdo.
-
Seleccione Crear Recorrido.
-
En el panel Propiedades del Recorrido:
-
Escriba un Nombre para el recorrido, por ejemplo
Luma - Test Push Notification Journey
. -
Escriba una descripción para el recorrido, por ejemplo
Journey for test push notifications in Luma mobile app
. -
Asegúrese de seleccionar Permitir la reentrada y establezca Período de espera de reentrada en 30 Segundos.
-
Seleccione Aceptar.
-
-
En el lienzo del recorrido, en EVENTS, arrastra y suelta tu LumaTestEvent en el lienzo donde se muestra Selecciona un evento de entrada o una actividad de lectura de audiencia.
- En el panel Eventos: LumaTestEvent, escriba una Etiqueta, por ejemplo
Luma Test Event
.
- En el panel Eventos: LumaTestEvent, escriba una Etiqueta, por ejemplo
-
En el menú desplegable ACCIONES, arrastra y suelta Insertar en el que aparece a la derecha de tu actividad LumaTestEvent. En el panel Acciones: Push:
-
Proporcione una Etiqueta, por ejemplo
Luma Test Push Notification
, proporcione una Descripción, por ejemploTest push notification for Luma mobile app
, seleccione Transaccional de la lista Categoría y seleccione Luma de la Superficie de inserción. -
Seleccione Editar contenido para comenzar a editar la notificación push real.
En el editor de notificaciones push:
-
Escriba un Título, por ejemplo
Luma Test Push Notification
y un Cuerpo, por ejemploTest push notification for Luma mobile app
. -
Opcionalmente, puede escribir un vínculo a una imagen (.png o .jpg) en Agregar medios. Si lo hace, la imagen formará parte de la notificación push.
-
Para guardar y salir del editor, selecciona .
-
-
Para guardar y finalizar la definición de la notificación push, seleccione Aceptar.
-
-
El recorrido debe ser similar al siguiente. Seleccione Publish para publicar y activar su recorrido.
Déclencheur de la notificación push
Tiene todos los ingredientes para enviar una notificación push. Lo que queda es cómo almacenar en déclencheur esta notificación push. En esencia, es lo mismo que ha visto antes: simplemente envíe un evento de experiencia con la carga útil adecuada (como en Eventos).
Esta vez, el evento de experiencia que está a punto de enviar no se construye construyendo un diccionario XDM simple. Va a usar un(a) struct
que representa una carga de notificación push. La definición de un tipo de datos dedicado es una forma alternativa de implementar la construcción de cargas útiles de evento de experiencia en la aplicación.
-
Vaya a Luma > Luma > Modelo > XDM > TestPushPayload en el navegador del proyecto Xcode e inspeccione el código.
code language-swift import Foundation // MARK: - TestPush struct TestPushPayload: Codable { let application: Application let eventType: String } // MARK: - Application struct Application: Codable { let id: String }
El código es una representación de la siguiente carga útil simple que va a enviar al déclencheur de su recorrido de notificaciones push de prueba
code language-json { "eventType": string, "application" : [ "id": string ] }
-
Vaya a Luma > Luma > Utils > MobileSDK en el navegador del proyecto Xcode y agregue el siguiente código a
func sendTestPushEvent(applicationId: String, eventType: String)
:code language-swift // Create payload and send experience event Task { let testPushPayload = TestPushPayload( application: Application( id: applicationId ), eventType: eventType ) // send the final experience event await sendExperienceEvent( xdm: testPushPayload.asDictionary() ?? [:] ) }
Este código crea una instancia de
testPushPayload
utilizando los parámetros proporcionados a la función (applicationId
yeventType
) y, a continuación, llama asendExperienceEvent
mientras convierte la carga útil en un diccionario. Este código, esta vez, también tiene en cuenta los aspectos asíncronos de llamar al SDK de Adobe Experience Platform mediante el modelo de concurrencia de Swift basado enawait
yasync
. -
Vaya a Luma > Luma > Views > General > ConfigView en el navegador del proyecto Xcode. En la definición del botón de notificación push, añada el siguiente código para enviar la carga útil del evento de experiencia de notificación push de prueba al déclencheur del recorrido cada vez que se pulse ese botón.
code language-swift // Setting parameters and calling function to send push notification Task { let eventType = testPushEventType let applicationId = Bundle.main.bundleIdentifier ?? "No bundle id found" await MobileSDK.shared.sendTestPushEvent(applicationId: applicationId, eventType: eventType) }
Validar con 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 ficha Configuración.
-
Pulse Notificación push. Verá aparecer la notificación push en la aplicación.
{width="300"}
Pasos siguientes
Ahora debe tener todas las herramientas para gestionar las notificaciones push en la aplicación. Por ejemplo, puede crear un recorrido en Journey Optimizer que envíe una notificación push de bienvenida cuando un usuario de la aplicación inicie sesión. O una notificación push de confirmación cuando un usuario compra un producto en la aplicación. O bien, introduce la geovalla de una ubicación (como verá en la lección Places).
Siguiente: Crear y enviar mensajes en la aplicación