Acerca dos números do Destakes No outro dia, a propósito do Destakes ter chegado ao milhão de notícias, disse (e não foi a primeira vez) entre outras coisas, que em 2007 o Destakes "empurrou" para os sites das respectivas notícias uma média de 600 000 pedidos por mês (em Março por exemplo foram 960 000). Há quem dê importância a isso (eu também dou), e curiosamente, alguém de um dos maiores diários nacionais, contactou-me a dizer que achava muita fruta, ;-) e que pelos dados do Analytics a coisa não deveria coincidir. Dei-lhe os números todos para a publicação, ele devolveu-me um ou dois meses para comparar, e realmente, os números divergiam *substancialmente*.
Na prática estamos a falar de cerca de 3%. Os outros 97% de Referers em falta não podiam ser explicados por browsers que não relevam o respectivo referer, hits de crawlers e tal... a diferença era muita, e eu nem registo todos os redirects! :-D
Então resolvi olhar para como a coisa funcionava.
Quando alguém clica num link de uma notícia no Destakes, nas feeds RSS ou no live bookmark do Firefox nacional vai dar a uma página do tipo www.destakes.com/redir/xxxxxx em que x é um id. Essa página pesca a notícia em causa, incrementa o contador (em intervalos de 60s, ou seja, no mesmo minuto só conta um hit) e faz o redirect para o site original da notícia em 5s, mais coisa menos coisa.
Ora, o problema está neste redirect. O redirect é feito com um meta http-equiv="refresh" (o que não é grande ideia, mas foi o que serviu na altura). O que eu não fazia ideia até hoje, e até a Wikipedia o refere, é que num redirect destes, a informação do Referer *não é* passada pelo browser ao destinatário.
"Using meta refresh for redirection is considered by the W3C to be a poor practice, since it does not communicate any information about either the original or new resource to the browser..."
Resumindo, eu não estava a passar Referers nenhum aos sites de destino, logo o Analytics e afins contavam o redirect como um direct hit.
Mas então de onde vêm aqueles 3% ? Bem, o meta http-equiv="refresh" em Safari por acaso passa a informação do Referer, o Firefox por exemplo não.
Anyway, como é que se resolve isto, sem deixar de ter a página intermédia de redirect e ao mesmo tempo passar a info do Referer (que é o Destakes) ? Dá-se uma martelada. :-)
Substituindo o método actual por algo parecido com <body onLoad="setTimeout(window.location=url, 5000);"> obtêm-se o mesmo efeito e guess what, a informação do Referer é passada (testado em Safari e Firefox) ao destino.
Ou então não é nada disto. :-D
Vamos ver se para o mês que vem, o Destakes já lhes aparece mais acima nos gráficos. ;-)
Esses redirects são conhecidos por a página que faz o redirect ser ignorada, o que pode explicar essa diferença de valores pois não há um link de referência. No novo método acho que ainda falta qualquer coisa, que é exactamente passar a informação do referrer ao browser, ou ele vai apenas ler uma nova página e não simular um click. Pelo menos foi o que li depois de uma pesquisa rápida, como aqui: http://forum.wmonline.com.br/lofiversion/index.php/t172715.html
Curiosidade: o contador só mexer de 60s em 60s está ligado a algum cookie, ou se 10 pessoas clicarem no mesmo link, no mesmo minuto, só conta 1 visita? por João Lúcio a 23 Janeiro 2008 - 01:19
Works for me
João,
Testei com Firefox e Safari e com a solução nova levei com o referer. Não sei se o que faz a diferença é o facto de estar no onLoad do body.
E sim, 10 pessoas diferentes ao mesmo tempo contam 1. É "cache" local... não envolve cookies. por Carlos Jorge Andrade a 23 Janeiro 2008 - 01:28
Not so fast...
Assim a coisa não funciona bem para o IE... experimenta:
function myRedir() {
try {
document.getElementsByTagName('a')[0].click();
} catch (e) {
window.location=document.getElementsByTagName('a')[0].getAttribute('href');
}
}
Assim funciona para IE, Firefox, Safari e Opera (desde que permitam o referrer logging).
Claro que o index 0 é *se* só houver um tag a! :P Seria mais fácil/rápido usar um id... por Vítor Pires a 23 Janeiro 2008 - 03:54
30x
eu na~o percebo muito disto de browsers, mas pq na~o um 30x? por pfig a 23 Janeiro 2008 - 09:19
Cache
Para que serve os 60s?
Serve para algum mecanismo de cache que tens? por Nuno Mariz a 23 Janeiro 2008 - 09:35
O outro também funcionava com Safari
Se calhar o Firefox aceita esse e usa a página original como referrer, mas tens o IE6 e anteriores, como o Vítor referiu, que ainda representam grande fatia do mercado.
@pfig
Penso que os 30x servem mais para os motores de busca. Quando um site/página muda de lugar os 30x são a melhor forma de transmitir os resultados desse site para a nova localização (links, pagerank, etc.). por João Lúcio a 23 Janeiro 2008 - 09:59
Ajax ??
E porque não um pedido Ajax no onclick() do link da notícia para o Destakes registar o click na notícia internamente, sendo esse link já directo para a notícia no site destino e assim eliminando a página de redirect intermédia? por Rui Campos a 23 Janeiro 2008 - 10:51
30x
pfig,
Pq perguntas para as quais já sabes a resposta ?
Nuno,
Não, simplesmente não quero contar clicks em barda (por outras razões que não tem a ver com performance).
Rui Campos,
Pq 90% dos clicks feitos no destakes não são feitos no site (para poder levar com ajax), são feitos em leitores de feeds e no live bookmark do firefox. por Carlos Jorge Andrade a 23 Janeiro 2008 - 12:45
Usa redirect HTTP
O método correcto de fazer isso é com um redirect HTTP. Por definição do standard, o browser faz o pedido exactamente igual, mas para a nova URL.
Se for PHP fazes com «header('Location: [nova url]');». Não precisas de emitir mais nenhum conteúdo, fica uma resposta só com headers e sem body. por Sérgio Carvalho a 23 Janeiro 2008 - 14:17
Requisitos
Sérgio,
Redirects pelas normas sei eu fazer na boa.
O requisito aqui é não prescindir da página de redirect, aquela intermédia *onde a publicidade aparece*. ;-)
se soubesse a resposta na~o perguntava, na~o percebo o teu comenta'rio.
como eu faria isto era com a script de registar os clicks a mandar um 30x (na~o me apetece agora ir ver a lista) depois de fazer o bookkeeping.
mas ok, vou googlar pq na~o deveria fazer assim, pec,o desculpa por ter incomodado. na~o volta a acontecer. por pfig a 24 Janeiro 2008 - 07:17
30x
pfig,
Como é que eu usava um 30x se eu quero ter aquela página intermédia de publicidade entre o click e o redirect. Usando um 30x depois do "bookkeeping" o redirect era imediato e nunca ninguém via a publicidade.
A dificuldade aqui não é fazer o redirect, há métodos standard para isso. A questão é/era ter uma página de a ser mostrada durate x segundos e depois fazer o redirect *com* a info do referer. por Carlos Jorge Andrade a 24 Janeiro 2008 - 12:20
30x
de facto notei uma refere^ncia a uma pa'gina interme'dia num comenta'rio. mas como na~o fui ao destakes na~o a vi ao vivo. por pfig a 24 Janeiro 2008 - 16:26
Duplo hit
Olá,
se calhar não queres o trafego extra, mas se complementares a solução inicial com uma script de 30x tens o problema resolvido, incluindo suporte à tua página intermédia:
1. cliente segue o link do destakes;
2. recebe a página intermédia com um meta-refresh como tinhas, mas em que o destino é uma script tua;
3. a script gera o 30x necessário para o site de destino.
É um duplo acesso ao teu site, mas pode ser útil para malta com maus figados relativamente a JS. Já não devem existir muitos mas.... :)
Tem 36 anos, é natural de Vila Nova de Famalicão mas mora no Porto desde que veio para a universidade... bem, morou. Agora já casado, está pela Maia. Anda pela internet há já uns 16 anos tendo trabalhado em vários projectos como foram o caso do Mail.pt ou no Sapo. Também conhecido como o responsável pelo ITJobs, o Destakes e o Usauto entre outras brincadeiras.
De resto já bloga há uns 11 anos apesar de ter perdido parte da "vida" numa mudança de hosting provider. Algumas restias ainda por aí andam... ah, e o email de contacto está no footer.
não chateiem com os erros de Português... "the bad spelling is part of the charm". ;-)
escusado será dizer que as opiniões aqui expressas são minhas e só minhas, e não de outros ou da empresa onde trabalho
qualquer outro bitaite... ramblings at karlus.net
não, não é powered by MovableType
ou Wordpress, é powered by código meu em PHP
O conteúdo deste site não poderá ser utilizado sem a sua autorização expressa.
As imagens nele contidas são propriedade dos respectivos autores.