PAGEVIEW - Rastreamento de Visualizações de Página
O que é este Node?
O PAGEVIEW é o node responsável por rastrear visualizações de páginas (page views) com URL, título, referrer e tempo de permanência.
Por que este Node existe?
Page views são a métrica mais básica de analytics. O PAGEVIEW existe para:
- Traffic Analysis: Entender quais páginas são mais visitadas
- User Journey: Mapear caminho do usuário pelo site
- Referrer Tracking: De onde vêm os visitantes
- Time on Page: Quanto tempo usuários passam em cada página
Como funciona internamente?
Quando o PAGEVIEW é executado, o sistema:
- Captura dados: URL, título, referrer, timestamp
- Calcula tempo: Duration desde última page view
- Armazena: Salva em analytics_events com tipo 'page_view'
- Retorna confirmação: Sucesso com dados da page view
Código interno (analytics-executor.service.ts:360-380):
private async trackPageView(data: any, userId: string, sessionId: string, context: any): Promise<any> {
const pageView = {
type: 'page_view',
page: data.page || context.currentPage,
title: data.title,
url: data.url || context.pageUrl,
referrer: data.referrer,
userId: userId,
sessionId: sessionId,
timestamp: new Date().toISOString()
};
await this.storeTrackingEvent(pageView);
return {
success: true,
action: 'page_view_tracked',
data: pageView,
timestamp: pageView.timestamp
};
}
Quando você DEVE usar este Node?
Use PAGEVIEW para rastrear navegação:
Casos de uso
- Content Sites: Blog, notícias, documentação
- Landing Pages: Rastrear páginas de campanha
- E-commerce: Páginas de produto, categoria
- SaaS: Dashboard pages, feature pages
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| trackingType | string | Sim | Deve ser "page_view" |
| data | object | Sim | page, title, url, referrer |
| userId | string | Não | User ID |
| sessionId | string | Não | Session ID |
Exemplo: Track User Journey
{
"name": "PageView - User Journey",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "tracking_1",
"type": "tracking",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Home Page View",
"parameters": {
"trackingType": "page_view",
"data": {
"page": "home",
"title": "Home - Meu Site",
"url": "/",
"referrer": "https://google.com"
}
}
}
},
{
"id": "tracking_2",
"type": "tracking",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Product Page View",
"parameters": {
"trackingType": "page_view",
"data": {
"page": "product",
"title": "Curso TypeScript",
"url": "/products/typescript-course",
"referrer": "/"
}
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ Jornada rastreada: Home → Produto"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "tracking_1" },
{ "source": "tracking_1", "target": "tracking_2" },
{ "source": "tracking_2", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Resposta do Node
{
"success": true,
"action": "page_view_tracked",
"data": {
"type": "page_view",
"page": "product",
"title": "Curso TypeScript",
"url": "/products/typescript-course",
"referrer": "/",
"userId": "user_123",
"sessionId": "session_456",
"timestamp": "2025-01-15T10:30:00.000Z"
},
"timestamp": "2025-01-15T10:30:00.000Z"
}
Boas Práticas
✅ SIM: Rastreie cada mudança de página/rota ✅ SIM: Inclua referrer para entender origem
❌ NÃO: Não rastreie URLs com parâmetros sensíveis
Dicas
💡 Dica 1: Combine com time on page para calcular engajamento 💡 Dica 2: Use sessionId para reconstruir jornada completa
Próximo Node
→ CONVERSION - Track conversions → FUNNEL - Funnel analysis