Skip to content
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

Ajusta UI para criar uma publicação patrocinada #1747

Merged
merged 3 commits into from
Jul 17, 2024

Conversation

Rafatcb
Copy link
Collaborator

@Rafatcb Rafatcb commented Jul 14, 2024

Mudanças realizadas

Esse PR implementa a etapa 3d mencionada em #1491 (comment).

  1. Adiciona um Checkbox na tela /publicar para criar uma publicação patrocinada.
  2. Atualização no FAQ para facilitar a orientação dos usuários. O link para o FAQ foi adicionado na Checkbox em /publicar.

Acredito que seja importante informar o usuário o que for relevante para ele se sentir seguro em criar a publicação patrocinada. Por ora, coloquei como "período de duração" o que foi exemplificado em #1491 (comment), ou seja, um consumo de 10 TabCash por dia. Apesar disso não estar implementado, imagino que implementaremos a tempo, ou lidaremos de forma manual para remover as publicações antigas (>10 dias).

Além disso, também falei sobre o tamanho recomendado para o título (< 70 caracteres, veja o PR #1746), sobre onde a publicação é exibida e como funciona o link (fonte) dela.

Na pergunta "Como funciona uma publicação patrocinada?", coloquei o aviso itálico de que esse tipo de anúncio está em desenvolvimento para que as pessoas não fiquem surpresas com mudanças e possam entender melhor o que está por vir, caso tenham interesse.

Tela /publicar:

Tela para criar nova publicação com um checkbox ao final: "Criar como publicação patrocinada. Saiba mais." e descrição "Serão utilizados 100 TabCash para criar a publicação patrocinada."

Dispositivo móvel (326 pixels de largura):

A mesma tela. O texto do Checkbox foi dividido em duas linhas, e o da descrição também.

O valor do Checkbox está sendo salvo no localStorage assim como o dos outros campos. Além disso, ele é exibido apenas na criação de publicação, e não na criação de comentário ou edição. O Checkbox está sempre habilitado, mas caso o usuário não tenha TabCash o suficiente, uma mensagem de erro é exibida no Flash.

Erro: "Não foi possível criar a publicação. Você precisa de pelo menos 100 TabCash para realizar esta ação. Informe ao suporte o valor (bfbbca7c-93d3-4baf-aea8-bec93e8c656e)"

Tipo de mudança

  • Nova funcionalidade

Checklist:

  • As modificações não geram novos logs de erro ou aviso (warning).
  • Eu adicionei testes que provam que a correção ou novo recurso funciona conforme esperado.
  • Tanto os novos testes quanto os antigos estão passando localmente.

@Rafatcb Rafatcb added front Envolve modificações no frontend novo recurso Nova funcionalidade/recurso labels Jul 14, 2024
Copy link

vercel bot commented Jul 14, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
tabnews ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 17, 2024 11:56pm

Copy link
Collaborator

@aprendendofelipe aprendendofelipe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Show de bola @Rafatcb! 🎉

Desse jeito nem vai dar tempo de ter o beta só pela API. 😅

Na verdade, como o #1746 já está em produção, já estamos com o beta valendo, mas ainda ninguém aproveitou.

Fiz um comentário, mas já está aprovado.


E o 3c vai ficar para depois, pois está dando mais trabalho do que eu esperava.

Remover os anúncios da listagem foi tranquilo, mas fazer eles aparecerem só na página do usuário está mais complexo do que deveria. Não consegui fazer o validador funcionar ao mesmo tempo com $or: [{ type: 'content' }, { type: 'ad' }] e $or: [{ status: 'draft' }, { status: 'published' }]. Parece ter um bug no Joi.items com mais de um Joi.link, pois só funciona o que eu inserir primeiro.

pages/interface/components/Content/index.js Outdated Show resolved Hide resolved
@filipedeschamps
Copy link
Owner

Sensacionaaaal 😍

Apesar disso não estar implementado, imagino que implementaremos a tempo, ou lidaremos de forma manual para remover as publicações antigas (>10 dias).

Fechado! Mas sugiro não removermos publicações antigas. Todas as publicações de anúncios que estão published são consideradas válidas 🤝 Então sugiro remover esta parte na documentação:

ou seja, ela ficará visível no seu perfil por 10 dias, e com chances de aparecer nas páginas Relevantes e Recentes durante esse período.

Desse jeito nem vai dar tempo de ter o beta só pela API. 😅

ahahahah justo! Até diria para segurar o merge da interface, para não precisar ter o trabalho de injetar os TabCash dos conteúdos depois 🤝

@filipedeschamps
Copy link
Owner

O Checkbox está sempre habilitado, mas caso o usuário não tenha TabCash o suficiente, uma mensagem de erro é exibida no Flash.

Uma dúvida @Rafatcb: o checkbox de anúncio vem habilitado por padrão ao entrar no /publicar?

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 14, 2024

Uma dúvida @Rafatcb: o checkbox de anúncio vem habilitado por padrão ao entrar no /publicar?

Não. Pode verificar em homologação: https://tabnews-git-feat-ui-create-ad-tabnews.vercel.app/publicar

Edit: ele está sempre "habilitado", mas não inicia selecionado, como disse o @aprendendofelipe

Então sugiro remover esta parte na documentação:

ou seja, ela ficará visível no seu perfil por 10 dias, e com chances de aparecer nas páginas Relevantes e Recentes durante esse período.

Ok.

Até diria para segurar o merge da interface, para não precisar ter o trabalho de injetar os TabCash dos conteúdos depois 🤝

Não vejo problemas em aguardar 👍 Seria o item f do comentário #1491 (comment), certo?

@aprendendofelipe
Copy link
Collaborator

O Checkbox está sempre habilitado, mas caso o usuário não tenha TabCash o suficiente, uma mensagem de erro é exibida no Flash.

Uma dúvida @Rafatcb: o checkbox de anúncio vem habilitado por padrão ao entrar no /publicar?

Visível sim, mas não selecionado

@filipedeschamps
Copy link
Owner

Não vejo problemas em aguardar 👍 Seria o item f do comentário #1491 (comment), certo?

Exato! 🤝 💪

@filipedeschamps
Copy link
Owner

@Rafatcb o que acha de já aproveitarmos para nesse PR incluir também o banner nas páginas de conteúdo? Usando o mesmo layout.

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 15, 2024

Posso fazer sim e depois subo o commit e coloco prints de como ficou.

Aproveitando, como vamos aguardar a etapa f para mesclar este PR, vou deixar em draft.

@Rafatcb Rafatcb marked this pull request as draft July 15, 2024 21:52
@aprendendofelipe

This comment was marked as outdated.

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 16, 2024

O que acham de algo assim? Ainda preciso trabalhar para garantir que está exibido corretamente em todas as telas, e também tentar alinhar com o conteúdo (na print, só coloquei um ml: 5 para ter noção de como ficaria). A distância vertical entre o anúncio e o conteúdo é um mb: 3 (16px).

Banner da mesma forma que na lista de conteúdos, porém dentro de uma publicação, acima do título da publicação.

Banner acima do texto "Em resposta a (título da publicação)", quando a página é de um comentário

Banner acima do título da publicação, tela mobile.

@filipedeschamps
Copy link
Owner

Achei ótimo! Então eu tentaria alinhar horizontalmente o anúncio com conteúdo da publicação e também ter o mesmo espaçamento vertcal em cima e em baixo do anúncio (acho que nos prints, o espaçamento em baixo ta alguns pixels menor do que em cima contra o menu)

@aprendendofelipe
Copy link
Collaborator

Não acham melhor inserir o anúncio abaixo do conteúdo principal, antes do primeiro comentário?

  1. Para usuários que chegam no conteúdo pela busca ou recomendação, vai afetar a primeira impressão, e podem até já descartar o TabNews por não ser o que esperavam ler.
  2. Para usuários orgânicos, como normalmente o usuário quer ler o conteúdo em si, pode passar a ser automático ignorar o anúncio e ir direto para o conteúdo. Nas listas esse efeito deve ser menor, pois o usuário muitas vezes estará procurando algo para ler, ainda não está decidido. E antes dos comentários é algo parecido com as listas.
  3. O título do anúncio ser o primeiro título da página pode confundir os mecanismos de busca.

Sobre o item 3, pensando em SEO, será que é melhor em alguma fase futura a gente remover o anúncio do HTML estático e buscar pelo client? Uma desvantagem é que o tamanho é variável, então complica lidar com o layout shift.

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 16, 2024

Bons pontos, @aprendendofelipe . De noite faço o teste e coloco aqui novamente. Sobre o SEO, nas páginas de conteúdo o impacto do layout shift seria menor do que nas listas de conteúdos (mas imagino que pioraria a experiência de links de âncora, com #). Vou aproveitar para colocar o anúncio numa tag aside, pois conforme o W3C (ênfase minha):

The element can be used for typographical effects like pull quotes or sidebars, for advertising, for groups of nav elements, and for other content that is considered separate from the main content of the page.

@filipedeschamps
Copy link
Owner

@aprendendofelipe excelentes pontos e concordo 100% 🤝

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 16, 2024

Antes da área de Responder ficou esquisito, pois parecia mesclar com o conteúdo:

Anúncio abaixo da área "Responder" e acima do outro comentário

Já embaixo, me pareceu melhor, mesmo após o usuário escrever um comentário filho da publicação principal:

Respondendo.publicacao.mp4

E o mesmo raciocínio na página do comentário:

Respondendo.comentario.mp4

Aqui ficou parecendo como se fosse um anúncio no rodapé, porque não tinha embaixo. São comentários pequenos, teremos uma noção melhor no dia a dia, com anúncios, publicações e comentários reais. Se necessário, podemos alterar depois, mas acho que ficou legal.

No mobile:

Página da publicação Página do comentário
Anúncio abaixo da área "Responder" e acima do comentário Anúncio abaixo do comentário

PS: Ainda não mexi no alinhamento com o conteúdo (deixando a margem esquerda do mesmo tamanho que a área dos TabCoins ocupa).

@filipedeschamps
Copy link
Owner

Massa @Rafatcb curti!!!

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 17, 2024

Fiz um novo commit; a alteração nos dois anteriores foi apenas do rebase. Isso trouxe três mudanças para o PR:

  1. Adição do banner de anúncio na página de conteúdos.
  2. Uso de aside no banner por causa de SEO, e também continua usando li na lista de conteúdos para ser um HTML válido.
  3. Atualização no FAQ para mencionar que o anúncio também será exibido na página dos conteúdos. Se acharem que a reformulação da frase ficou confusa, peço sugestões.

Alinhamento 👍 na página de conteúdos. A exceção é caso um conteúdo tenha mais de cinco dígitos de TabCoins, porque ele é passa a ocupar um espaço maior do que todos os outros (e certamente estamos bem longe do ponto onde isso será um problema).

Anúncio alinhado com todos os outros elementos (nome do usuário, título, texto do botão Responder etc.)

E a lista de conteúdos continua como antes:

Anúncio no topo da lista de conteúdos, alinhado com os títulos dos conteúdos

@filipedeschamps
Copy link
Owner

Sensacional @Rafatcb ta ficando tudo muito masssaaaa 😍 Será que os primeiros anúncios vão conseguir aparecer essa semana ainda (considerando a inclusão da tabela de saldo)? 💪

Em paralelo, eu estava tentando bolar uma ideia: no momento que um usuário publica um conteúdo, e possui um anúncio rodando, 100% das vezes isso aparece abaixo do que esse usuário escreveu, como uma espécie de assinatura. Isso era uma mecânica de fóruns das antigas e vejo que pode ser muito útil para trazer retorno a quem cria conteúdo aqui dentro, fora que algumas pessoas estão fazendo isso de forma manual.

O problema é que ao tentar desenhar o layout, não consegui fazer algo legal ainda. A ideia era aparecer o anúncio em uma única linha (cortando o texto se necessário), com uma fonte menor.

Mais para frente tento de novo 🤝

@aprendendofelipe
Copy link
Collaborator

...Será que os primeiros anúncios vão conseguir aparecer essa semana ainda (considerando a inclusão da tabela de saldo)? 💪

Tudo indica que sim  🎉

Em paralelo, eu estava tentando bolar uma ideia: no momento que um usuário publica um conteúdo, e possui um anúncio rodando, 100% das vezes isso aparece abaixo do que esse usuário escreveu, como uma espécie de assinatura. Isso era uma mecânica de fóruns das antigas e vejo que pode ser muito útil para trazer retorno a quem cria conteúdo aqui dentro, fora que algumas pessoas estão fazendo isso de forma manual.

O problema é que ao tentar desenhar o layout, não consegui fazer algo legal ainda. A ideia era aparecer o anúncio em uma única linha (cortando o texto se necessário), com uma fonte menor.

Mais para frente tento de novo 🤝

Então ficariam 2 anúncios seguidos?

Uma alternativa:

Se o autor de um conteúdo possui anúncio publicado, o anúncio que aparece antes dos comentários de qualquer conteúdo desse autor será um anúncio dele mesmo, pelo menos enquanto o anúncio tiver saldo suficiente de TabCash.

Dessa forma não precisa de um outro design, pois será o mesmo desenvolvido nesse PR. E não ficam 2 anúncios seguindos.

O que acham?

@filipedeschamps
Copy link
Owner

Dessa forma não precisa de um outro design, pois será o mesmo desenvolvido nesse PR. E não ficam 2 anúncios seguindos.

O que acham?

Isso! A ideia era não ser dois anúncios, ser 1 apenas, porque considerava o anúncio no topo. De qualquer forma, o layout era diferente para que coubesse em qualquer que fosse o conteúdo, incluindo nas respostas das respostas 🤝

Vamos evoluindo a ideia, tudo para trazer retorno para quem cria conteúdo aqui 💪

@aprendendofelipe
Copy link
Collaborator

incluindo nas respostas das respostas

Legal também!!! Acho uma boa para a fase 2 dessa ideia 🤝

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 17, 2024

Se o autor de um conteúdo possui anúncio publicado, o anúncio que aparece antes dos comentários de qualquer conteúdo desse autor será um anúncio dele mesmo, pelo menos enquanto o anúncio tiver saldo suficiente de TabCash.

Gostei bastante. Isso motiva o autor a criar bons conteúdos no TabNews: tanto que recebam uma boa quantidade de votos positivos, quanto que tenham um bom SEO. Quanto mais visitas o conteúdo dele receber, mais o anúncio dele é visto.

@Rafatcb Rafatcb marked this pull request as ready for review July 17, 2024 22:44
@Rafatcb Rafatcb force-pushed the feat/ui-create-ad branch from 5bf6be2 to cd45e7a Compare July 17, 2024 23:53
@aprendendofelipe aprendendofelipe merged commit 860aba3 into main Jul 17, 2024
7 checks passed
@aprendendofelipe aprendendofelipe deleted the feat/ui-create-ad branch July 17, 2024 23:58
@aprendendofelipe
Copy link
Collaborator

Tudo certo em produção:

🚀🚀🚀

@filipedeschamps
Copy link
Owner

Que sensacional!! E já tem um anúncio rodando 🎉 https://www.tabnews.com.br/filipericardo/agora-e-possivel-usar-seus-tabchash

@filipedeschamps
Copy link
Owner

Em paralelo @Rafatcb não sei se foi a última implementação, mas apareceu um espaço na direita que antes não tinha:

image image

E deletando pelo devtools o novo espaço de anúncio, conserta o problema 🤝

Isto está acontecendo também no meu device.

@aprendendofelipe
Copy link
Collaborator

Em paralelo @Rafatcb não sei se foi a última implementação, mas apareceu um espaço na direita que antes não tinha:

@Rafatcb, deve ser a combinação de width: 100% com a margin-left: 32px no aside que faz a tela esticar para mais do que 100% da largura.

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 18, 2024

Fiz alguns testes com width: 'auto' e resolveu, vou subir a alteração.

Edit: é possível até tirar o width.

@aprendendofelipe
Copy link
Collaborator

Fiz alguns testes com width: 'auto' e resolveu, vou subir a alteração.

Edit: é possível até tirar o width.

Nos dois casos deve dar problema com o overflow

@Rafatcb
Copy link
Collaborator Author

Rafatcb commented Jul 18, 2024

@aprendendofelipe tem algum exemplo? Nos testes que fiz, funcionaram corretamente, coloquei as prints no PR #1753

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
front Envolve modificações no frontend novo recurso Nova funcionalidade/recurso
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants