Creare e visualizzare le offerte con Gestione delle decisioni
Scopri come mostrare le offerte da Journey Optimizer Decision Management nelle app mobili con l’SDK di Experience Platform Mobile.
Journey Optimizer Decision Management consente di offrire ai clienti l’offerta e l’esperienza migliore al momento giusto, in tutti i punti di contatto. Una volta progettate, puoi indirizzarle al tuo pubblico con offerte personalizzate.
La gestione delle decisioni semplifica la personalizzazione con una libreria centrale di offerte di marketing e un motore decisionale che applica regole e vincoli ai profili avanzati e in tempo reale creati da Adobe Experience Platform. Di conseguenza, ti consente di inviare ai clienti l’offerta giusta al momento giusto. Per ulteriori informazioni, vedere Informazioni sulla gestione delle decisioni.
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 - Gestione delle decisioni con le autorizzazioni appropriate per gestire offerte e decisioni come descritto qui.
Obiettivi di apprendimento
In questa lezione, potrai
- Aggiorna la configurazione di Edge per la gestione delle decisioni.
- Aggiorna la proprietà tag con l’estensione Journey Optimizer - Decisioning.
- Aggiorna lo schema per acquisire gli eventi della proposta.
- Convalidare l'impostazione in Assurance.
- Creare una decisione di offerta, basata sulle offerte disponibili in Journey Optimizer - Gestione delle decisioni.
- Aggiorna l'app per registrare l'estensione Optimizer.
- Implementa nell’app le offerte di Gestione delle decisioni.
Configurazione
Aggiorna configurazione dello stream di dati
Per garantire che i dati inviati dall’app mobile all’Edge Network della piattaforma vengano inoltrati a Journey Optimizer - Gestione delle decisioni, aggiorna lo stream di dati.
-
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, assicurati che siano selezionati Offer Decisioning, Edge Segmentation e Adobe Journey Optimizer. Se vuoi seguire la lezione di Target, seleziona anche Destinazioni Personalization. Per ulteriori informazioni, vedere Impostazioni di Adobe Experience Platform.
-
Per salvare la configurazione dello stream di dati, seleziona Salva.
Installare Journey Optimizer - Estensione tag Decisioning
-
Passa a Tag, individua la proprietà del tag mobile e apri la proprietà.
-
Seleziona Estensioni.
-
Seleziona Catalogo.
-
Cerca l'estensione Adobe Journey Optimizer - Decisioning.
-
Installa l’estensione. L'estensione non richiede una configurazione aggiuntiva.
Aggiornare lo schema
- Passa all'interfaccia di Data Collection e seleziona Schemi dalla barra a sinistra.
- Seleziona Sfoglia dalla barra superiore.
- Seleziona lo schema per aprirlo.
- Nell'editor schema, selezionare Aggiungi accanto a Gruppi di campi.
- Nella finestra di dialogo Aggiungi gruppi di campi,
cerca
proposition
, seleziona Evento esperienza - Interazioni proposte e seleziona Aggiungi gruppi di campi. Questo gruppo di campi raccoglie i dati dell’evento esperienza rilevanti per le offerte: quale offerta viene presentata, come parte di quale raccolta, decisione e altri parametri (vedi più avanti in questa lezione). Ma anche cosa sta succedendo con l'offerta? È visualizzato, interagisce con, ignorato e così via?
- Seleziona Salva per salvare le modifiche apportate allo schema.
Convalida impostazione in Assurance
Per convalidare la configurazione in Assurance:
- Passa all’interfaccia utente Assurance.
- Seleziona Configura nella barra a sinistra e seleziona accanto a Convalida installazione sotto ADOBE JOURNEY OPTIMIZER DECISIONING.
- Seleziona Salva.
- Seleziona Convalida installazione nella barra a sinistra. Vengono convalidate sia la configurazione dello stream di dati che la configurazione dell’SDK nell’applicazione.
Crea posizionamento
Prima di poter creare le offerte, è necessario definire come e dove posizionarle nell’app mobile. In Gestione delle decisioni, definisci i posizionamenti a questo scopo e definirai un posizionamento per il canale mobile che supporta un payload JSON:
-
Nell'interfaccia utente di Journey Optimizer, seleziona Componenti da GESTIONE DECISIONI nella barra a sinistra.
-
Seleziona Posizionamenti dalla barra superiore.
-
Se non è presente alcun posizionamento con nome JSON per dispositivi mobili come Tipo di canale e JSON come Tipo di contenuto , è necessario creare un posizionamento. In caso contrario, continuare a Creare le offerte.
Per creare il posizionamento JSON per dispositivi mobili:
-
Seleziona Crea posizionamento.
- nella sezione Dettagli, immetti
Mobile JSON
come Nome, seleziona Mobile da Tipo di canale e JSON da Tipo di contenuto. - Seleziona Salva per salvare il posizionamento.
- nella sezione Dettagli, immetti
Crea offerte
-
Nell'interfaccia utente di Journey Optimizer, seleziona Offerte da GESTIONE DELLE DECISIONI nella barra a sinistra.
-
Nella schermata Offerte, seleziona Sfoglia per visualizzare l'elenco delle offerte.
-
Seleziona Crea offerta.
-
Nella finestra di dialogo Nuova offerta, seleziona Offerta personalizzata e fai clic su Successiva.
-
Nel passaggio Dettagli di Crea una nuova offerta personalizzata:
-
Immetti un Nome per l'offerta, ad esempio
Luma - Juno Jacket
, e una Data e ora di inizio e una Data e ora di fine. Al di fuori di queste date, l’offerta non verrà selezionata dal motore delle decisioni. -
Seleziona Avanti.
-
-
Nel passaggio Aggiungi rappresentazioni di Crea una nuova offerta personalizzata:
-
Seleziona Mobile dall'elenco Channel e seleziona Mobile JSON dall'elenco Placement.
-
Seleziona Personalizzato per Contenuto.
-
Seleziona Aggiungi contenuto. Nella finestra Aggiungi personalizzazione:
-
Se è disponibile un selettore Mode, assicurati che sia impostato su JSON.
-
Immetti il seguente JSON:
code language-json { "title": "Juno Jacket", "text": "On colder-than-comfortable mornings, you'll love warming up in the Juno All-Ways Performance 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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/jackets/wj06-purple_main.jpg" }
-
Seleziona Salva.
-
-
Seleziona Avanti.
-
-
Nel passaggio Aggiungi vincoli di Crea una nuova offerta personalizzata:
-
Imposta Priorità su
10
. -
Disattiva Includi limite.
-
Seleziona Avanti.
-
-
Nel passaggio Rivedi di Crea nuova offerta personalizzata:
- Rivedi l'offerta, quindi seleziona Fine.
- Nella finestra di dialogo Salva offerta, seleziona Salva e approva.
-
Ripeti i passaggi da 3 a 8 per creare altre quattro offerte con nomi e contenuti diversi. Tutti gli altri valori di configurazione, ad esempio Data e ora di inizio o Priorità, sono simili alla prima offerta creata. Puoi creare rapidamente offerte duplicate e modificarle.
-
Nell'interfaccia utente di Journey Optimizer, seleziona Offerte dalla barra a sinistra, quindi seleziona Offerte dalla barra superiore.
-
Seleziona la riga dell’offerta creata.
-
Nel riquadro di destra, selezionare Altre azioni e dal menu di scelta rapida selezionare Duplica.
Utilizza la tabella seguente per definire le altre quattro offerte.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 layout-fixed Offer name (Nome offerta) Contenuto dell’offerta in JSON Luma - Afferma bottiglia d’acqua { "title": "Affirm Water Bottle", "text": "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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/gear/fitness-equipment/ug06-lb-0.jpg" }
Luma - Desiree Fitness Tee { "title": "Desiree Fitness Tee", "text": "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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/tees/ws05-yellow_main.jpg" }
Luma - Giubbotto Adrienne Trek { "title": "Adrienne Trek Jacket", "text": "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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/jackets/wj08-gray_main.jpg" }
Luma - Aero Daily Fitness Tee { "title": "Aero Daily Fitness Tee", "text": "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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/men/tops/tees/ms01-black_main.jpg" }
-
-
Come passaggio finale, devi creare un’offerta di fallback, ovvero un’offerta inviata ai clienti che non sono idonei per altre offerte.
-
Seleziona Crea offerta.
-
Nella finestra di dialogo Nuova offerta, seleziona Offerta personalizzata e Successiva.
-
Nel passaggio Dettagli di Crea nuova offerta di fallback, immetti un Nome per l'offerta, ad esempio
Luma - Fallback Offer
, e seleziona Successivo. -
Nel passaggio Aggiungi rappresentazioni di Crea nuova offerta di fallback:
-
Seleziona Mobile dall'elenco Channel e seleziona Mobile JSON dall'elenco Placement.
-
Seleziona Personalizzato per Contenuto.
-
Seleziona Aggiungi contenuto.
-
Nella finestra di dialogo Aggiungi personalizzazione, immetti il seguente JSON e seleziona Salva:
code language-json { "title": "Luma", "text": "Your store for sports wear and equipment.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/logos/Luma_Logo.png" }
-
Seleziona Avanti.
-
-
-
Nel passaggio Rivedi di Crea nuova offerta di fallback:
- Rivedi l'offerta, quindi seleziona Fine.
- Nella finestra di dialogo Salva offerta, seleziona Salva e approva.
Ora dovresti disporre del seguente elenco di offerte:
Creare una raccolta
Per presentare un’offerta all’utente dell’app mobile, devi definire una raccolta di offerte, composta da una o più offerte create.
-
Nell'interfaccia utente di Journey Optimizer, seleziona Offerte dalla barra a sinistra.
-
Seleziona Raccolte dalla barra superiore.
-
Selezionare Crea raccolta.
-
Nella finestra di dialogo Nuova raccolta, immetti un Nome per la raccolta, ad esempio
Luma - Mobile App Collection
, seleziona Crea raccolta statica e fai clic su Avanti. -
In Luma - Mobile App Collection, selezionare le offerte da includere nella raccolta. Per questa esercitazione, scegli le cinque offerte create. È possibile filtrare facilmente l'elenco utilizzando il campo di ricerca, ad esempio digitando Luma.
-
Seleziona Salva.
Creare una decisione
Il passaggio finale consiste nel definire una decisione, ovvero la combinazione di uno o più ambiti decisionali e dell’offerta di fallback.
Un ambito decisionale è una combinazione di un posizionamento specifico (ad esempio HTML in un’e-mail o JSON in un’app mobile) e uno o più criteri di valutazione.
Un criterio di valutazione è la combinazione di
- una raccolta di offerte,
- regole di idoneità: ad esempio, l’offerta è disponibile solo per un pubblico specifico,
- un metodo di classificazione: quando sono disponibili più offerte tra cui scegliere, quale metodo utilizzare per classificarle (ad esempio in base alla priorità dell’offerta, utilizzando una formula o un modello di IA).
Consulta Passaggi chiave per creare e gestire le offerte per comprendere meglio come posizionamenti, regole, classificazioni, offerte, rappresentazioni, raccolte, decisioni e così via interagiscono e si relazionano tra loro. Questa lezione si concentra esclusivamente sull'utilizzo dei risultati di una decisione piuttosto che sulla flessibilità nella definizione delle decisioni all'interno di Journey Optimizer - Gestione delle decisioni.
-
Nell'interfaccia utente di Journey Optimizer, seleziona Offerte dalla barra a sinistra.
-
Seleziona Decisioni dalla barra superiore.
-
Seleziona Crea decisione.
-
Nel passaggio Dettagli di Crea una nuova decisione di offerta:
- Immettere un Nome per la decisione, ad esempio
Luma - Mobile App Decision
, immettere Data e ora di inizio e Data e ora di fine. - Seleziona Avanti.
- Immettere un Nome per la decisione, ad esempio
-
Nel passaggio Aggiungi ambiti decisionali di Crea una nuova decisione di offerta:
-
Seleziona JSON mobile dall'elenco Posizionamento.
-
Nel riquadro Criteri di valutazione, selezionare Aggiungi.
-
Nella finestra di dialogo Aggiungi raccolta di offerte, seleziona la raccolta di offerte. Ad esempio, Luma - Mobile App Collection.
-
Seleziona Aggiungi.
-
-
Assicurati che None sia selezionato per Eligibility e che Offer priority sia selezionato come metodo di classificazione.
-
Seleziona Avanti.
.
-
-
Nel passaggio Aggiungi offerta di fallback di Crea una nuova decisione di offerta:
- Selezionare l'offerta di fallback, ad esempio Luma - Fallback offer.
- Seleziona Avanti.
-
Nel passaggio Riepilogo di Crea una nuova decisione di offerta:
- Seleziona Fine.
- Nella finestra di dialogo Salva decisione offerta, seleziona Salva e attiva.
- Nella scheda Decisioni, visualizzi la tua decisione con stato Live.
La decisione sull’offerta, composta da una serie di offerte, è ora pronta per l’uso. Per utilizzare la decisione nell'app, nel codice devi fare riferimento all'ambito della decisione.
-
Nell'interfaccia utente di Journey Optimizer, seleziona Offerte.
-
Seleziona Decisioni dalla barra superiore.
-
Selezionare la decisione, ad esempio Luma - Mobile App Decision.
-
Nel riquadro Ambiti decisione, selezionare Copia.
-
Dal menu contestuale, selezionare Ambito decisione.
-
Utilizza un qualsiasi editor di testo per incollare l’ambito decisionale per un utilizzo successivo. L’ambito della decisione ha il seguente formato JSON.
code language-json { "xdm:activityId":"xcore:offer-activity:xxxxxxxxxxxxxxx", "xdm:placementId":"xcore:offer-placement:xxxxxxxxxxxxxxx" }
Implementare le offerte 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 ottimizzazione. Se questi passaggi non sono chiari, controlla la sezione Installare gli SDK.
-
In Xcode, accertati che AEP Optimize 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
AEPOptimize
faccia parte dell'elenco delle importazioni.code language-swift import AEPOptimize
-
Assicurarsi che
Optimize.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 ]
-
Passa a Luma > Luma > Model > Data > decisioni nel Navigator dei progetti Xcode. Aggiorna i valori
activityId
eplacementId
con i dettagli dell'ambito di decisione copiati dall'interfaccia di Journey Optimizer. -
Passa a Luma > Luma > Utils > MobileSDK nel Navigatore progetti Xcode. Trovare la funzione
func updatePropositionOD(ecid: String, activityId: String, placementId: String, itemCount: Int) async
. Aggiungi il seguente codice:code language-swift // set up the XDM dictionary, define decision scope and call update proposition API Task { let ecid = ["ECID" : ["id" : ecid, "primary" : true] as [String : Any]] let identityMap = ["identityMap" : ecid] let xdmData = ["xdm" : identityMap] let decisionScope = DecisionScope(activityId: activityId, placementId: placementId, itemCount: UInt(itemCount)) Optimize.clearCachedPropositions() Optimize.updatePropositions(for: [decisionScope], withXdm: xdmData) }
Questa funzione:
-
configura un dizionario XDM
xdmData
contenente l'ECID per identificare il profilo per il quale si devono presentare le offerte. -
definisce
decisionScope
, un oggetto basato sulla decisione definita nell'interfaccia Journey Optimizer - Gestione decisioni e definito utilizzando l'ambito di decisione copiato da Crea una decisione. L'app Luma utilizza un file di configurazione (decisions.json
) che recupera i parametri di ambito in base al seguente formato JSON:code language-swift "scopes": [ { "name": "name of the scope", "activityId": "xcore:offer-activity:xxxxxxxxxxxxxxx", "placementId": "xcore:offer-placement:xxxxxxxxxxxxxxx", "itemCount": 2 } ]
È tuttavia possibile utilizzare qualsiasi tipo di implementazione per assicurarsi che le API di ottimizzazione ottengano i parametri corretti (
activityId
,placementId
eitemCount
) per creare un oggettoDecisionScope
valido per l'implementazione.
Per informazioni: gli altri valori chiave nel filedecisions.json
sono per uso futuro e non rilevanti e sono attualmente utilizzati in questa lezione e come parte dell'esercitazione. -
chiama due API:
Optimize.clearCachePropositions
eOptimize.updatePropositions
. Queste funzioni cancellano tutte le proposte memorizzate nella cache e aggiornano le proposte per questo profilo.
-
-
Passa a Luma > Luma > Views > Personalization > EdgeOffersView nel navigatore progetti Xcode. Trovare la funzione
func onPropositionsUpdateOD(activityId: String, placementId: String, itemCount: Int) async
ed esaminare il codice di questa funzione. La parte più importante di questa funzione è la chiamata APIOptimize.onPropositionsUpdate
, che- recupera le proposte per il profilo corrente in base all’ambito della decisione (definito in Journey Optimizer - Gestione delle decisioni),
- recupera l’offerta dalla proposta,
- decomprime il contenuto dell’offerta in modo che possa essere visualizzato correttamente nell’app; e
- attiva l'azione
displayed()
sull'offerta che invia nuovamente un evento all'Edge Network informando che l'offerta è visualizzata.
-
Sempre in EdgeOffersView, aggiungi il seguente codice al modificatore
.onFirstAppear
. Questo codice assicura che il callback per l’aggiornamento delle offerte venga registrato una sola volta.code language-swift // Invoke callback for offer updates Task { await self.onPropositionsUpdateOD(activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount) }
-
Sempre in EdgeOffersView, aggiungere il codice seguente al modificatore
.task
. Questo codice aggiorna le offerte quando la vista viene aggiornata.code language-swift // Clear and update offers await self.updatePropositionsOD(ecid: currentEcid, activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount)
Convalida tramite l’app
-
Rigenera ed esegui l'app nel simulatore o su un dispositivo fisico da Xcode, utilizzando .
-
Passa alla scheda Personalisation.
-
Seleziona Edge Personalisation.
-
Scorri verso l'alto per visualizzare due offerte casuali dalla raccolta definita nella sezione DECISION LUMA - MOBILE APP DECISION.
{width="300"}
Le offerte sono casuali, in quanto hai assegnato a tutte la stessa priorità e la classificazione per la decisione si basa sulla priorità.
Convalida implementazione in Assurance
Per convalidare l’implementazione delle offerte in Assurance:
-
Consulta la sezione istruzioni di installazione per collegare il simulatore o il dispositivo ad Assurance.
-
Seleziona Configura nella barra a sinistra e seleziona accanto a Rivedi e simula sotto ADOBE JOURNEY OPTIMIZER DECISIONING.
-
Seleziona Salva.
-
Seleziona Rivedi e simula nella barra a sinistra. La configurazione di entrambi gli stream di dati viene convalidata e la configurazione dell’SDK nell’applicazione.
-
Seleziona Richieste nella barra superiore. Sono visualizzate le Offerte richieste.
-
Puoi esplorare le schede Simula e Elenco eventi per ulteriori funzionalità, controllando la configurazione di Journey Optimizer Decision Management.
Passaggi successivi
Ora dovresti disporre di tutti gli strumenti necessari per iniziare ad aggiungere ulteriori funzionalità all’implementazione di Journey Optimizer - Gestione delle decisioni. Ad esempio:
- applica parametri diversi alle offerte (ad esempio, priorità, limite).
- raccogli gli attributi del profilo nell'app (vedi Profilo) e utilizza questi attributi per creare tipi di pubblico. Quindi utilizza questi tipi di pubblico come parte delle regole di idoneità nella tua decisione.
- combinare più ambiti decisionali.
Successivo: Eseguire test A/B