-
Notifications
You must be signed in to change notification settings - Fork 411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disponibilizar os views que cada usuário teve #1576
Comments
Fala @maniero, o principal que você precisa já está aguardando contribuições para ser implementado.
Nós ainda não temos essa informação de maneira simples. O assunto é tratado em: Resumindo... Por enquanto nós só temos esses dados pelo Analytics da Vercel, onde conseguimos consultar as top visualizações das páginas (com dados limitados aos últimos 12 meses), mas é algo manual, pela interface visual do site, já que eles não disponibilizam isso de forma oficial via API, e o site não dá muitas opções além de escolher o período (últimas 24 horas, 7 dias, 30 dias, 3 meses ou 12 meses) e realizar alguns filtros nos resultados. O triste é que os filtros são aplicados no resultado já disponível, não busca novos dados. E os resultados são limitados pelos top 250. Não tem paginação para buscar os próximos 250 e ir pegando tudo. A parte mais simples é criar consulta(s) no nosso banco de dados para montar a URL de todos os seus conteúdos, e das publicações de outras pessoas que você comentou, e computar tudo mais que você precisar (saldos de TabCoins, por exemplo). Será ótimo se você, ou quem puder, contribuir com isso. 💪 Mas não adiantaria ir na ferramenta da Vercel tentar filtrar pela URL de cada uma dessas páginas obtidas na consulta citada acima, pois só algumas retornariam. Por exemplo, filtrando por "maniero", só aparece a sua página por ela estar dentro das 250 mais visitadas, mas não aparece qualquer publicação sua, mesmo sabendo que existem (lista de publicações root do maniero): O que daria pra fazer é criar um script para fazer algo como sugerido em https://github.com/orgs/vercel/discussions/1068#discussioncomment-7403107, onde poderia tentar passar uma lista de paths como filtro (limitado a 250), ou, se não aceitar lista, ir passando um path de cada vez, tomando cuidado para não cair em algum rate limit. A ajuda na investigação sobre isso também seria uma excelente contribuição. 💪
Não entendi bem se aqui você quer dizer que os dados que temos no nosso banco de dados já bastam (nesse caso é só criar a query do que precisa). Ou se diz que não precisa das visualizações da URL única de cada comentário. Imagino que somar essas visualizações não mude significativamente seus números, mas para obtê-las não muda muito o trabalho, pois basta adequar a query, adicionar os paths delas no script de raspagem da Vercel e depois somar as visualizações, se for o caso.
Pela API você já pode filtrar: https://www.tabnews.com.br/api/v1/contents/maniero?with_children=false E pelo site deve ser possível em breve com o
Acho que não existe issue aberta sobre isso, mas já vou sugerir ao @ErickCReis acrescentar isso no PR #1577, pois inclusive esse dado já é disponível no client, mas não é mostrado em nenhum lugar. Se inspecionar a sua página (https://www.tabnews.com.br/maniero) verá que possui 1.347 conteúdos publicados 🚀
Como você se cadastrou em 30 de janeiro de 2023, pela nossa restrição na Vercel, tem até 29/01/24 para rodar esse script sem perder parte dos dados que você precisa. É quase certo que a implementação de tudo não vai sair antes desse prazo, mas é totalmente possível a gente rodar as consultas no banco e rodar o script na Vercel, se a turma ajudar com a criação deles. 💪
Concordo totalmente! 🤝
O primeiro é listar exatamente o que você precisa, dentro do que temos disponível no banco de dados, para então montar a(s) consulta(s). O segundo passo é fazer uns testes dessa sugestão https://github.com/orgs/vercel/discussions/1068#discussioncomment-7403107 para ver a melhor forma de raspar os dados das visualizações. Essa parte eu posso fazer alguns testes, mas acho que só vou conseguir no início de janeiro, então qualquer um que testar antes e puder trazer informações, já ajuda. 👍 Obrigado pela issue! 💪 |
Obrigado pela descrição detalhada, com links (já tinha visto alguns). De fato, não posso fazer nada que envolva essas tecnologias que eu não conheço. Não sei se consigo definir o problema além do que eu disse, fora que pode não ter ficado claro e falarei abaixo. Meu problema principal é: preciso de todas as views aproximadas que minhas postagens tiveram (diretamente por ela ou pendurada em outra, comentário ou raiz. Pode ser só a soma de todas elas nos últimos 12 meses de abril/23 à março/24. Pode ser de qualquer forma, mesmo que não apareça no site (aparecendo melhor para odo e facilita auditoria. Se tiver que fazer malabarismo (fazer várias coisas manuais), que seja, nunca é ideal, mas é suficiente. Todo o resto é adicional ou já tem alguma forma. Alguns links foram úteis, embora não ajudem nesta necessidade específica. Esta imagem que colocou com meus views totais é algo real? Posso considerar que foi isso que tive? Pode servir de base se ficar só na estimativa. Na pior das hipóteses, se eu der um número estimado, não tem o mesmo valor, mas já consigo indicar algo. Eu consigo acessar a API da Vercel para pegar os dados do Tabnews, conforme discussão do Github deles que mandou acima? Ficou a dúvida de como eu poderia fazer isto: https://github.com/orgs/vercel/discussions/1068#discussioncomment-7403107, até por eu ter zero conhecimento da plataforma. Como eu só preciso mesmo para entregar para a Microsoft as views totais do período, não preciso saber quantas deram em cada uma delas. Só disse que isso é bom para todos saberem se conseguiu atingir as pessoas, nada relacionado com minha necessidade específica. Pelo que entendi as informações adicionais que falei, menos importantes, são mais fáceis que as visualizações. Resumindo, se eu puder obter as views diretas ou indiretas (contidas em um comentário acima, até a raiz) das minhas postagens nos últimos 12 meses (só precisa do total), já resolve o problema principal. Obrigado por tudo. |
Se só precisa dos dados a partir de abril, então tem um prazo maior para criar o script com menor risco de perder informações.
Adiantaria para a auditoria se eu criar uma publicação no TabNews apresentando os dados que você precisa, ou até passar por aqui mesmo, de forma pública? Como a Vercel não disponibiliza API para isso, infelizmente não tem como fornecer esses números atualizados em tempo real. Provavelmente teremos que implementar algo próprio para atender a issue #1115, mas isso é melhor ser debatido por lá.
São número reais dos últimos 12 meses, mas não inclui suas publicações e comentários. São apenas da página do seu perfil: https://www.tabnews.com.br/maniero
Não consegue. 😕 Esse endpoint é usado pela Vercel para apresentar os dados na página do Analytics. Só funciona estando autenticado, e usando uma conta que tenha acesso aos dados. Os testes que eu sugeri envolvem ter acesso a algo hospedado na Vercel e com Analytics habilitado, mesmo que seja só um laboratório com uma conta hobby.
Eu recomendo experimentar hospedar um projeto na Vercel (pode ser um dos exemplos do Next.js), se tiver interesse, pois é algo com zero atrito, principalmente para alguém com sua experiência.
Se quer só um número consolidado, ou se quer uma planilha detalhada, você decide. Ou deixa a decisão para quem for contribuir com a o código que precisa ser criado para raspar os dados. Para a funcionalidade definitiva, se a Vercel não disponibilizar a API formalmente, é como falei acima, a Turma vai precisar criar primeiro uma forma de armazenar esses dados onde possamos acessar do nosso backend.
Isso mesmo, os dados que estão no nosso banco (Postgres) são mais fáceis de apresentarmos em tempo real.
O que acha de somar apenas as visualizações das publicações root? Caso contrário estará inflando artificialmente os números, já que deve ser muito raro alguém visualizar apenas um comentário sem visualizar a página da publicação raiz. E quando isso acontece, talvez seja um caso que nem deveria ser contabilizado mesmo. Mas isso muda bem pouco a query do Postgres e, no mais, será só uma lista maior ou menor para o script que vai buscar os dados via REST, então veja o que acha melhor. Ou, de novo, deixe a decisão para quem for contribuir com isso. 👍 |
Muito, embora ninguém vai morrer se não tiver. Eu não vou ser impedido de renovar o programa porque os dados do TabNews não foram considerados, mas seria legal ter isso, mostrar força na plataforma.
De fato, isso não é necessário pra mim, e acho que para a maioria. A informação, mesmo atrasada, ainda é bem útil.
Novamente, acho muito útil para todos, mas eu não preciso para minha necessidade específica.
Ok. Então de fato isso não me serve. Estava achando um número baixo, agora acho alto :)
Não, obrigado :D :D :D
A planilha é mais interessante, mas pra efeito de entrega para Seattle o total geral de tudo, mesmo aproximado, dos últimos 12 meses é suficiente.
Todas as roots que eu participei? Já fica bem melhor que nada. Dará diferença do real, para baixo, mas não acho que deve ser relevante, porque acho que poucas pessoas acessam diretamente pelo URL do comentário (meu ou de outro acima). Hoje eu não sei se tenho 10kv, 100kv ou 1mv. Obrigado. |
Desculpa minha ignorancia, sou novo no ramo de programação e estou chegando agora no pedaço graças ao Curso.dev. Não seria mais facil fazer essa contagem de acessos pelo Analytics do Google? |
@euandreferrari não precisa se desculpar por tirar uma dúvida 🤝 Em resumo, não utilizamos o Google Analytics e evitamos ao máximo ferramentas com propósito parecido. Veja esse comentário do @aprendendofelipe e nele tem um link para outro comentário do @filipedeschamps 👍 |
@aprendendofelipe fiz o teste com a informação da API da vercel que retorna os dados de uma página: vercel.sh: #!/bin/bash
bearerToken="Bearer Ny_____________________"
environment="production"
path="/recents"
filter='{"path":{"values":["'"$path"'"],"operator":"eq"}}'
from="2023-12-13T00:00:00.000Z"
projectId="redesign-tabnews-com-br"
to="2024-01-11T23:59:59.999Z"
url="https://vercel.com/api/web/insights/overview?environment=$environment&projectId=$projectId"
curl -s --get "$url" \
--data-urlencode "filter=$filter" \
--data-urlencode "from=$from" \
--data-urlencode "to=$to" \
-H "Cookie:authorization=$bearerToken" | jq . Retorno: {
"devices": 72,
"total": 218
} O devices é a quantidade que aquela página recebeu. Apenas o que me preocupa é se "bearerToken" é atualizado, renovado. |
Desde que não mude durante a execução do script de raspagem, não será problema. Mas também é bom gerar logs e poder fazer isso em etapas, continuando de onde parou, pois também pode cair em |
Outra coisa é a data dessas visualizações, no plano hobby são os últimos 31 dias, não sei como funciona no plano pro. Se o "bearerToken" não atualizar, daria para salvar no banco de dados dia após dia a quantidade de visualizações da postagem que teve no dia e ir somando e não buscar toda hora a quantidade de visualização, isso iria evitar um possível "rate limit". Esse "bearerToken" vem da autorização do painel do "analytics" do projeto, então não sei se eles colocaram um limite dentro dele. |
No pró são 12 meses Complementando a resposta anterior...
Os O |
Então, mas para uma visualização precisa acredito que "devices" iria fazer mais sentido que o total, por que seria mais valido uma pessoa ter visto do que a mesma pessoa ter visto 1000 vezes. Talvez seja possível adicionar as visualizações buscando na API a cada 24h e gravando/atualizando no banco de dados. |
@aprendendofelipe será que é possível tentar algo assim? para ter visualizações dos posts? |
Se está falando sobre o que está sendo tratado na #1115, a Vercel não oferece API para isso, então não faz sentido criar gambiarras para obter os dados deles. É melhor usarmos algum dos diversos outros serviços que disponibilizam API. Além de termos a opção de criar algo do zero, que não deve valer a pena, mas é uma opção. Nessa issue a ideia é criar um script para raspar os dados que o @maniero precisa. Isso vai ser rodado uma vez para obter os dados dele, e pode ser útil mais para frente, para injetar dados iniciais quando o sistema discutido em #1115 estiver pronto, mas não serve para algo que deveria ser executado em um servidor, já que precisaria de credenciais apropriadas para isso. |
@maniero, seu número preliminar é mais de 454k diferentes dispositivos acessaram suas publicações ou as que você comentou. 🚀👏 Some a isso mais de 4k dispositivos no seu perfil. No caso das publicações que você comentou, considerei apenas os acessos que ocorreram após seu comentário mais antigo em cada uma. Para suas publicações/comentários mais antigos, considerei apenas os acessos após o dia 1/4/2023. Os números são de dispositivos, não visualizações de páginas, ou seja, desconsidera visitas duplicadas em um mesmo dispositivo dentro de 24 horas. Mais perto do dia 31 eu tento puxar os dados mais atualizados com os últimos dias de março/24 e posto aqui uma planilha com os dados completos, inclusive as visualizações de páginas. 🤝 |
@maniero, seu total (de abril/23 até março/24) ficou em 468.388 dispositivos (546.552 visitas). 🎉🎉🎉 Esses números são apenas da versão Web do TabNews. Infelizmente ainda não temos as estatísticas da API de maneira tão detalhada, senão os números seriam ainda maiores pelos acessos via aplicativos. A princípio esses números também não consideram os acessos por robôs, que estão em cerca de 17% do nosso tráfego (deve ter I.A. sendo treinada com as publicações 🤖). Segue o link da planilha com detalhamento dos dados por conteúdo, por dia e por tipo (dispositivo ou total de visitas): E de brinde vai um gráfico com os dados por dia (de abril/23 até março/24): |
Muito obrigado Felipe, ficou sensacional. Promete não encher o saco até o ano que vem :P :D |
Fala pessoal, estou com um problema praticamente igual. Esse ano fui indicado para o Microsoft MVP e gostaria de adicionar meus dois artigos educacionais no TabNews como contribuições:
Mas para isso, preciso do número de alcance/visualizações deles (mesmo que aproximado). Ficaria extremamente agradecido se for possível obter essa informação 💙 Note Como já tem tanto esse Issue (ainda que fechado) e o #1115 em andamento, optei por não abrir um novo Issue 🙋🏻♂️ |
Weslley, você já está no programa ou foi indicado por alguém para entrar? Se está, eu vou pedir pro Felipe perto do dia 31/03 quando fecha nosso ano, então aí acho que ele pode fazer o meu e o seu. A não ser que seja certeza que você não vai publicar mais nada até lá. Eu recomendo publicar. Se não está não sei bem a melhor estratégia até porque eu entrei de forma diferente de todo mundo, eu não fui indicado por ninguém, foi a Microsoft que me procurou. Coloca tudo. De uns tempos pra cá eles têm preferido agrupar contribuições, para não ficar como o Groffe que tinha 1000 :D Eu coloco o que eu fiz por site ou por evento, etc. Se quiser depois pode listar na descrição internet os itens mais importantes, mas eu faço super simples, título, tipo, descrição básica e alcance. |
This comment has been minimized.
This comment has been minimized.
Fala @wellwelwel! Levantei os dados de 1 de abril de 2024 até hoje. Veja se tem tudo que você precisa. 👍 Assim como fiz para o Maniero no ano passado, incluí as estatísticas das publicações que você comentou, contando apenas os eventos após a criação do seu primeiro comentário em cada publicação. Caso queira apenas os dados das suas próprias publicações, basta ignorar as que você comentou. Uma informação importante é que nós mudamos da Vercel Analytics para a Umami no início de janeiro de 2025. Como a metodologia de cada uma é diferente, e não sei se você prefere os maiores números ou os mais conservadores, estou deixando tudo separado para você poder escolher quais usar e daí somar os dados de 2024 com os de 2025. Estatísticas do @wellwelwel na Vercel (2024) e Umami (2025)Expanda aqui para ver alguns detalhes de como os dados foram obtidosA consulta abaixo foi utilizada para listar os conteúdos criados pelo @wellwelwel e os que ele comentou: WITH target_user AS (
SELECT id, username
FROM users
WHERE username = 'wellwelwel'
)
SELECT
CONCAT('/', root_username, '/', root_slug) AS root_path,
root_status,
CONCAT('/', target_username, '/', target_slug) AS target_path,
interacted_at
FROM (
SELECT DISTINCT ON (root.id)
target.published_at AS interacted_at,
root_user.username AS root_username,
root.slug AS root_slug,
root.status AS root_status,
target.slug AS target_slug,
target_user.username AS target_username
FROM contents target
INNER JOIN target_user ON target_user.id = target.owner_id
INNER JOIN contents root ON root.id = COALESCE(target.path[1], target.id)
INNER JOIN users root_user ON root_user.id = root.owner_id
WHERE target.status = 'published'
ORDER BY root.id, target.published_at ASC
) AS distinct_interacted_root
ORDER BY interacted_at; O O Qualquer dúvida, ou se precisar de qualquer dado diferente, é só falar. 🤝 |
Muito obrigado, @aprendendofelipe 🤝 |
Descrição
Vou dar o meu cenário e porque eu preciso muito disto e não é só uma sugestão geral. Obviamente não posso exigir nada, só vou colocar minha necessidade.
Como sou Microsoft MVP, preciso reportar anualmente tudo o que fiz. Um dos dados que preciso inserir e cada plataforma, é a quantidade de visualização que eu tive. Não é necessário um dado preciso, mas pelo menos deve ser aproximado.
Então pode ser até as views da página e não do que eu postei que pode ser um pouco menor por ter sido postado depois.
Eu preciso saber todas as minhas views dos últimos 12 meses. Isso pode ser dado de diversas formas e eu até precisar fazer contas, mas preciso de algum dado. Se der o total já funciona para este ano já que eu não tenho acesso anterior, mas complica depois. Não preciso das views individuais de cada postagem, mas é algo interessante também.
Outras informações necessárias eu consigo de uma forma ou de outra, ainda que algumas vão dar trabalho na forma atual. Seria i9nteressantepelo menos para daqui um ano ter uma forma de ver todos os Tabcoins ganhos em cada ano/mês/semana ou algo assim. Uma separação do que é postagem e o que é comentário. ter uma contagem das postagens. Tudo isso facilitaria, mas sem não é inviável pra mim.
Mesmo que não possam fazer isso para a plataforma já, se for possível queriam que me fornecessem esse número excepcionalmente ou me falassem como pegar isso.
Preciso entregar em março. Se não der para cumprir isso, paciência, mas seria bom para a Microsoft tomar ciência oficial do Tabnews, já que sou o único a usar.
Acho uma boa para todos, não estou fazendo um pedido que só serve para mim, mas estou informando do tamanho da importância disso para o meu caso. Se não der para fazer perfeito até março, podem melhorar depois. Se não der nada, agradeço de qualquer forma todo o esforço para por a plataforma no ar como está, ajuda muita gente.
Vocês definem a melhor forma, mas posso ajudar.
Obrigado e estou à disposição se precisarem de informação adicional.
Bom final de ano a todos.
Sugestão de implementação
No response
The text was updated successfully, but these errors were encountered: