Analisador de log que calcula o “tempo na página”?

2

Preciso ter uma ideia da média do "tempo na página" ou da "duração da exibição da página" para cada página dos meus sites sem o script do lado do cliente (como usar o onunload event handler).

Algum dos analisadores de log livres é capaz de fazer isso? Eu olhei para Webalizer, AWStats e Analog, mas eles não parecem ter essa função. A coisa mais próxima é "duração das visitas" no AWStats, mas gostaria de ver "duração da exibição da página" em seu lugar.

Eu sei que o rastreamento de visitantes é impreciso sem o script do lado do cliente, mas posso suportar isso. O Google Analytics parece fornecer uma métrica "tempo na página" sem interceptar o evento onunload (mas corrija-me se estiver errado), por isso acredito que isso seja possível.

    
por netvope 29.12.2010 / 07:24

5 respostas

5

Eu recomendo para você a documentação analógica sobre o que é e o que não é possível conhecer nos seus registros da Web , especialmente a parte onde o autor escreve:

You can't tell how long people spent reading each page. Once again, you can't tell which pages they are reading between successive requests for pages. They might be reading some pages they [cached] earlier. They might have followed a link out of your site, and then come back later. They might have interrupted their reading for a quick game of Minesweeper. You just don't know.

You can't tell how long people spent on your site. Apart from the problems in the previous point, there is one other complete show-stopper. Programs which report the time on the site count the time between the first and the last request. But they don't count the time spent on the final page, and this is often the majority of the whole visit.

Stephen Turner, o autor do analógico, é um cara brilhante - ex-estatístico de Cambridge - e estou inclinado a concordar com ele sobre isso. Ele justifica seus argumentos no link que enviei acima.

O analógico lhe dirá o que é definitivamente cognoscível a partir das suas estatísticas da web, e isso será muito rápido. Tentar obter mais é adivinhação e, se você quiser adivinhar, por que pagar alguém para fazê-lo? Geradores de números aleatórios são cinco centavos, então use um deles.

    
por 29.12.2010 / 08:32
4

Como Madhatter escreveu, confiar nos logs para essa informação não dará uma imagem precisa. Além disso, como na maioria das estatísticas, você precisa gastar muito tempo pensando sobre o que você está realmente medindo - as pessoas estão gastando tempo na página porque é interessante ou porque é difícil de entender? Capturar os dados em javascript dará um comportamento bastante diferente de olhar para os logs (considere o que acontece quando o usuário tem várias janelas abertas).

AFAIK, não existem ferramentas disponíveis, comerciais ou gratuitas que façam esse tipo de análise - incluindo o Google Analytics ( malfy : você pode fornecer uma referência?). No entanto, escrever o seu próprio não é excessivamente cansativo - mas você certamente precisará usar mod_usertrack ou exigir sessões para diferenciar entre os usuários - e registrar o cookie relevante junto com o tipo MIME de uma solicitação - o que significa que você não está mais usando o padrão formatos de log.

No lado positivo, o mesmo mecanismo também permite que você comece a analisar a eficácia do armazenamento em cache e a análise do fluxo de cliques (também áreas nas quais a geração atual de analisadores é pobre).

    
por 29.12.2010 / 11:12
1

Então, use o Google Analytics? Eu usei isso - funciona muito bem.

    
por 29.12.2010 / 07:29
1

Aviso: Esse método pode ou não invocar horrores indescritíveis ao desempenho do seu servidor da Web.

Se você estiver executando PHP ou uma linguagem de script semelhante, poderá fazer algo realmente feio - assim:

No rodapé das páginas que você deseja acompanhar:

<iframe src="/path/to/script.php?src=<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>&user_ip=<?php echo $_SERVER['REMOTE_ADDR']; ?>" width="1" height="1" style="visibility:hidden;"></iframe>

Em "script.php" ou qualquer nome que você escolha para nomear seu script de timer:

 <?php
       if ( @isset( $_GET['src'] )
       {
           $source = filter_var( $_GET['src'], FILTER_SANITIZE_STRING );
       } else {
           /* no source page to track */
           die();
       }
       if ( @isset( $_GET['minute'] ) )
       {
           $minute = (int) $_GET['minute'] + 1;
       } else {
           $minute = 0;
       }
       $uri_refresh = ($_SERVER['HTTPS'] != 'on') ? 'http://' : 'https://';
       $uri_refresh .= $_SERVER['HTTP_HOST'];
       $uri_refresh .= '/path/to/script.php';
       $uri_refresh .= '?src=' . $source;
       $uri_refresh .= '&user_ip=' . $_SERVER['REMOTE_ADDR'];
       $uri_refresh .= '&minute=' . $minute;
 ?>
 <html>
   <head>
     <meta http-equiv="refresh" content="60;url=<?php echo $uri_refresh; ?>">
     <title>Timed Logger</title>
   </head>
   <body style="color:#FFFFFF;">
     <p>You have been viewing this page for <?php echo $minute; ?> minutes.</p>
   </body>
 </html>

... e você pode ter uma ideia aproximada de quanto tempo as pessoas estão visualizando as coisas observando a popularidade relativa de diferentes valores de minute nos registros do seu servidor.

    
por 29.12.2010 / 09:37
1

O Nihuo Web Log Analyzer suporta esta função. Não é gratuito, mas há 30 dias de versão de avaliação gratuita com função completa em seu site.

    
por 30.12.2010 / 03:54