Creare e inviare notifiche push
Scopri come creare notifiche push per le app mobili con Experience Platform Mobile SDK e Journey Optimizer.
Journey Optimizer consente di creare percorsi e inviare messaggi a tipi di pubblico mirati. Prima di inviare le notifiche push con Journey Optimizer, devi verificare che siano presenti le configurazioni e le integrazioni corrette. Per informazioni sul flusso di dati delle notifiche push in Journey Optimizer, consulta la documentazione.
Prerequisiti
-
L'app con gli SDK installati e configurati è stata creata ed eseguita correttamente.
-
Configura l’app per Adobe Experience Platform.
-
Accedi a Journey Optimizer e alle autorizzazioni sufficienti come descritto qui. È inoltre necessaria un'autorizzazione sufficiente per le seguenti funzioni di Journey Optimizer.
- Crea una superficie app.
- Creazione di un percorso.
- Crea un messaggio.
- Creare predefiniti per messaggi.
-
Ha pagato l'account sviluppatore di Apple con accesso sufficiente per creare certificati, identificatori e chiavi.
-
Dispositivo fisico iOS o simulatore per test.
Obiettivi di apprendimento
In questa lezione, potrai
- Registra l’ID app con il servizio di notifica push di Apple (APN).
- Crea una superficie app in Journey Optimizer.
- Aggiorna lo schema per includere i campi di messaggistica push.
- Installa e configura l’estensione tag Journey Optimizer.
- Aggiorna l’app per registrare l’estensione tag Journey Optimizer.
- Convalidare l'impostazione in Assurance.
- Invia un messaggio di prova da Assurance
- Definisci in Journey Optimizer l’evento, il percorso e l’esperienza della notifica push.
- Invia una notifica push personalizzata dall’app.
Configurazione
Registra ID app con APN
I passaggi seguenti non sono specifici per Adobe Experience Cloud e sono progettati per guidarti nella configurazione di APN.
Creare una chiave privata
-
Nel portale per sviluppatori Apple, passa a Chiavi.
-
Per creare una chiave, selezionare +.
-
Fornisci un nome chiave.
-
Selezionare la casella di controllo Servizio notifiche push Apple (APNs).
-
Seleziona Continua.
-
Rivedi la configurazione e seleziona Registra.
-
Scarica la chiave privata
.p8
. Viene utilizzato nella configurazione della superficie dell’app più avanti in questa lezione. -
Prendere nota dell'ID chiave. Viene utilizzato nella configurazione della superficie dell’app.
-
Prendi nota dell'ID team. Viene utilizzato nella configurazione della superficie dell’app.
Ulteriori informazioni sono disponibili qui.
Aggiungere una superficie app in Raccolta dati
-
Dall'interfaccia Data Collection, seleziona App Surfaces nel pannello a sinistra.
-
Per creare una configurazione, seleziona Crea superficie app.
-
Immetti un Nome per la configurazione, ad esempio
Luma App Tutorial
. -
Da Configurazione applicazione mobile, selezionare Apple iOS.
-
Immetti l'ID del bundle per app mobile nel campo ID app (ID bundle iOS). Ad esempio,
com.adobe.luma.tutorial.swiftui
. -
Attiva l'interruttore Push Credentials per aggiungere le tue credenziali.
-
Trascina e rilascia il file
.p8
Chiave di autenticazione notifica push Apple. -
Specificare l'ID chiave, una stringa di 10 caratteri assegnata durante la creazione della chiave di autenticazione
p8
. È disponibile nella scheda Chiavi nella pagina Certificati, identificatori e profili delle pagine del portale Apple Developer. Vedi anche Creare una chiave privata. -
Fornisci ID team. L'ID team è un valore che si trova nella scheda Appartenenza o nella parte superiore della pagina del portale Apple Developer. Vedi anche Creare una chiave privata.
-
Seleziona Salva.
Aggiorna configurazione dello stream di dati
Per fare in modo che i dati inviati dalla tua app mobile all’Edge Network vengano inoltrati a Journey Optimizer, aggiorna la configurazione di Experience Edge.
-
Nell'interfaccia utente di Data Collection, seleziona Datastreams e quindi il tuo datastream, ad esempio Luma Mobile App.
-
Seleziona per Experience Platform e seleziona Modifica dal menu di scelta rapida.
-
Nella schermata Datastreams > > Adobe Experience Platform:
-
Se non è già selezionato, seleziona Set di dati profilo push AJO da Set di dati profilo. Questo set di dati di profilo è necessario quando si utilizza la chiamata API
MobileCore.setPushIdentifier
(vedi Registrare il token del dispositivo per le notifiche push) che garantisce che l'identificatore univoco per le notifiche push (ovvero l'identificatore push) sia memorizzato come parte del profilo dell'utente. -
Adobe Journey Optimizer è selezionato. Per ulteriori informazioni, vedere Impostazioni di Adobe Experience Platform.
-
Per salvare la configurazione dello stream di dati, seleziona Salva.
-
Installare l’estensione dei tag di Journey Optimizer
Affinché l'app funzioni con Journey Optimizer, devi aggiornare la proprietà del tag.
-
Passa a Tag > Estensioni > Catalogo,
-
Apri la proprietà, ad esempio Luma Mobile App Tutorial.
-
Seleziona Catalogo.
-
Cerca l'estensione Adobe Journey Optimizer.
-
Installa l’estensione.
-
Nella finestra di dialogo Installa estensione
-
Seleziona un ambiente, ad esempio Sviluppo.
-
Seleziona il set di dati dell'evento di tracciamento push di AJO dall'elenco Set di dati evento.
-
Selezionare Salva nella libreria e genera.
-
Convalida impostazione con Assurance
-
Consulta la sezione istruzioni di installazione per collegare il simulatore o il dispositivo ad Assurance.
-
Nell'interfaccia utente Assurance, selezionare Configura.
-
Seleziona accanto a Debug push.
-
Seleziona Salva.
-
Seleziona Debug push dal menu di navigazione a sinistra.
-
Selezionare la scheda Convalida installazione.
-
Selezionare il dispositivo dall'elenco Client.
-
Verifica che non siano presenti errori.
-
Selezionare la scheda Invia push test.
-
(facoltativo) Modificare i dettagli predefiniti per Titolo e Corpo
-
Seleziona Invia notifica push di prova.
-
Controlla i risultati del test.
-
Dovresti visualizzare nell’app la notifica push di prova.
{width="300"}
Firma
La firma dell'app Luma è necessaria per inviare notifiche push e richiede un account sviluppatore Apple a pagamento.
Per aggiornare la firma per l'app:
-
Vai all’app in Xcode.
-
Selezionare Luma nel Navigatore progetti.
-
Selezionare la destinazione Luma.
-
Selezionare la scheda Firma e funzionalità.
-
Configura Firma gestione automatica, Team e Identificatore bundle oppure utilizza i dettagli specifici del provisioning di sviluppo Apple.
note important IMPORTANT Assicurati di utilizzare un identificatore bundle univoco e sostituisci l'identificatore bundle com.adobe.luma.tutorial.swiftui
, in quanto ogni identificatore bundle deve essere univoco. In genere si utilizza un formato DNS inverso per le stringhe ID bundle, comecom.organization.brand.uniqueidentifier
. La versione finale di questa esercitazione, ad esempio, utilizzacom.adobe.luma.tutorial.swiftui
.{modal="regular"}
Aggiungere funzionalità di notifica push all’app
-
In Xcode, seleziona Luma dall'elenco TARGET, seleziona la scheda Firma e funzionalità, seleziona il pulsante + funzionalità, quindi seleziona Notifiche push. In questo modo l’app può ricevere notifiche push.
-
Quindi, devi aggiungere un’estensione di notifica all’app. Torna alla scheda General e seleziona l'icona + nella parte inferiore della sezione TARGET.
-
Viene richiesto di selezionare il modello per la nuova destinazione. Seleziona Estensione del servizio di notifica, quindi seleziona Successivo.
-
Nella finestra successiva, utilizza
NotificationExtension
come nome dell'estensione e fai clic sul pulsante Fine.
Ora dovresti avere aggiunto all’app un’estensione per le notifiche push, simile alla schermata seguente.
Implementare Journey Optimizer nell’app
Come descritto nelle lezioni precedenti, l’installazione di un’estensione tag per dispositivi mobili fornisce solo la configurazione. Ora devi installare e registrare l’SDK di messaggistica. Se questi passaggi non sono chiari, controlla la sezione Installare gli SDK.
-
In Xcode, accertati che Messaggistica AEP sia aggiunto all'elenco dei pacchetti nelle dipendenze dei pacchetti. Consulta Gestione pacchetti Swift.
-
Passa a Luma > Luma > AppDelegate nel Navigatore progetti Xcode.
-
Assicurarsi che
AEPMessaging
faccia parte dell'elenco delle importazioni.import AEPMessaging
-
Assicurarsi che
Messaging.self
faccia parte dell'array di estensioni che si sta 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 ]
Registra token dispositivo per notifiche push
-
Aggiungere l'API
MobileCore.setPushIdentifier
alla funzionefunc application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
.code language-swift // Send push token to Mobile SDK MobileCore.setPushIdentifier(deviceToken)
Questa funzione recupera il token del dispositivo univoco per il dispositivo su cui è installata l’app. Quindi imposta il token per la consegna delle notifiche push utilizzando la configurazione impostata e che si basa sul servizio APN (Push Notification Service) di Apple.
MobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true])
determina se per l'invio di notifiche push viene utilizzata una sandbox APNs o un server di produzione. Quando esegui il test dell'app nel simulatore o su un dispositivo, assicurati che messaging.useSandbox
sia impostato su true
in modo da ricevere le notifiche push. Quando distribuisci l'app per la produzione per testare l'utilizzo di Testflight di Apple, assicurati di impostare messaging.useSandbox
su false
. In caso contrario, l'app di produzione non sarà in grado di ricevere notifiche push.Creare una notifica push personalizzata
Per creare una notifica push personalizzata, devi definire un evento in Journey Optimizer che attivi un percorso che si occupi di inviare una notifica push.
Aggiornare lo schema
Stai per definire un nuovo tipo di evento, non ancora disponibile, come parte dell’elenco degli eventi definiti nello schema. Utilizza questo tipo di evento in un secondo momento quando attivi le notifiche push.
-
Nell'interfaccia utente di Journey Optimizer, seleziona Schemi dalla barra a sinistra.
-
Seleziona Sfoglia nella barra delle schede.
-
Selezionare lo schema, ad esempio Luma Mobile App Event Schema per aprirlo.
-
Nell’editor schema:
-
Selezionare il campo eventType.
-
Nel riquadro Proprietà campo, scorri verso il basso per visualizzare l'elenco dei valori possibili per il tipo di evento. Selezionare Aggiungi riga e aggiungere
application.test
come VALORE eTest event for push notification
comeDISPLAY NAME
. -
Seleziona Applica.
-
Seleziona Salva.
-
Definire un evento
Gli eventi in Journey Optimizer ti consentono di attivare i percorsi in modo unitario per inviare messaggi, ad esempio notifiche push. Per ulteriori informazioni, vedere Informazioni sugli eventi.
-
Nell'interfaccia utente di Journey Optimizer, seleziona Configurazioni dalla barra a sinistra.
-
Nella schermata Dashboard, seleziona il pulsante Gestisci nel riquadro Eventi.
-
Nella schermata Eventi, seleziona Crea evento.
-
Nel riquadro Modifica evento evento1:
-
Immetti
LumaTestEvent
come Nome dell'evento. -
Fornisci una Descrizione, ad esempio
Test event to trigger push notifications in Luma app
. -
Seleziona lo schema evento esperienza app mobile creato in precedenza in Crea uno schema XDM dall'elenco Schema, ad esempio Luma Mobile App Event Schema v.1.
-
Seleziona accanto all'elenco Campi.
Nella finestra di dialogo Campi, accertati che siano selezionati i seguenti campi (oltre ai campi predefiniti sempre selezionati (_id, id e timestamp). Utilizzando l'elenco a discesa, puoi scegliere tra Selezionati, Tutti e Primari oppure utilizzare il campo .
- Applicazione identificata (ID),
- Tipo evento (eventType),
- Principale (primario).
Quindi selezionare Ok.
-
Seleziona accanto al campo Condizione ID evento.
-
Nella finestra di dialogo Aggiungi una condizione ID evento, trascina Tipo evento (eventType) su Trascina e rilascia qui un elemento.
-
Nel popover, scorri verso il basso e seleziona application.test (che è il tipo di evento aggiunto in precedenza all'elenco dei tipi di evento come parte di Aggiorna lo schema). Quindi scorri verso l'alto e seleziona Ok.
-
Selezionare Ok per salvare la condizione.
-
-
Selezionare ECID (ECID) dall'elenco Spazio dei nomi. Il campo Identificatore profilo viene compilato automaticamente con ID del primo elemento dell'ECID chiave per la mappa identityMap.
-
Seleziona Salva.
-
Hai appena creato una configurazione dell’evento basata sullo schema degli eventi di esperienza per app mobile creato in precedenza come parte di questa esercitazione. Questa configurazione di evento filtrerà gli eventi di esperienza in arrivo utilizzando il tipo di evento specifico (application.test
), pertanto solo gli eventi con quel tipo specifico, avviati dall'app mobile, attiveranno il percorso generato nel passaggio successivo. In uno scenario reale, potrebbe essere utile inviare notifiche push da un servizio esterno, tuttavia si applicano gli stessi concetti: dall’applicazione esterna invia un evento esperienza in Experience Platform che ha campi specifici che puoi utilizzare per applicare condizioni su prima che questi eventi attivino un percorso.
Creazione del percorso
Il passaggio successivo consiste nel creare il percorso che attiva l’invio della notifica push alla ricezione dell’evento appropriato.
-
Nell'interfaccia utente di Journey Optimizer, seleziona Percorsi dalla barra a sinistra.
-
Selezionare Crea Percorso.
-
Nel pannello Proprietà Percorso:
-
Immetti un Nome per il percorso, ad esempio
Luma - Test Push Notification Journey
. -
Immetti una Descrizione per il percorso, ad esempio
Journey for test push notifications in Luma mobile app
. -
Verificare che Consenti rientro sia selezionato e impostare Periodo di attesa rientro su 30 Secondi.
-
Selezionare Ok.
-
-
Torna all'area di lavoro del percorso, da EVENTI, trascina e rilascia LumaTestEvent nell'area di lavoro in cui viene visualizzato Seleziona un evento di ingresso o un'attività di lettura pubblico.
- Nel pannello Events: LumaTestEvent, immetti un Label, ad esempio
Luma Test Event
.
- Nel pannello Events: LumaTestEvent, immetti un Label, ad esempio
-
Dal menu a discesa ACTIONS, trascina e rilascia Push sulla visualizzata a destra dell'attività LumaTestEvent. Nel riquadro Azioni: Push:
-
Fornisci un Etichetta, ad esempio
Luma Test Push Notification
, fornisci una Descrizione, ad esempioTest push notification for Luma mobile app
, seleziona Transazionale dall'elenco Categoria e seleziona Luma dalla Superficie push. -
Seleziona Modifica contenuto per iniziare a modificare la notifica push effettiva.
Nell'editor Notifica push:
-
Immetti un Titolo, ad esempio
Luma Test Push Notification
, e un Corpo, ad esempioTest push notification for Luma mobile app
. -
Se necessario, è possibile immettere un collegamento a un'immagine (.png o .jpg) in Aggiungi file multimediali. In tal caso, l’immagine farà parte della notifica push.
-
Per salvare e lasciare l'editor, selezionare .
-
-
Per salvare e completare la definizione della notifica push, selezionare Ok.
-
-
Il percorso deve essere simile al seguente. Seleziona Publish per pubblicare e attivare il percorso.
Attivare la notifica push
Sono disponibili tutti gli ingredienti per inviare una notifica push. Ciò che rimane è come attivare questa notifica push. In sostanza, è lo stesso che hai visto prima: invia semplicemente un evento esperienza con il payload corretto (come in Eventi).
Questa volta l’evento esperienza che stai per inviare non è costruito per creare un semplice dizionario XDM. Stai per utilizzare un struct
che rappresenta un payload di notifica push. La definizione di un tipo di dati dedicato rappresenta un modo alternativo di implementare la costruzione dei payload dell’evento esperienza nell’applicazione.
-
Passa a Luma > Luma > Modello > XDM > TestPushPayload nel Navigatore progetti Xcode e controlla il codice.
code language-swift import Foundation // MARK: - TestPush struct TestPushPayload: Codable { let application: Application let eventType: String } // MARK: - Application struct Application: Codable { let id: String }
Il codice è una rappresentazione del seguente semplice payload che stai per inviare per attivare il percorso di notifica push di prova
code language-json { "eventType": string, "application" : [ "id": string ] }
-
Passa a Luma > Luma > Utils > MobileSDK nel navigatore progetti Xcode e aggiungi il seguente codice 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() ?? [:] ) }
Questo codice crea un'istanza
testPushPayload
utilizzando i parametri forniti alla funzione (applicationId
eeventType
), quindi chiamasendExperienceEvent
durante la conversione del payload in un dizionario. Questo codice, questa volta, prende in considerazione anche gli aspetti asincroni della chiamata all'SDK di Adobe Experience Platform utilizzando il modello di concorrenza di Swift basato suawait
easync
. -
Passa a Luma > Luma > Views > General > ConfigView nel navigatore progetti Xcode. Nella definizione del pulsante di notifica push, aggiungi il seguente codice per inviare il payload dell’evento di esperienza di notifica push di prova in modo da attivare il percorso ogni volta che il pulsante viene toccato.
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) }
Convalida tramite l’app
-
Rigenera ed esegui l'app nel simulatore o su un dispositivo fisico da Xcode, utilizzando .
-
Passa alla scheda Impostazioni.
-
Tocca Notifica push. Nell’app viene visualizzata la notifica push.
{width="300"}
Passaggi successivi
Ora dovresti disporre di tutti gli strumenti per gestire le notifiche push nell’app. Ad esempio, puoi creare un percorso in Journey Optimizer che invia una notifica push di benvenuto quando un utente dell’app accede. Oppure una notifica push di conferma quando un utente acquista un prodotto nell’app. Oppure entra nel recinto geografico di una posizione (come verrà visualizzato nella lezione Places).
Successivo: Creare e inviare messaggi in-app