Criar e exibir ofertas com a Decisão

Saiba como mostrar ofertas do Journey Optimizer Decisioning em seus aplicativos móveis com o Experience Platform Mobile SDK.

O Journey Optimizer Decisioning é a próxima geração do gerenciamento de ofertas e a sucessora da Gestão de decisões. O recurso Decisão permite que você forneça ofertas de marketing personalizadas combinando um catálogo centralizado de itens de decisão com um poderoso mecanismo de decisão. Quer você esteja adaptando o conteúdo para públicos-alvo individuais ou otimizando estratégias com classificações alimentadas por IA, a tomada de decisão fornece as ferramentas certas para tomar decisões orientadas por dados em grande escala. Analise os principais conceitos, como itens de decisão, regras e políticas, e explore como esses elementos funcionam juntos para selecionar e priorizar o melhor conteúdo para as suas campanhas. Do gerenciamento de coleções e posicionamentos até a utilização dos dados da Adobe Experience Platform, este guia abrangente ajuda a acessar uma personalização mais inteligente e a impulsionar experiências do cliente impactantes.

Arquitetura {modal="regular"}

O serviço de Decisão simplifica a personalização oferecendo um catálogo centralizado de ofertas de marketing conhecidas como “itens de decisão”, além de um mecanismo de escolha sofisticado. Esse mecanismo usa regras e critérios de classificação para selecionar e apresentar os itens de decisão mais relevantes para cada pessoa. Esses itens de decisão são perfeitamente integrados às mensagens e experiências nos canais do Adobe Journey Optimizer: experiência baseada em código, email, SMS, notificações por push e muito mais.

Nesta lição, o foco está no uso do canal de experiência baseado em código para fornecer ofertas no aplicativo móvel. E não explicando em profundidade todos os recursos da solução da Decisão. Consulte a documentação da Decisão para obter mais informações.

NOTE
Essa lição é opcional e se aplica somente aos usuários do Journey Optimizer que desejam usar a funcionalidade de decisão para exibir ofertas em um aplicativo móvel.

Pré-requisitos

Objetivos de aprendizagem

Nesta lição, você

  • Atualize sua configuração do Edge para o Decisioning.
  • Crie um esquema para representar ofertas.
  • Validar configuração no Assurance.
  • Configure um canal de experiência baseado em código.
  • Crie uma campanha de experiência baseada em código, com base em ofertas no Journey Optimizer - Decisioning.
  • Implemente ofertas da Decisão no aplicativo.

Configurar

TIP
Se você já configurou o ambiente como parte da lição Configurar testes A/B com o Target, talvez já tenha executado algumas das etapas desta seção de configuração.

Atualizar configuração da sequência de dados

Para garantir que os dados enviados do seu aplicativo móvel para a Platform Edge Network sejam encaminhados para o Journey Optimizer - Decisão, atualize seu fluxo de dados.

  1. Na interface da Coleção de dados, selecione Datastreams e selecione sua sequência de dados, por exemplo Luma Mobile App.

  2. Selecione Mais para Experience Platform e selecione Editar Editar no menu de contexto.

  3. Na tela Datastreams > Folder > Adobe Experience Platform, verifique se o Offer Decisioning, o Edge Segmentation e o Adobe Journey Optimizer estão habilitados.

  4. Para salvar a configuração da sequência de dados, selecione Salvar.

    Configuração da sequência de dados do AEP {modal="regular"}

Definir o esquema

  1. Navegue até a interface Coleção de dados e selecione Esquemas no painel esquerdo.

  2. Selecione Procurar na barra superior.

  3. Abra o esquema Itens de oferta personalizados - Experience Decisioning. Esse esquema é o esquema dedicado para configurar seus itens de oferta, seus atributos e metadados.

  4. Adicione outros grupos de campos ao esquema que representam como você deseja usar ofertas na Decisão. Consulte Criar esquema para entender como criar esquemas. Para esta lição, dois grupos de campos são criados como parte da configuração de sandbox _techmarketingdemos: Oferta e Metadados da oferta. Você pode ver a estrutura completa do esquema abaixo.

    • Todos os campos de sequência de caracteres mediaAssets, como image ou imageLowRes, são do tipo DesignAssets e têm automaticamente destinationURL, edgePath, repository, sourceURL, trackedURL e type.
    • Todos os outros campos são do tipo Object (por exemplo offerMetadata) ou String (por exemplo fullDescription).

    Decisão de experiência de esquema {modal="regular"}

    Você pode definir seus Itens de oferta personalizados - esquema do Experience Decisioning da maneira que quiser. A estrutura acima é apenas um exemplo usado para o restante desta lição.

  5. Selecione Salvar para salvar as alterações feitas no esquema Itens de oferta personalizados - Experience Decisioning.

