Creare e visualizzare le offerte con Gestione delle decisioni

Scopri come mostrare le offerte da Journey Optimizer Decision Management nelle app mobili con Experience Platform Mobile SDK.

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.

Architettura {modal="regular"}

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.

NOTE
Questa lezione è facoltativa e si applica solo agli utenti di Journey Optimizer che desiderano utilizzare la funzionalità di gestione delle decisioni per visualizzare le offerte in un’app mobile.

Prerequisiti

Obiettivi di apprendimento

In questa lezione, potrai

  • Aggiorna la configurazione di Edge per la gestione delle decisioni.
  • Aggiorna la proprietà tag con l’estensione Offer Decisioning e Target.
  • Aggiorna lo schema per acquisire gli eventi della proposta.
  • Convalida la configurazione 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

TIP
Se l'ambiente è già stato configurato nell'ambito della lezione Configura test A/B con Target, è possibile che siano già stati eseguiti alcuni passaggi in questa sezione di configurazione.

Aggiorna configurazione dello stream di dati

Per fare in modo che i dati inviati dalla tua app mobile a Platform Edge Network vengano inoltrati a Journey Optimizer - Gestione delle decisioni, aggiorna lo stream di dati.

  1. Nell'interfaccia utente di Data Collection, seleziona Datastreams e quindi il tuo datastream, ad esempio Luma Mobile App.

  2. Seleziona Altro per Experience Platform e seleziona Modifica Modifica dal menu di scelta rapida.

  3. Nella schermata Datastreams > Folder > Adobe Experience Platform, assicurati che siano selezionati Offer Decisioning, Edge Segmentation e Adobe Journey Optimizer. Se segui la lezione di Target, seleziona anche Destinazioni Personalization. Per ulteriori informazioni, vedere Impostazioni di Adobe Experience Platform.

  4. Per salvare la configurazione dello stream di dati, seleziona Salva.

    Configurazione dello stream di dati di AEP {modal="regular"}

Installare l’estensione tag di Offer Decisioning e Target

  1. Passa a Tag, individua la proprietà del tag mobile e apri la proprietà.

  2. Seleziona Estensioni.

  3. Seleziona Catalogo.

  4. Cerca l'estensione Offer Decisioning e Target.

  5. Installa l’estensione. L'estensione non richiede una configurazione aggiuntiva.

    Aggiungi estensione Offer Decisioning e Target {modal="regular"}

Aggiornare lo schema

  1. Passa all'interfaccia di Data Collection e seleziona Schemi dalla barra a sinistra.

  2. Seleziona Sfoglia dalla barra superiore.

  3. Seleziona lo schema per aprirlo.

  4. Nell'editor schema, selezionare Aggiungi Aggiungi accanto a Gruppi di campi.

  5. Nella finestra di dialogo Aggiungi gruppi di campi, Cerca 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, ad esempio 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? Viene visualizzato, interagito con, chiuso e così via?

    Proposta {modal="regular"}

  6. Seleziona Salva per salvare le modifiche apportate allo schema.

Convalidare la configurazione in Assurance

Per convalidare la configurazione in Assurance:

  1. Passa all’interfaccia utente di Assurance.

  2. Seleziona Configura nella barra a sinistra e seleziona Aggiungi accanto a Convalida installazione sotto OFFER DECISIONING AND TARGET.

  3. Seleziona Salva.

  4. Seleziona Convalida installazione nella barra a sinistra. Vengono convalidate sia la configurazione dello stream di dati che la configurazione di SDK nell’applicazione.

    Convalida di AJO Decisioning {modal="regular"}

Crea posizionamento

Prima di poter creare le offerte, è necessario definire come e dove posizionarle nell’app mobile. In Gestione delle decisioni, puoi definire i posizionamenti a questo scopo e il posizionamento del canale mobile che supporta un payload JSON:

  1. Nell'interfaccia utente di Journey Optimizer, seleziona Componenti Componenti da GESTIONE DECISIONI nella barra a sinistra.

  2. Seleziona Posizionamenti dalla barra superiore.

  3. 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:

  1. Seleziona Aggiungi Crea posizionamento.

    1. nella sezione Dettagli, immetti Mobile JSON come Nome, seleziona Mobile da Tipo di canale e JSON da Tipo di contenuto.
    2. Seleziona Salva per salvare il posizionamento.

    Crea posizionamento {modal="regular"}

