Implementar aplicativos de página única (SPA) web-spa-implementation
O SDK da Web da Adobe Experience Platform fornece recursos avançados que fazem com que sua empresa execute personalização em tecnologias de próxima geração no lado do cliente, como aplicativos de página única (SPA).
Os sites tradicionais funcionam em modelos de navegação de "página para página", conhecidos como aplicativos de várias páginas, em que os designs de site são totalmente combinados com URLs e as transições de uma página da Web para outra exigem um carregamento de página.
Aplicativos da Web modernos, como aplicativos de página única (SPA), adotaram um modelo que impulsiona o uso rápido da renderização da interface do usuário do navegador, que geralmente é independente dos recarregamentos de página. Essas experiências podem ser acionadas por interações do cliente, como rolagens, cliques e movimentos de cursor. Conforme os paradigmas da Web moderna evoluíam, a relevância dos eventos genéricos tradicionais, como um carregamento de página, para implantar a personalização e a experimentação não funciona mais.
Benefícios do uso do SDK da Web para SPA web-spa-benefits
Estes são alguns benefícios de usar o SDK da Web para seus aplicativos de página única:
- Capacidade de armazenar em cache todas as ofertas no carregamento da página para reduzir várias chamadas do servidor a uma única chamada de servidor.
- Melhore bastante a experiência do usuário no site, pois as ofertas são exibidas imediatamente pelo cache, sem o tempo de atraso introduzido pelas chamadas do servidor tradicional.
- A configuração de desenvolvedor única permite que os profissionais de marketing criem e executem atividades de personalização e experimentação por meio do editor visual da Web do Adobe Journey Optimizer no seu SPA.
Exibições XDM e aplicativos de página única web-spa-xdm
O editor da Web do Journey Optimizer aproveita um conceito chamado visualizações.
As exibições são um grupo lógico de elementos visuais que, juntos, constituem uma experiência de SPA. Um aplicativo de página única pode, portanto, ser considerado como uma transição entre exibições, em vez de URLs, com base nas interações do usuário. Normalmente, uma exibição pode representar um site inteiro, uma única página ou elementos visuais agrupados em uma página.
Para explicar melhor quais são as exibições, o exemplo a seguir usa um site de comércio eletrônico online hipotético.
-
Depois de navegar para o site inicial, uma imagem principal promove coleções sazonais, bem como os diferentes catálogos de produtos disponíveis no site. Nesse caso, uma visualização pode ser definida para toda a tela inicial. Essa visão pode simplesmente ser chamada de "inicial".
-
À medida que o cliente se torna mais interessado nos produtos que a empresa está vendendo, ele decide clicar no link Homens. Assim como a página inicial, a página Homens inteira pode ser definida como uma exibição. Essa exibição pode se chamar "homens".
-
Como uma exibição pode ser definida como um site inteiro ou um grupo de elementos visuais em um site, os quatro produtos mostrados no site de produtos podem ser agrupados e considerados como uma exibição. Essa exibição pode se chamar "produtos".
-
Quando o cliente decide clicar no botão TODOS OS PRODUTOS MASCULINOS para explorar mais produtos no site, a URL do site não muda nesse caso, mas uma exibição pode ser criada aqui para representar apenas a segunda linha de produtos mostrados. O nome da exibição pode ser "products-page-2".
-
O cliente decide comprar alguns produtos do site e prossegue para a tela de finalização. A própria tela do carrinho pode ser associada a uma visualização chamada "carrinho". Ou você pode ter uma visualização diferente na tela de check-out para lidar com os produtos recomendados abaixo.
O conceito de visões pode ser estendido muito além disso. Estes são apenas alguns exemplos de exibições que podem ser definidas em um site.
Implementação de exibições XDM implement-xdm-views
As visualizações XDM podem ser aproveitadas no Adobe Journey Optimizer para capacitar os profissionais de marketing a executar campanhas de personalização e experimentação na Web sobre o SPA, por meio do editor visual da Web do Journey Optimizer.
Isso requer a execução das seguintes etapas para concluir uma configuração de desenvolvedor única:
-
Instale o Adobe Experience Platform Web SDK e verifique a página pré-requisitos do canal da Web.
-
Determine todas as exibições XDM no aplicativo de página única que deseja personalizar.
-
Após definir os modos de exibição XDM, para fornecer conteúdo a esses modos de exibição, você precisa implementar a função
sendEvent()
comrenderDecisions
definida comotrue
e o modo de exibição XDM correspondente em seu aplicativo de página única. A exibição XDM deve ser passada emxdm.web.webPageDetails.viewName
. Essa etapa permite que os profissionais de marketing descubram essas exibições no editor da Web do Journey Optimizer e apliquem modificações de conteúdo a elas:
alloy("sendEvent", {
"renderDecisions": true,
"xdm": {
"web": {
"webPageDetails": {
"viewName":"home"
}
}
}
});
sendEvent()
, todas as exibições XDM que devem ser renderizadas para o usuário final serão buscadas e armazenadas em cache. As chamadas sendEvent()
subsequentes com exibições XDM passadas serão lidas do cache e renderizadas sem uma chamada de servidor.Exemplos de função sendEvent()
Esta seção descreve dois exemplos mostrando como invocar a função sendEvent()
no React para um SPA hipotético de comércio eletrônico.
Exemplo 1: página inicial de teste A/B web-spa-sample-1
A equipe de marketing deseja executar testes A/B em toda a página inicial.
Para executar testes A/B em todo o site inicial, sendEvent()
deve ser chamado com o XDM viewName
definido como home
:
function onViewChange() {
var viewName = window.location.hash; // or use window.location.pathName if router works on path and not hash
viewName = viewName || 'home'; // view name cannot be empty
// Sanitize viewName to get rid of any trailing symbols derived from URL
if (viewName.startsWith('#') || viewName.startsWith('/')) {
viewName = viewName.substr(1);
}
alloy("sendEvent", {
"renderDecisions": true,
"xdm": {
"web": {
"webPageDetails": {
"viewName":"home"
}
}
}
});
}
// react router v4
const history = syncHistoryWithStore(createBrowserHistory(), store);
history.listen(onViewChange);
// react router v3
<Router history={hashHistory} onUpdate={onViewChange} >
Exemplo 2: produtos personalizados web-spa-sample-2
A equipe de marketing deseja personalizar a segunda linha de produtos alterando a cor do rótulo de preço para vermelho depois que um usuário clica para ver todos os produtos masculinos.
function onViewChange(viewName) {
alloy("sendEvent", {
"renderDecisions": true,
"xdm": {
"web": {
"webPageDetails": {
"viewName": viewName
}
}
}
});
}
class Products extends Component {
render() {
return (
<
button type = "button"
onClick = {
this.handleLoadMoreClicked
} > All Men 's Products</button>
);
}
handleLoadMoreClicked() {
var page = this.state.page + 1; // assuming page number is derived from component's state
this.setState({
page: page
});
onViewChange('PRODUCTS-PAGE-' + page);
}
}