Instalar extensão de tags do Journey Optimizer

Para que seu aplicativo funcione com a Journey Optimizer, é necessário atualizar a propriedade da tag.

  1. Navegue até Marcas > Extensões > Catálogo.
  2. Abra a propriedade, por exemplo Luma Mobile App Tutorial.
  3. Selecione Catálogo.
  4. Pesquise a extensão Adobe Journey Optimizer.
  5. Instale a extensão.

Quando somente usa ofertas com base na Decisão no seu aplicativo, em Instalar Extensão ou Configurar Extensão, não é necessário configurar nada. Se você já tiver seguido a lição Notificações por push no tutorial, verá que, para o ambiente Desenvolvimento, o Conjunto de dados de eventos de experiência de rastreamento de push do AJO está selecionado na lista Conjunto de dados de eventos.

Implementar o Journey Optimizer no aplicativo

Conforme discutido nas lições anteriores, a instalação de uma extensão de tag móvel fornece apenas a configuração. Em seguida, você deve instalar e registrar o Messaging SDK. Se essas etapas não estiverem claras, reveja a seção Instalar SDKs.

NOTE
Se você concluiu a seção Instalar SDKs, o SDK já está instalado e você pode ignorar essa etapa.
iOS
  1. No Xcode, verifique se Mensagens do AEP foram adicionadas à lista de pacotes nas Dependências de Pacote. Consulte Gerenciador de pacotes do Swift.

  2. Navegue até Luma > Luma > AppDelegate no navegador de projetos Xcode.

  3. Certifique-se de que AEPMessaging faça parte da sua lista de importações.

    import AEPMessaging

  4. Verifique se Messaging.self faz parte da matriz de extensões que você 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
    ]
    
Android
  1. No Android Studio, verifique se aepsdk-messaging-android faz parte das dependências no build.gradle.kts no Android ChevronDown > Gradle Scripts. Consulte Gradle.

  2. Navegue até Android ChevronDown app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication no navegador de projetos do Android Studio.

  3. Certifique-se de que com.adobe.marketing.mobile.Messaging faça parte da sua lista de importações.

    import import com.adobe.marketing.mobile.Messaging

  4. Verifique se Messaging.EXTENSION faz parte da matriz de extensões que você 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 configuração no Assurance

Não é necessário validar a configuração para a Decisão no Assurance. A Decisão não usa uma extensão específica de tag da coleção de dados da Experience Platform, nem exige um pacote adicional para o aplicativo. A decisão depende da extensão Mensagens no seu aplicativo, que você já deve ter adicionado como parte das Lições Instalar SDKs do Adobe Experience Platform Mobile e Criar e enviar mensagens no aplicativo neste tutorial.

Criar configuração de canal de experiência baseada em código

Para exibir ofertas nas telas do aplicativo, é necessário configurar um canal de experiência dedicado e baseado em código. Esse canal de experiência baseado em código define a superfície (o local) no aplicativo onde você exibe suas ofertas.