Crea offerte

  1. Nell'interfaccia utente di Journey Optimizer, seleziona Offerte Offerte da GESTIONE DELLE DECISIONI nella barra a sinistra.

  2. Nella schermata Offerte, seleziona Sfoglia per visualizzare l'elenco delle offerte.

  3. Seleziona Crea offerta.

  4. Nella finestra di dialogo Nuova offerta, seleziona Offerta personalizzata e fai clic su Successiva.

  5. Nel passaggio Dettagli di Crea una nuova offerta personalizzata:

    1. 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. Solo le offerte entro queste date vengono selezionate dal motore Decisioning.

    2. Seleziona Avanti.

      Offerte - Dettagli {modal="regular"}

  6. Nel passaggio Aggiungi rappresentazioni di Crea una nuova offerta personalizzata:

    1. Seleziona Mobile Mobile dall'elenco Channel e seleziona Mobile JSON dall'elenco Placement.

    2. Seleziona Personalizzato per Contenuto.

    3. Seleziona Aggiungi contenuto. Nella finestra Aggiungi personalizzazione:

      1. Se è disponibile un selettore Mode, assicurati che sia impostato su JSON.

      2. 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"
        }
        
      3. Seleziona Salva.
        Offerte - Contenuto personalizzato {modal="regular"}

    4. Seleziona Avanti.

      Rappresentazioni offerte {modal="regular"}

  7. Nel passaggio Aggiungi vincoli di Crea una nuova offerta personalizzata:

    1. Imposta Priorità su 10.

    2. Disattiva Includi limite.

    3. Seleziona Avanti.

      Offerte - Vincoli {modal="regular"}

  8. Nel passaggio Rivedi di Crea nuova offerta personalizzata:

    1. Rivedi l'offerta, quindi seleziona Fine.
    2. Nella finestra di dialogo Salva offerta, seleziona Salva e approva.
  9. 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.

    1. Nell'interfaccia utente di Journey Optimizer, seleziona Offerte Offerte dalla barra a sinistra, quindi seleziona Offerte dalla barra superiore.

    2. Seleziona la riga dell’offerta creata.

    3. Nel riquadro di destra, selezionare Altre Altre azioni e dal menu di scelta rapida selezionare Duplica 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" }
  10. Come passaggio finale, devi creare un’offerta di fallback, ovvero un’offerta inviata ai clienti che non sono idonei per altre offerte.

    1. Seleziona Crea offerta.

    2. Nella finestra di dialogo Nuova offerta, seleziona Offerta personalizzata e Successiva.

    3. Nel passaggio Dettagli di Crea nuova offerta di fallback, immetti un Nome per l'offerta, ad esempio Luma - Fallback Offer, e seleziona Successivo.

    4. Nel passaggio Aggiungi rappresentazioni di Crea nuova offerta di fallback:

      1. Seleziona Mobile Mobile dall'elenco Channel e seleziona Mobile JSON dall'elenco Placement.

      2. Seleziona Personalizzato per Contenuto.

      3. Seleziona Aggiungi contenuto.

      4. 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"
        }
        
      5. Seleziona Avanti.

  11. Nel passaggio Rivedi di Crea nuova offerta di fallback:

    1. Rivedi l'offerta, quindi seleziona Fine.
    2. Nella finestra di dialogo Salva offerta, seleziona Salva e approva.

