Pular para conteúdo

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:

  1. Traffic Analysis: Entender quais páginas são mais visitadas
  2. User Journey: Mapear caminho do usuário pelo site
  3. Referrer Tracking: De onde vêm os visitantes
  4. Time on Page: Quanto tempo usuários passam em cada página

Como funciona internamente?

Quando o PAGEVIEW é executado, o sistema:

  1. Captura dados: URL, título, referrer, timestamp
  2. Calcula tempo: Duration desde última page view
  3. Armazena: Salva em analytics_events com tipo 'page_view'
  4. 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

  1. Content Sites: Blog, notícias, documentação
  2. Landing Pages: Rastrear páginas de campanha
  3. E-commerce: Páginas de produto, categoria
  4. 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