Para criar um canal de experiência baseado em código.

  1. Na interface do usuário do Journey Optimizer, selecione Canal Canais de Administração no painel esquerdo.

  2. Selecione Configurações de canal em Configurações gerais.

  3. Selecione Criar configuração de canal.

  4. Em Detalhes de configuração do canal:

    Detalhes de configuração do canal

    1. Insira um Nome. Por exemplo: LumaMobileAppCodeBased.

    2. Insira uma Descrição. Por exemplo: Code-based experience for Luma app used in Mobile SDK tutorial.

    3. Selecione a Experiência baseada em código no menu suspenso Selecionar canal.

    4. Selecione uma ou mais ações de marketing da Selecione uma ou várias ações de marketing. Por exemplo Personalization no site.

    5. Selecione as plataformas para as quais deseja configurar a experiência baseada em código. Para este tutorial, selecione iOS ou Android ou ambos.

      • Para iOS:

        1. Digite ou selecione ID do aplicativo. Por exemplo, o identificador do seu aplicativo: com.adobe.luma.tutorial.swiftui.
        2. Insira ou selecione um local para Local ou caminho dentro do aplicativo. Por exemplo: offersLocation.
        3. Insira uma URL de Visualização. Por exemplo: lumatutorialswiftui://.
      • Para Android:

        1. Digite ou selecione ID do aplicativo. Por exemplo, o identificador do seu aplicativo: com.adobe.luma.tutorial.android.
        2. Insira ou selecione um local para Local ou caminho dentro do aplicativo. Por exemplo: offersLocation.
        3. Insira uma URL de Visualização. Por exemplo: lumatutorialandroid://default.
      • Conteúdo

        • Selecione JSON para o Formato.
  5. Selecione Enviar para enviar sua experiência baseada em código.

Criar ofertas

Nesta seção, você cria ofertas para o Decisioning.

  1. Na interface do usuário do Journey Optimizer, selecione DecisionItems Catalogs de Decisioning no painel esquerdo.

  2. Selecione Ofertas de Catálogos para ver a lista de Ofertas.

  3. Selecione Criar item.

    1. Na etapa ➊ Atributos da criação de uma oferta (item de decisão):

      Atributos para uma oferta na Decisão {modal="regular"}

      1. Na seção Atributos padrão:

        1. Insira um Nome da oferta. Por exemplo: Luma - Desiree Fitness Tee.
        2. Insira uma Data de início ou selecione uma usando o Calendário . Por exemplo: 7/1/2026, 12:00 AM.
        3. Insira uma Data de término ou selecione uma usando o Calendário . Por exemplo: 12/31/2026, 12:00 AM.
        4. Insira uma Prioridade. Por exemplo: 10.
        5. Selecione uma ou mais marcas apropriadas do menu suspenso Marcas. Por exemplo: Luma - Aplicativo móvel.
      2. Na seção Atributos personalizados, insira valores para o conteúdo e os metadados da oferta. Quais dados você pode inserir e como pode inserir esses dados são totalmente determinados pela forma como você definiu seu esquema para ofertas. Neste tutorial, você deseja fornecer um título, texto e uma imagem para cada oferta.

        1. No contêiner Oferta, no subcontêiner Media Assets:

          1. Selecione Adicionar da URL para Imagem e insira um valor apropriado para E​Inserir URL de origem. Por exemplo: https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg.
          2. Selecione Adicionar da URL para Imagem (alta resolução) e insira um valor apropriado para Inserir URL de origem. Por exemplo: https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg.
        2. No contêiner de Oferta, no subcontêiner de Texto:

          1. Insira um valor para Descrição completa. Por exemplo: 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.
          2. Insira um valor para Título. Por exemplo: Desiree Fitness Tee.
      3. Selecione Próximo.

    2. Na etapa ➋ Elegibilidade da criação de uma oferta (item de decisão):

      Criar item de oferta - Qualificação {modal="regular"}

      1. Em Qualificação, verifique se Todos os visitantes está selecionado.
      2. Não é necessário criar um limite na seção Limite.
      3. Selecione Próximo.
    3. Na etapa ➌ Revisar, confira a criação de uma oferta (item de decisão):

      Criar item de oferta - Revisão {modal="regular"}

      1. Revise a oferta. Você pode usar Editar para alterar Atributos padrão, Atributos do cliente ou Restrições de perfil.
      2. Selecione Salvar.
  4. Repita a etapa 3 (Criar item) para as seguintes ofertas adicionais:

    table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4
    Nome Title Descrição completa Imagem e imagem (alta resolução)
    Luma - Affirm Water Bottle Affirm Water Bottle 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. https://newluma.enablementadobe.com/images/ug06-lb-0.jpg
    Luma - Aero Daily Fitness Tee Aero Daily Fitness Tee 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. https://newluma.enablementadobe.com/images/ms01-black_main.jpg
    Luma - Adrienne Trek Jacket Adrienne Trek Jacket 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. https://newluma.enablementadobe.com/images/wj08-gray_main.jpg
    Luma - Juno Jacket Juno Jacket On 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.jpg

    Todos os outros valores, como Data inicial, Data final, Prioridade, Limite, Qualificação e outros que não estão explicitamente definidos na tabela acima devem ser os mesmos em todas as ofertas e com base no que você definiu para a primeira oferta.

