Em uma aplicação de página única (SPA), a página carrega apenas uma vez. Por isso, o Browser Monitoring SDK do ARMS reporta dados de visualização de página (PV) somente no carregamento inicial. Alterações de rota na SPA não acionam novos relatórios de PV. Consequentemente, as visualizações de subpáginas e logs de outros tipos não são rastreados por rota.
O Browser Monitoring SDK do Application Real-Time Monitoring Service (ARMS) oferece dois métodos para reportar dados de PV a cada alteração de rota:
|
Método |
Tipo de roteamento |
Configuração |
|
Relatório automático |
Baseado em hash ( |
Defina um sinalizador de configuração |
|
Relatório manual |
Qualquer (hash, history ou personalizado) |
Chame |
Ative o relatório automático de SPA
Este método funciona para a maioria das SPAs que utilizam hash de URL (#) como identificador de rota. O SDK escuta eventoshashchangee reporta dados de PV sempre que o hash muda. O valor do hash também serve como identificador da página quando o SDK reporta outros dados.
Defina enableSPA como true na configuração do SDK:
const config = {
pid: '<your-pid>',
enableSPA: true
};
Personalize a extração do nome da página
Por padrão, o SDK usa o hash bruto da URL como nome da página. Para extrair um nome personalizado do hash, use enableSPA com parseHash. A função parseHash recebe a string completa do hash e retorna o nome da página a ser reportado.
const config = {
pid: '<your-pid>',
enableSPA: true,
parseHash: function (hash) {
// Example: extract the path from '#/user/profile?tab=info'
// and return '/user/profile'
return hash.replace(/(\?.*)?$/, '');
}
};
Para consultar a referência completa de parâmetros, visualize enableSPA e parseHash.
Reporte dados de página manualmente
Esta abordagem é compatível com qualquer estratégia de roteamento, incluindo history e rotas personalizadas. Utilize-a quando o relatório automático baseado em hash não corresponder à sua configuração de roteamento.
Chame setPage() para atualizar o nome da página sempre que ocorrer uma alteração de rota. Cada chamada aciona um novo relatório de PV por padrão.
// Listen for route changes and report the new page name
app.on('routeChange', function (next) {
__bl.setPage(next.name);
});
Adapte o listener de eventos ao seu roteador. Por exemplo, integre-se ao callback de alteração de rota fornecido pelo React Router, Vue Router ou Angular Router e chame __bl.setPage() com o novo nome da página.
Exemplos de integração com frameworks
Os exemplos a seguir demonstram como chamar setPage() com roteadores comuns de SPA.
React Router (v5 e posteriores)
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
function PageTracker() {
const location = useLocation();
useEffect(() => {
// Report the pathname as the page name on each route change
__bl.setPage(location.pathname);
}, [location.pathname]);
return null;
}
// Add <PageTracker /> inside your <Router> component
Vue Router
router.afterEach((to) => {
__bl.setPage(to.path);
});
Para obter a API completa de setPage(), consulte setPage().
Escolha um método de relatório
|
Critério |
**Automático ( |
**Manual ( |
|
Tipo de roteamento |
Baseado em hash ( |
Qualquer (hash, history ou personalizado) |
|
Esforço de configuração |
Um sinalizador de configuração |
Listener de eventos por alteração de rota |
|
Controle do nome da página |
Derivado do hash da URL (personalizável com |
Totalmente personalizável |
|
Mais indicado para |
Roteamento padrão por hash |
Roteamento via History API, nomes de página personalizados ou roteamento aninhado |