Ora dovresti disporre del seguente elenco di offerte:
Elenco offerte {modal="regular"}

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.

  1. Nell'interfaccia utente di Journey Optimizer, seleziona Offerte dalla barra a sinistra.

  2. Seleziona Raccolte dalla barra superiore.

  3. Selezionare Aggiungi Crea raccolta.

  4. 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.

  5. 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.

  6. Seleziona Salva.

    Offerte - Raccolta {modal="regular"}

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 messaggio 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 se desideri comprendere in che modo 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.

  1. Nell'interfaccia utente di Journey Optimizer, seleziona Offerte dalla barra a sinistra.

  2. Seleziona Decisioni dalla barra superiore.

  3. Seleziona Aggiungi Crea decisione.

  4. Nel passaggio Dettagli di Crea una nuova decisione di offerta:

    1. Immettere un Nome per la decisione, ad esempio Luma - Mobile App Decision, immettere Data e ora di inizio e Data e ora di fine.
    2. Seleziona Avanti.
  5. Nel passaggio Aggiungi ambiti decisionali di Crea una nuova decisione di offerta:

    1. Seleziona JSON mobile dall'elenco Posizionamento.

    2. Nel riquadro Criteri di valutazione, selezionare Aggiungi Aggiungi.

      1. Nella finestra di dialogo Aggiungi raccolta di offerte, seleziona la raccolta di offerte. Ad esempio, Luma - Mobile App Collection.

      2. Seleziona Aggiungi.

        Decisione - Seleziona raccolta {modal="regular"}

    3. Assicurati che None sia selezionato per Eligibility e che Offer priority sia selezionato come metodo di classificazione.

    4. Seleziona Avanti.

      Ambiti decisionali {modal="regular"}

  6. Nel passaggio Aggiungi offerta di fallback di Crea una nuova decisione di offerta:

    1. Selezionare l'offerta di fallback, ad esempio Luma - Fallback offer.
    2. Seleziona Avanti.
  7. Nel passaggio Riepilogo di Crea una nuova decisione di offerta:

    1. Seleziona Fine.
    2. Nella finestra di dialogo Salva decisione offerta, seleziona Salva e attiva.
    3. 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.

  1. Nell'interfaccia utente di Journey Optimizer, seleziona Offerte.

  2. Seleziona Decisioni dalla barra superiore.

  3. Selezionare la decisione, ad esempio Luma - Mobile App Decision.

  4. Nel riquadro Ambiti decisione, selezionare Copia Copia.

  5. Dal menu contestuale, selezionare Ambito decisione.

    Copia ambito decisione {modal="regular"}

  6. 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. A questo punto è necessario installare e registrare Optimize SDK. Se questi passaggi non sono chiari, controlla la sezione Installare gli SDK.

NOTE
Se hai completato la sezione Installare gli SDK, SDK è già installato e puoi saltare questo passaggio.
iOS
  1. In Xcode, accertati che AEP Optimize sia aggiunto all'elenco dei pacchetti nelle dipendenze dei pacchetti. Consulta Gestione pacchetti Swift.

  2. Passa a Luma > Luma > AppDelegate nel Navigatore progetti Xcode.

  3. Assicurarsi che AEPOptimize faccia parte dell'elenco delle importazioni.

    code language-swift
    import AEPOptimize
    
  4. 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
    ]
    
  5. Passa a Luma > Luma > Model > Data > decisioni nel Navigator dei progetti Xcode. Aggiorna i valori activityId e placementId con i dettagli dell'ambito di decisione copiati dall'interfaccia di Journey Optimizer.

  6. 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) { data, error in
             if let error = error {
                Logger.aepMobileSDK.error("MobileSDK - updatePropositionsAT: Error updating propositions: \(error.localizedDescription)")
             }
       }
    }
    

    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-json
      "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 e itemCount) per creare un oggetto DecisionScope valido per l'implementazione.
      Per informazioni: gli altri valori chiave nel file decisions.json sono per uso futuro e non rilevanti e sono attualmente utilizzati in questa lezione e nell'esercitazione.

    • chiama due API: Optimize.clearCachePropositions e Optimize.updatePropositions. Queste funzioni cancellano tutte le proposte memorizzate nella cache e aggiornano le proposte per questo profilo.

  7. 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 API Optimize.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 ad Edge Network informando che l'offerta è visualizzata.
  8. 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)
    }
    
  9. 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)
    