Agora você deve ter a seguinte lista de ofertas:

Lista de ofertas {modal="regular"}

Criar uma coleção

Para apresentar uma oferta ao usuário do aplicativo móvel, você deve criar uma coleção de ofertas que consiste em uma ou mais ofertas criadas. Use as regras para selecionar quais ofertas pertencem a uma coleção.

  1. Na interface do usuário do Journey Optimizer, selecione DecisionItems Catalogs de Decisioning no painel esquerdo.

  2. Selecione Coleções de Catálogos para ver a lista de Coleções.

  3. Selecione Criar coleção.

  4. Na seção Detalhes:

    1. Digite um Nome para a coleção. Por exemplo: Luma - Mobile App Collection.
    2. Insira uma Descrição para a coleção. Por exemplo: Collection of Luma mobile app offers.
  5. Na seção Regras de coleção, abaixo de NUMBER OF ITEMS:

    1. Selecione Clique para criar um item de decisão…

    2. Use Selecionar atributo para selecionar um atributo.

      1. Na caixa de diálogo Selecionar um atributo, selecione um Atributo de decisão. Por exemplo Nome da oferta.
      2. Selecione Salvar.
    3. Use o menu suspenso Igual a para selecionar uma condição. Por exemplo Começa com.

    4. No campo de texto, digite o valor da condição. Por exemplo: Luma -. Este valor selecionará todas as ofertas cujo nome começa com Luma - para fazer parte da coleção. Você pode criar qualquer tipo de regra e também combinar regras, usando AddCircle Adicionar regra.

  6. Selecione Criar para criar a coleção.

    Ofertas - Coleção {modal="regular"}

Criar uma estratégia de seleção

Uma estratégia de seleção é reutilizável e consiste em uma coleção associada a uma restrição de qualificação e um método de classificação para determinar as ofertas a serem exibidas quando selecionadas em uma política de decisão. A política de decisão é abordada na seção Criar uma campanha.

Em nossa implementação, a estratégia de seleção é mantida o mais simples possível.

  1. Na interface do usuário do Journey Optimizer, selecione Estratégia Configuração de estratégia de Decisão no painel esquerdo.

  2. Selecione Estratégias de seleção.

  3. Selecione Criar estratégia de seleção. No diálogo Criar estratégia de seleção:

    1. Insira um Nome da estratégia de seleção. Por exemplo: Luma - Mobile App Selection Strategy.

    2. Use Selecionar coleção para selecionar a coleção para a estratégia de seleção.

      1. Na caixa de diálogo Coleção, selecione uma coleção. Por exemplo: Luma - Coleção de aplicativos móveis.
      2. Selecione Salvar.
    3. Verifique se Todos os visitantes está selecionado para Qualificação.

    4. Verifique se a Prioridade da oferta está selecionada para o Método de classificação.

  4. Selecione Criar para criar a estratégia de seleção.

    Criar estratégia de seleção

Criar uma campanha

Agora você cria uma campanha que usa sua coleção de ofertas e seu canal de configuração de experiência baseado em código. Campanhas são ações de marketing coordenadas que fornecem conteúdo a um público específico em um ou mais canais.

