Criar e exibir ofertas com o Gerenciamento de decisão
Saiba como mostrar ofertas da Gestão de decisões da Journey Optimizer em seus aplicativos móveis com o SDK móvel do Experience Platform.
O Gerenciamento de decisão da Journey Optimizer ajuda você a fornecer a melhor oferta e experiência aos seus clientes em todos os pontos de contato na hora certa. Depois de projetado, direcione o público com ofertas personalizadas.
A gestão de decisões facilita a personalização com uma biblioteca central de ofertas de marketing e um mecanismo de decisão que aplica regras e restrições a perfis em tempo real avançados criados pelo Adobe Experience Platform. Como resultado, ele permite enviar aos clientes a oferta certa na hora certa. Consulte Sobre o Gerenciamento de Decisão para obter mais informações.
Pré-requisitos
- O aplicativo com SDKs instalados e configurados foi criado e executado com sucesso.
- Configure o aplicativo para Adobe Experience Platform.
- Acesso ao Journey Optimizer - Gerenciamento de decisões com as permissões adequadas para gerenciar ofertas e decisões conforme descrito aqui.
Objetivos de aprendizagem
Nesta lição, você
- Atualize sua configuração do Edge para a Gestão de decisões.
- Atualize sua propriedade de tag com a extensão Journey Optimizer - Decisioning.
- Atualize seu esquema para capturar eventos de apresentação.
- Valide a configuração no Assurance.
- Crie uma decisão de oferta com base em ofertas no Journey Optimizer - Gestão de decisões.
- Atualize seu aplicativo para registrar a extensão Otimizer.
- Implemente ofertas da Gestão de decisões no seu aplicativo.
Configurar
Atualizar configuração da sequência de dados
Para garantir que os dados enviados do aplicativo móvel para o Platform Edge Network sejam encaminhados para o Journey Optimizer - Gerenciamento de decisão, atualize o fluxo de dados.
-
Na interface da Coleção de dados, selecione Datastreams e selecione sua sequência de dados, por exemplo Luma Mobile App.
-
Selecione para Experience Platform e selecione Editar no menu de contexto.
-
Na tela Datastreams > > Adobe Experience Platform, verifique se o Offer Decisioning, o Edge Segmentation e o Adobe Journey Optimizer estão selecionados. Se você for fazer a lição Direcionamento, selecione Personalization Destinations também. Consulte configurações do Adobe Experience Platform para obter mais informações.
-
Para salvar a configuração da sequência de dados, selecione Salvar.
Instalar a extensão Journey Optimizer - Decisioning tags
-
Navegue até Tags, localize sua propriedade de tag móvel e abra a propriedade.
-
Selecione Extensões.
-
Selecione Catálogo.
-
Procure a extensão Adobe Journey Optimizer - Decisão.
-
Instale a extensão. A extensão não requer configuração adicional.
Atualizar seu esquema
- Navegue até a interface Coleção de dados e selecione Esquemas no painel esquerdo.
- Selecione Procurar na barra superior.
- Selecione seu esquema para abri-lo.
- No editor de esquema, selecione Adicionar ao lado de Grupos de campos.
- Na caixa de diálogo Adicionar grupos de campos,
procure
proposition
, selecione Evento de Experiência - Interações de Apresentação e selecione Adicionar grupos de campos. Este grupo de campos coleta os dados do evento de experiência relevantes para ofertas: qual oferta é apresentada, como parte de qual coleção, decisão e outros parâmetros (consulte mais adiante nesta lição). Mas também o que está acontecendo com a oferta? Ele é exibido, interage com, rejeitado e assim por diante.
- Selecione Salvar para salvar as alterações no esquema.
Validar configuração no Assurance
Para validar sua configuração no Assurance:
- Vá para a interface do usuário do Assurance.
- Selecione Configurar no painel esquerdo e selecione ao lado de Validar Instalação abaixo de ADOBE JOURNEY OPTIMIZER DECISIONING.
- Selecione Salvar.
- Selecione Validar instalação no painel esquerdo. A configuração da sequência de dados e a configuração do SDK em seu aplicativo são validadas.
Criar posicionamento
Antes de realmente criar ofertas, é necessário definir como e onde essas ofertas podem ser colocadas no aplicativo móvel. Na Gestão de decisões, você define disposições para essa finalidade e uma disposição para o canal móvel que oferece suporte a uma carga JSON:
-
Na interface do usuário do Journey Optimizer, selecione Componentes em GERENCIAMENTO DE DECISÃO no painel esquerdo.
-
Selecione Disposições na barra superior.
-
Se nenhum posicionamento com o nome JSON Móvel, Móvel como Tipo de canal e JSON como Tipo de conteúdo for listado, você deverá criar um posicionamento. Caso contrário, continue em Criar ofertas.
Para criar a disposição JSON para dispositivos móveis:
-
Selecione Criar posicionamento.
- na seção Detalhes, digite
Mobile JSON
como o Nome, selecione Celular de Tipo de canal e JSON de Tipo de conteúdo. - Selecione Salvar para salvar o posicionamento.
- na seção Detalhes, digite
Criar ofertas
-
Na interface do usuário do Journey Optimizer, selecione Ofertas de GERENCIAMENTO DE DECISÃO no painel esquerdo.
-
Na tela Ofertas, selecione Procurar para ver a lista de ofertas.
-
Selecione Criar oferta.
-
Na caixa de diálogo Nova oferta, selecione Oferta personalizada e clique em Avançar.
-
Na etapa Detalhes de Criar nova oferta personalizada:
-
Insira um Nome para a oferta, por exemplo
Luma - Juno Jacket
, e insira uma Data e hora de início e uma Data e hora de término. Fora dessas datas, a oferta não será selecionada pelo mecanismo de decisão. -
Selecione Próximo.
-
-
Na etapa Adicionar representações de Criar nova oferta personalizada:
-
Selecione Móvel da lista Canal e selecione Móvel JSON da lista Posicionamento.
-
Selecione Personalizado para Conteúdo.
-
Selecione Adicionar conteúdo. Na caixa de diálogo Adicionar personalização:
-
Caso haja um seletor de Modo disponível, verifique se ele está definido como JSON.
-
Insira o seguinte 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" }
-
Selecione Salvar.
-
-
Selecione Próximo.
-
-
Na etapa Adicionar restrições da Criar nova oferta personalizada:
-
Definir Prioridade a
10
. -
Ativar/desativar Incluir limite.
-
Selecione Próximo.
-
-
Na etapa Revisão de Criar nova oferta personalizada:
- Revise a oferta e selecione Concluir.
- Na caixa de diálogo Salvar oferta, selecione Salvar e aprovar.
-
Repita as etapas de 3 a 8 para criar mais quatro ofertas com nomes e conteúdo diferentes. Todos os outros valores de configuração, por exemplo, Data e hora inicial ou Prioridade, são semelhantes à primeira oferta criada. Você pode criar e editar ofertas rapidamente.
-
Na interface do usuário do Journey Optimizer, selecione Ofertas no painel esquerdo e, em seguida, selecione Ofertas na barra superior.
-
Selecione a linha da oferta que você criou.
-
No painel direito, selecione Mais ações e, no menu de contexto, selecione Duplicar.
Use a tabela abaixo para definir as quatro outras ofertas.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 layout-fixed Nome da oferta Conteúdo de oferta em JSON Luma - Afirmar Garrafa de Água { "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 - Tee fitness desejado { "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 - Adrienne Trek Jacket { "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 - Camiseta fitness diário do Aero { "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" }
-
-
Como etapa final, você deve criar uma oferta substituta, que é uma oferta enviada aos clientes se eles não estiverem qualificados para outras ofertas.
-
Selecione Criar oferta.
-
Na caixa de diálogo Nova oferta, selecione Oferta personalizada e selecione Avançar.
-
Na etapa Detalhes de Criar nova oferta substituta, digite um Nome para a oferta, por exemplo
Luma - Fallback Offer
, e selecione Próximo. -
Na etapa Adicionar representações de Criar nova oferta substituta:
-
Selecione Móvel da lista Canal e selecione Móvel JSON da lista Posicionamento.
-
Selecione Personalizado para Conteúdo.
-
Selecione Adicionar conteúdo.
-
Na caixa de diálogo Adicionar personalização, insira o seguinte JSON e selecione Salvar:
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" }
-
Selecione Próximo.
-
-
-
Na etapa Revisão da oferta Criar novo fallback:
- Revise a oferta e selecione Concluir.
- Na caixa de diálogo Salvar oferta, selecione Salvar e aprovar.
Agora você deve ter a seguinte lista de ofertas:
Criar uma coleção
Para apresentar uma oferta ao usuário do aplicativo móvel, você deve definir uma coleção de ofertas que consiste em uma ou mais ofertas criadas.
-
Na interface do usuário do Journey Optimizer, selecione Ofertas no painel esquerdo.
-
Selecione Coleções na barra superior.
-
Selecione Criar coleção.
-
Na caixa de diálogo Nova coleção, digite um Nome para sua coleção, por exemplo
Luma - Mobile App Collection
, selecione Criar coleção estática e clique em Avançar. -
Em Luma - Mobile App Collection, selecione as ofertas que deseja incluir na coleção. Para este tutorial, escolha as cinco ofertas que você criou. Filtre facilmente a lista usando o campo de pesquisa, por exemplo, digitando Luma.
-
Selecione Salvar.
Criar uma decisão
A etapa final é definir uma decisão, que é a combinação de um ou mais escopos de decisão e sua oferta substituta.
Um escopo de decisão é uma combinação de um posicionamento específico (por exemplo, HTML em um email ou JSON em um aplicativo móvel) e um ou mais critérios de avaliação.
Um critério de avaliação é a combinação de
- uma coleção de ofertas,
- regras de elegibilidade: por exemplo, a oferta está disponível somente para um público-alvo específico?
- um método de classificação: quando várias ofertas estão disponíveis para seleção, qual método você usa para classificá-las (por exemplo, por prioridade de oferta, usando uma fórmula ou um modelo de IA).
Consulte Etapas principais para criar e gerenciar ofertas se quiser entender melhor como as disposições, regras, classificações, ofertas, representações, coleções, decisões e assim por diante interagem e se relacionam entre si. Esta lição está focada apenas no uso do resultado de uma decisão em vez da flexibilidade na definição de decisões no Journey Optimizer - Gestão de decisões.
-
Na interface do usuário do Journey Optimizer, selecione Ofertas no painel esquerdo.
-
Selecione Decisões na barra superior.
-
Selecione Criar decisão.
-
Na etapa Detalhes de Criar uma nova decisão de oferta:
- Insira um Nome para a decisão, por exemplo
Luma - Mobile App Decision
, insira Data e hora de início e Data e hora de término. - Selecione Próximo.
- Insira um Nome para a decisão, por exemplo
-
Na etapa Adicionar escopos de decisão de Criar uma nova decisão de oferta:
-
Selecione JSON Móvel da lista Posicionamento.
-
No bloco Critérios de Avaliação, selecione Adicionar.
-
Na caixa de diálogo Adicionar coleção de ofertas, selecione sua coleção de ofertas. Por exemplo, Luma - Mobile App Collection.
-
Selecione Adicionar.
-
-
Verifique se Nenhum está selecionado para Qualificação e se A prioridade da oferta está selecionada como o Método de classificação.
-
Selecione Próximo.
.
-
-
Na etapa Adicionar oferta substituta de Criar uma nova decisão de oferta:
- Selecione sua oferta substituta, por exemplo, o Luma - Fallback offer.
- Selecione Próximo.
-
Na etapa Resumo de Criar uma nova decisão de oferta:
- Selecione Concluir.
- Na caixa de diálogo Salvar decisão de oferta, selecione Salvar e ativar.
- Na guia Decisões, você verá sua decisão com o status Live.
Sua decisão de oferta, que consiste em um conjunto de ofertas, agora está pronta para uso. Para usar a decisão em seu aplicativo, você precisa consultar no código o escopo da decisão.
-
Na interface do Journey Optimizer, selecione Ofertas.
-
Selecione Decisões na barra superior.
-
Selecione sua decisão, por exemplo Luma - Mobile App Decision.
-
No bloco Escopos de decisão, selecione Cópia.
-
No menu contextual, selecione Escopo da decisão.
-
Use qualquer editor de texto para colar o escopo de decisão para uso posterior. O escopo de decisão tem o seguinte formato JSON.
code language-json { "xdm:activityId":"xcore:offer-activity:xxxxxxxxxxxxxxx", "xdm:placementId":"xcore:offer-placement:xxxxxxxxxxxxxxx" }
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, instale e registre o SDK Otimize. Se essas etapas não estiverem claras, reveja a seção Instalar SDKs.
-
No Xcode, verifique se Otimização da AEP foi adicionado à lista de pacotes nas dependências de pacote. Consulte Gerenciador de pacotes do Swift.
-
Navegue até Luma > Luma > AppDelegate no navegador de projetos Xcode.
-
Certifique-se de que
AEPOptimize
faça parte da sua lista de importações.code language-swift import AEPOptimize
-
Verifique se
Optimize.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 ]
-
Navegue até Luma > Luma > Model > Data > decisões no navegador do Projeto Xcode. Atualize os valores
activityId
eplacementId
com os detalhes do escopo de decisão copiados da interface do Journey Optimizer. -
Navegue até Luma > Luma > Utils > MobileSDK no navegador do Projeto Xcode. Localize a função
func updatePropositionOD(ecid: String, activityId: String, placementId: String, itemCount: Int) async
. Adicione o seguinte código: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) }
Esta função:
-
O configura um dicionário XDM
xdmData
, contendo a ECID para identificar o perfil para o qual você deve apresentar as ofertas. -
O define
decisionScope
, um objeto baseado na decisão que você definiu na interface Journey Optimizer - Gestão de Decisões e que é definido com o uso do escopo de decisão copiado de Criar uma decisão. O aplicativo Luma usa um arquivo de configuração (decisions.json
) que recupera os parâmetros de escopo, com base no seguinte formato JSON:code language-swift "scopes": [ { "name": "name of the scope", "activityId": "xcore:offer-activity:xxxxxxxxxxxxxxx", "placementId": "xcore:offer-placement:xxxxxxxxxxxxxxx", "itemCount": 2 } ]
No entanto, você pode usar qualquer tipo de implementação para garantir que as APIs de Otimização obtenham os parâmetros adequados (
activityId
,placementId
eitemCount
), para construir um objetoDecisionScope
válido para sua implementação.
Para sua informação: os outros valores-chave no arquivodecisions.json
são para uso futuro e não são relevantes e usados atualmente nesta lição e como parte do tutorial. -
chama duas APIs:
Optimize.clearCachePropositions
eOptimize.updatePropositions
. Essas funções limpam todas as propostas em cache e atualizam as propostas para esse perfil.
-
-
Navegue até Luma > Luma > Views > Personalization > EdgeOffersView no navegador de projetos Xcode. Localize a função
func onPropositionsUpdateOD(activityId: String, placementId: String, itemCount: Int) async
e inspecione o código dessa função. A parte mais importante desta função é a chamada à APIOptimize.onPropositionsUpdate
, que- recupera as apresentações do perfil atual com base no escopo de decisão (que você definiu na Journey Optimizer - Gestão de decisões),
- recupera a oferta da proposta,
- desenvolve o conteúdo da oferta para que ela possa ser exibida corretamente no aplicativo e
- aciona a ação
displayed()
na oferta que envia um evento de volta para o Edge Network informando que a oferta é exibida.
-
Ainda em EdgeOffersView, adicione o seguinte código ao modificador
.onFirstAppear
. Esse código garante que a chamada de retorno para atualizar as ofertas seja registrada apenas uma vez.code language-swift // Invoke callback for offer updates Task { await self.onPropositionsUpdateOD(activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount) }
-
Ainda em EdgeOffersView, adicione o seguinte código ao modificador
.task
. Esse código atualiza as ofertas quando a exibição é atualizada.code language-swift // Clear and update offers await self.updatePropositionsOD(ecid: currentEcid, activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount)
Validar usando o aplicativo
-
Recrie e execute o aplicativo no simulador ou em um dispositivo físico do Xcode, usando .
-
Vá até a guia Personalisation.
-
Selecione Edge Personalisation.
-
Role para cima e veja duas ofertas aleatórias exibidas da coleção que você definiu no bloco DECISION LUMA - MOBILE APP DECISION.
{width="300"}
As ofertas são aleatórias, pois você deu a todas as ofertas a mesma prioridade e a classificação da decisão é baseada na prioridade.
Validar implementação no Assurance
Para validar a implementação das ofertas no Assurance:
-
Revise a seção instruções de configuração para conectar seu simulador ou dispositivo ao Assurance.
-
Selecione Configurar no painel esquerdo e selecione ao lado de Revisar e simular abaixo de ADOBE JOURNEY OPTIMIZER DECISIONING.
-
Selecione Salvar.
-
Selecione Revisar e simular no painel esquerdo. A configuração da sequência de dados é validada e a configuração do SDK em seu aplicativo.
-
Selecione Solicitações na barra superior. Você vê suas solicitações de Ofertas.
-
Você pode explorar as guias Simular e Lista de Eventos para obter mais funcionalidades, verificando sua configuração do Journey Optimizer Decision Management.
Próximas etapas
Agora você deve ter todas as ferramentas para começar a adicionar mais funcionalidade à implementação do Journey Optimizer - Gestão de decisões. 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 um escopo de decisão.
Próximo: Realizar testes A/B