Android
  1. In Android Studio, assicurati che aepsdk-optimize-android faccia parte delle dipendenze in build.gradle.kts (Modulo :app) in Android ChevronDown > Script Gradle. Vedi Gradle.

  2. Passa a Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity nel navigatore di Android Studio.

  3. Assicurarsi che Optimize faccia parte dell'elenco delle importazioni.

    code language-kotlin
    import com.adobe.marketing.mobile.optimize.Optimize
    
  4. Assicurarsi che Optimize.EXTENSION faccia parte dell'array di estensioni che si sta 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. Passa a Android ChevronDown > app > assets > data > decision.json nel Navigator dei progetti Xcode. Aggiorna i valori activityId e placementId con i dettagli dell'ambito di decisione copiati dall'interfaccia di Journey Optimizer.

  6. Passa a Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK nel navigatore di Android Studio. Trovare la funzione suspend fun updatePropositionsOD(ecid: String, activityId: String, placementId: String, itemCount: Int) . Aggiungi il seguente codice:

    code language-kotlin
    // set up the XDM dictionary, define decision scope and call update proposition API
    withContext(Dispatchers.IO) {
       val ecidMap = mapOf("ECID" to mapOf("id" to ecid, "primary" to true))
       val identityMap = mapOf("identityMap" to ecidMap)
       val xdmData = mapOf("xdm" to identityMap)
       val decisionScope = DecisionScope(activityId, placementId, itemCount)
       Optimize.clearCachedPropositions()
       Optimize.updatePropositions(listOf(decisionScope), xdmData, null, object :
             AdobeCallbackWithOptimizeError<MutableMap<DecisionScope?, OptimizeProposition?>?> {
             override fun fail(optimizeError: AEPOptimizeError?) {
                val responseError = optimizeError
                Log.i("MobileSDK", "updatePropositionsOD error: ${responseError}")
             }
             override fun call(propositionsMap: MutableMap<DecisionScope?, OptimizeProposition?>?) {
                val responseMap = propositionsMap
                Log.i("MobileSDK", "updatePropositionsOD call: ${responseMap}")
             }
       })
    }
    

    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-json
      "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 e itemCount) per creare un oggetto DecisionScope valido per l'implementazione.
      Per informazioni: gli altri valori chiave nel file decisions.json sono per uso futuro e non rilevanti e sono attualmente utilizzati in questa lezione e nell'esercitazione.

    • chiama due API: Optimize.clearCachePropositions e Optimize.updatePropositions. Queste funzioni cancellano tutte le proposte memorizzate nella cache e aggiornano le proposte per questo profilo.

  7. Passa a Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > visualizzazioni > EdgeOffers.kt nel navigatore progetti Xcode. Trovare la funzione suspend fun onPropositionsUpdateOD(ecid: String, activityId: String, placementId: String, itemCount: Int) ed esaminare il codice di questa funzione. La parte più importante di questa funzione è la chiamata API Optimize.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
    • restituisce le offerte.
  8. Sempre in EdgeOffers.kt, aggiungere la funzione LaunchedEffect per garantire l'aggiornamento delle offerte all'avvio della scheda Personalization.

    code language-kotlin
    // recompose the view when the number of received offers changes
    LaunchedEffect(offersOD.count()) {
        updatePropositionsOD(
            currentEcid,
            decision.activityId,
            decision.placementId,
            decision.itemCount
        )
        offersOD =
            onPropositionsUpdateOD(decision.activityId, decision.placementId, decision.itemCount)
    }
    

Convalida tramite l’app

iOS
  1. Rigenera ed esegui l'app nel simulatore o su un dispositivo fisico da Xcode, utilizzando Play .

  2. Passa alla scheda Personalization.

  3. 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à.

Android
  1. Rigenera ed esegui l'app nel simulatore o su un dispositivo fisico da Android Studio, utilizzando Play .

  2. Passa alla scheda Personalization.

  3. Scorri verso l'alto per visualizzare due offerte casuali nella casella superiore della 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à.

Convalidare l’implementazione in Assurance

Per convalidare l’implementazione delle offerte in Assurance:

  1. Consulta la sezione istruzioni di installazione per collegare il simulatore o il dispositivo ad Assurance.

  2. Seleziona Configura nella barra a sinistra e seleziona Aggiungi accanto a Rivedi e simula sotto ADOBE JOURNEY OPTIMIZER DECISIONING.

  3. Seleziona Salva.

  4. Seleziona Rivedi e simula nella barra a sinistra. La configurazione dello stream di dati viene convalidata e la configurazione di SDK nell’applicazione.

  5. Seleziona Richieste nella barra superiore. Sono visualizzate le Offerte richieste.
    Convalida di AJO Decisioning {modal="regular"}

  6. 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.
SUCCESS
Hai abilitato l’app per la visualizzazione delle offerte tramite l’estensione Offer Decisioning e Target per Experience Platform Mobile SDK.
Grazie per aver dedicato tempo all'apprendimento di Adobe Experience Platform Mobile SDK. Se hai domande, vuoi condividere commenti generali o suggerimenti su contenuti futuri, condividili in questo post di discussione della community Experience League.

Successivo: Eseguire test A/B

recommendation-more-help
9fed61f5-c338-47ad-8005-0b89a5f4af8b