Como parte da campanha, você também cria uma política de decisão. As políticas de decisão são containers para suas ofertas que utilizam o mecanismo de decisão para retornar dinamicamente o melhor conteúdo a ser entregue a cada membro do público-alvo. O objetivo é selecionar as melhores ofertas para cada perfil, enquanto a criação de campanha/jornada permite indicar como os itens de decisão selecionados devem ser apresentados, incluindo quais atributos de item devem ser incluídos na mensagem.

  1. Na interface do usuário do Journey Optimizer, selecione Claxon Campanhas em Gerenciamento de Jornadas no painel esquerdo.

  2. Selecione Criar campanha.

  3. Na caixa de diálogo Criar sua campanha, selecione Agendado - Marketing como o tipo de campanha que deseja criar.

  4. Selecione Confirmar.

  5. Na guia Propriedades da tela **Campanha - *carimbo de data/hora ***:

    1. Insira um Nome para a campanha. Por exemplo: Luma - Mobile App Offers.
    2. Opcionalmente, insira uma Descrição.
  6. Selecione Ações.

    1. Na seção Actions:

      1. Selecione Adicionar Adicionar ação. No menu suspenso, selecione Código Experiência baseada em código.
      2. Na seção de configuração da ação Experiência baseada em código, selecione a configuração do canal de experiência baseada em código LumaMobileAppCodeBased no menu suspenso Configuração do canal de experiência baseada em código.
    2. Deixe inalteradas todas as outras configurações para Otimização, Idiomas e Gerenciamento de conflitos.

  7. Selecione Conteúdo.

    1. Na tela Experiência baseada em código, selecione Editar Editar código.

    2. Na experiência baseada em código | Configuração de canal : tela LumaMobileAppCodeBased:

      1. No editor, digite o seguinte JSON:

        code language-json
        {
           "version": "1.0",
           "offers": [
           ]
        }
        
      2. Selecione DecisionItemsConfiguration Política de decisão no segundo painel esquerdo.

        1. Selecione DecisionItemsConfiguration Adicionar política de decisão.

        2. No assistente de diálogo Criar política de decisão, na etapa ➊ Detalhes:

          1. Insira um Nome para a política de decisão. Por exemplo: Luma - Mobile App Decision Policy.
          2. Selecione ou insira 2 para o Número de itens. Essa entrada garante que duas ofertas sejam retornadas.
          3. Selecione Próximo.
        3. No assistente de diálogo Criar política de decisão, na etapa ➋ Estratégias:

          1. Na Sequência de estratégia, selecione AddCircle Add para adicionar uma sequência de estratégia.

          2. No menu de contexto, selecione Estratégia de seleção.

            1. Na caixa de diálogo Adicionar uma estratégia de seleção, selecione a estratégia de seleção criada anteriormente, Luma - Estratégia de Seleção de Aplicativo Móvel.
            2. Selecione Salvar.
          3. Selecione Próximo.

        4. No assistente de diálogo Criar política de decisão, na etapa ➌ Revisão, revise sua política de decisão.

          1. Selecione Criar para criar a política de decisão.
      3. Agora que uma política de decisão está disponível, você pode usar o painel Luma - Política de decisão do aplicativo móvel para inserir elementos adequados dessa política de decisão no editor de JSON.

        1. No editor de JSON, adicione uma nova linha entre [ e ].

        2. No painel Luma - Política de decisão de aplicativo móvel:

          1. Selecione Adicionar Inserir política para inserir a política de decisão como JSON no editor.
          2. Posicionar o cursor no editor em uma linha antes de fechar {{/each}}.
          3. Selecione nome-do-locatário (por exemplo: _techmarketingdemos) > Oferta > Conteúdo do texto > Título e depois +. Isso adiciona o título da oferta ao JSON como um elemento title.
          4. Selecione nome-do-locatário > Oferta > Conteúdo do texto > Descrição completa e depois +. Isso adiciona a descrição da oferta ao JSON como um elemento text.
          5. Selecione nome-do-locatário > Oferta > Ativos de mídia > Imagem > URLdeorigem e depois +. Isso adiciona a URL de origem da imagem de alta resolução da oferta ao JSON como um elemento image.

          O JSON final deve ser semelhante ao mostrado abaixo, com valores atualizados para o identificador da política de decisão e nomes de locatários.

          JSON final para a política de decisão

          Verifique se os elementos JSON title, text e image estão encapsulados como um objeto, usando { }. E que você insira um , depois desse objeto e um pouco antes de {/each}} no JSON.

      4. Use FileCode Validate para validar o JSON.

      5. Selecione Salvar e fechar.

  8. Selecione Revisar para ativar.

  9. A tela Revisar para ativar (Luma - Ofertas de aplicativos para dispositivos móveis) fornece uma visão geral da sua campanha.

    Revisar para ativar

  10. Se você não vir avisos ou erros, selecione Ativar para ativar a campanha. Na caixa de diálogo de confirmação, selecione Ativar mais uma vez.

  11. Na lista de campanhas, você deve ver a campanha alterando o status de StatusOrange Ativating para StatusOrange Processing para StatusBlue Live.

