Este projeto é um sistema de exibição de anúncios personalizados com base nas preferências dos usuários, processadas em tempo real e sem a complexidade de leilões e bidding. O servidor recebe uma solicitação de um cliente, filtra anúncios com base no perfil do usuário e escolhe um anúncio relevante para exibição. Esse tipo de sistema é ideal para pequenas redes de publicidade ou sites que desejam mostrar anúncios relevantes sem a necessidade de um sistema de leilões complexo.
- Um cliente (site ou app) envia uma requisição ao servidor, incluindo o ID do usuário e informações adicionais (ex: categoria de interesse, localização).
- O servidor mantém um banco de dados de anúncios classificados em categorias, como "tecnologia", "moda", "esportes" etc.
- Com base nas preferências do usuário ou nas informações enviadas, o servidor seleciona um anúncio da categoria correspondente.
- Para evitar repetição excessiva de anúncios, o servidor implementa um sistema de rotação, exibindo um anúncio diferente a cada nova solicitação.
- O servidor responde rapidamente ao cliente, enviando o anúncio mais relevante para exibição na interface do usuário.
- Implementação de um sistema básico de contagem de impressões e cliques, para monitorar quantas vezes um anúncio foi exibido e quantos cliques ele recebeu.
- O servidor de anúncios é construído em Go, utilizando frameworks como Gin ou Echo para o servidor HTTP.
- SQLite é utilizado para armazenar dados dos anúncios e preferências dos usuários devido ao pequeno volume de dados.
- Redis pode ser uma opção adicional para cache rápido das preferências e anúncios disponíveis.
- Dados fictícios de usuários e anúncios categorizados são gerados para teste, sem a necessidade de integrações com DSPs ou ad-exchanges.
- Armazena anúncios em uma tabela com campos como
id,categoria,conteúdoeimpressões, para monitorar o número de exibições.
- Armazena preferências de usuários com campos como
id,nome,categoria_preferida, para filtrar anúncios de acordo com os dados de cada usuário.
- Com base nas preferências, o servidor escolhe um anúncio da categoria correspondente. Em caso de ausência de preferência, a seleção pode ser feita de forma aleatória ou por rotação.
- Implementação de contagem simples de quantas vezes cada anúncio foi exibido e quantos cliques foram registrados.
- Clone o repositório.
- Instale as dependências do Go.
- Configure o banco de dados (SQLite ou Redis).
- Inicie o servidor e faça solicitações para o endpoint de anúncios.
Contribuições são bem-vindas! Sinta-se à vontade para enviar pull requests com melhorias, correções de bugs ou novas funcionalidades.
Este projeto é distribuído sob a licença MIT.