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 32 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 12 anos tendo trabalhado em vários projectos como foram o caso do Mail.pt ou no Sapo. Nos tempos livres vai tendo tempo para fazer umas brincadeiras, entre as quais o ITJobs o Lusocast o Hispanocast ou o Destakes
De resto já bloga há uns 7 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. Btw... job offers are welcome!
off to a @godevel dinner 04, Jul - 20:07 5 hours sleep... tired :-/ 04, Jul - 19:07 título idiota do dia "homem deu a luz uma menina" 04, Jul - 18:07 top gear episode 2 in youtube :) 04, Jul - 16:07 @carlosduarte a unica coisa dinamica era o adssense, e isso é deles. 04, Jul - 16:07 @carlosduarte no meu caso eu não pus lá nada e mesmo assim diziam que dava para sacar isto e aquilo de nao sei de onde. 04, Jul - 16:07 @carlosduarte tb ja fui mordido por isso há dias... o google anda meio burro. 04, Jul - 16:07 5 hours hacking around a mediawiki... bed now. :-( 04, Jul - 05:07
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.