Agora, sua campanha de experiência baseada em código está ativa e você pode atualizar o aplicativo móvel para usar a campanha de experiência baseada em código para renderizar ofertas no local ou na superfície definida na configuração do canal de experiência baseada em código.

Implementar ofertas no aplicativo

Conforme discutido nas lições anteriores, a instalação de uma extensão de tag móvel fornece apenas a configuração. Em seguida, verifique se a extensão Mensagens está configurada para o aplicativo. Se essas etapas não estiverem claras, reveja a seção Instalar SDKs.

iOS
  1. No Xcode, verifique se Mensagens do AEP foi adicionado à lista de pacotes nas Dependências de Pacote. Consulte Gerenciador de pacotes do Swift.

  2. Navegue até Luma > Luma > AppDelegate no navegador de projetos Xcode.

  3. Certifique-se de que AEPMessaging faça parte da sua lista de importações.

    code language-swift
    import AEPMessaging
    
  4. Verifique se Messaging.self faz parte da matriz de extensões que você 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
    ]
    
  5. Navegue até Luma > Luma > Model > Data > geral no navegador do Projeto Xcode. Verifique se showDecisioning está definido como true e showPersonalization está definido como false na seção config.

    code language-json
    ...
    "showPersonalisation": false,
    "showDecisioning": true,
    ...
    

    Essas configurações garantem que a Decisão seja usada para ofertas na guia Personalização do aplicativo.

  6. Navegue até Luma > Luma > Model > Data > geral no navegador do Projeto Xcode. Verifique se uma seção decisioning com um elemento surface está configurada, identificando o local ou a superfície configurada para o canal de experiência baseado em código. Por exemplo: offersLocation.

    code language-json
    "decisioning": {
       "surface": "offersLocation"
    },
    
  7. Navegue até Luma > Luma > Utils > MobileSDK no navegador do Projeto Xcode. Localize a função func updatePropositionsForSurface(). Adicione o seguinte 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 função:

    • O obtém as propostas para as superfícies.

    Nesta implementação, somente uma superfície é configurada e usada. O código requer atualizações se você quiser lidar com várias superfícies configuradas.

  8. Navegue até Luma > Luma > Views > Personalization > EdgeDecisioningOffersView no navegador de projetos Xcode. Localize a função func fetchPropositions() async e inspecione o código dessa função. A parte mais importante dessa função é a chamada à API Messaging.getPropositionsForSurfaces([surface]) { propositionsDict, error in, que

    • recupera as apresentações do perfil atual com base na superfície,
    • recupera a oferta da proposta,
    • desenvolve o conteúdo da oferta (usando a função parseCodeBasedContent) para que ele possa ser exibido corretamente no aplicativo.
  9. Ainda em EdgeDecisioningOffersView, veja como no .task modificador:

    1. As apresentações são atualizadas usando self.updatePropositionsForSurface().
    2. Uma breve espera é implementada para que a rede Edge responda e armazene em cache as propostas.
    3. As propostas em cache são buscadas usando await self.fetchPropositions.
Android
  1. No Android Studio, verifique se aepsdk-otimize-android faz parte das dependências no build.gradle.kts (Módulo :app) no Android ChevronDown > Gradle Scripts. Consulte Gradle.

  2. Navegue até Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity no navegador do Android Studio.

  3. Certifique-se de que Optimize faça parte da sua lista de importações.

    code language-kotlin
    import com.adobe.marketing.mobile.optimize.Optimize
    
  4. Verifique se Optimize.EXTENSION faz parte da matriz de extensões que você 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
    )
    
  5. Navegue até Android ChevronDown > app > assets > data > general.json no navegador de projetos. Verifique se showDecisioning está definido como true e showPersonalization está definido como false na seção config.

    code language-json
    ...
    "showPersonalisation": false,
    "showDecisioning": true,
    ...
    

    Essas configurações garantem que a Decisão seja usada para ofertas na guia Personalização do aplicativo.

  6. Navegue até Android ChevronDown > app > assets > data > general.json no navegador de projetos. Verifique se uma seção decisioning com um elemento surface está configurada, identificando o local ou a superfície configurada para o canal de experiência baseado em código. Por exemplo: offersLocation.

    code language-json
    "decisioning": {
       "surface": "offersLocation"
    },
    
  7. Navegue até Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > templates > MobileSDK no navegador do Android Studio. Localize a função suspend fun updatePropositionsForSurfaces(surfaces: List<Surface>). Adicione o seguinte 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 função:

    • O obtém as propostas para as superfícies.

    Nesta implementação, somente uma superfície é configurada e usada. O código requer atualizações se você quiser lidar com várias superfícies configuradas.

  8. Navegue até Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > exibições > EdgeDecisioningOffersView.kt no navegador de projetos. Localize a função suspend fun fetchPropositionsForSurface(surface: Surface): DecisioningResult = withContext(Dispatchers.IO) e inspecione o código dessa função. A parte mais importante dessa função é a chamada à API Messaging.getPropositionsForSurfaces(listOf(surface)) { propositionsMap -> propositionsMap[surface]?.let { propositions ->, que

    • recupera as apresentações do perfil atual com base na superfície,
    • recupera a oferta da proposta,
    • desenvolve o conteúdo da oferta (usando a função parseCodeBasedContent) para que ele possa ser exibido corretamente no aplicativo.
  9. Ainda em EdgeDecisioningOffersView.kt, veja como na função LaunchedEffect:

    1. As apresentações são atualizadas usando MobileSDK.shared.updatePropositionsForSurfaces(listOf(surface)).
    2. Um breve atraso é implementado para que a rede Edge responda e armazene em cache as propostas.
    3. As propostas em cache são buscadas usando fetchPropositionsForSurface(surface).

Validar usando o aplicativo

iOS
  1. Recrie e execute o aplicativo no simulador ou em um dispositivo físico do Xcode, usando Play .

  2. Vá até a guia Personalization.

  3. Role para cima e veja duas ofertas aleatórias exibidas da coleção que você definiu no bloco Surface Offers Location.

    {width="300"}

    As ofertas são aleatórias, pois você deu a todas as ofertas a mesma prioridade e a classificação das ofertas é baseada na prioridade.

Android
  1. Recrie e execute o aplicativo no simulador ou em um dispositivo físico do Android Studio, usando Play .

  2. Vá até a guia Personalization.

  3. Role para cima e veja duas ofertas aleatórias exibidas na caixa superior da coleção que você definiu no bloco Surface Offers Location.

    {width="300"}

    As ofertas são aleatórias, pois você deu a todas as ofertas a mesma prioridade e a classificação das ofertas é baseada na prioridade.

Validar a implementação no Assurance

Para validar a implementação das ofertas no Assurance:

  1. Revise a seção instruções de instalação para conectar seu simulador ou dispositivo ao Assurance.

  2. Selecione Eventos no painel esquerdo.

  3. Procure por eventos de resposta de propostas de mensagem na lista de eventos.

  4. No painel direito, abra esse evento: ACPExtensionEventData > propositions > 0 > itens > 0 > dados > conteúdo > ofertas. Você vê duas ofertas 0 e 1, cada uma com os dados esperados.

    Garantia das ofertas de decisão

Próximas etapas

Agora você deve ter todas as ferramentas para começar a adicionar mais funcionalidade à sua implementação do Journey Optimizer - Decisioning. Por exemplo:

  • aplicar parâmetros diferentes às suas ofertas (por exemplo, prioridade, limite)
  • colete atributos de perfil no aplicativo (consulte Perfil) e use esses atributos de perfil para compilar públicos. Em seguida, use esses públicos-alvo como parte das regras de qualificação na sua decisão.
  • combinar mais de uma superfície.
SUCCESS
Você ativou o aplicativo para exibir ofertas usando a Decisão.
Obrigado por investir seu tempo aprendendo sobre o Adobe Experience Platform Mobile SDK. Se tiver dúvidas, quiser compartilhar comentários gerais ou tiver sugestões sobre conteúdo futuro, compartilhe-os nesta postagem de discussão da Comunidade Experience League.

Próximo: Realizar testes A/B

recommendation-more-help
platform-learn-help-tutorial-mobile-sdk