Uma Ferramenta de Dashboard com APIs de Pássaros
·

Principais Conclusões
APIs do Bird podem ser combinados com Python e Plotly Dash para construir painéis interativos poderosos sem precisar da interface completa do Bird.
O projeto demonstra como visualizar métricas e eventos usando a API de Métricas e a API de Eventos do Bird dentro de um aplicativo web personalizado.
Plotly Dash fornece um framework rápido e de código aberto para construção de elementos de UI como dropdowns, gráficos e tabelas.
Desenvolvedores podem estender a ferramenta com análises de entregabilidade, filtragem e paginação para painéis mais ricos.
Melhorias futuras incluem caching, melhoria da UI e integração com outros produtos do Bird ou APIs de terceiros.
A base de código (disponível no GitHub) oferece um forte ponto de partida para quem deseja construir painéis impulsionados pelo Bird ou portais voltados para o cliente.
Destaques de Perguntas e Respostas
Qual é o objetivo deste projeto de dashboard?
Ele demonstra como os desenvolvedores podem usar as APIs do Bird com Python e Plotly Dash para criar painéis orientados a dados que visualizam métricas de campanhas e eventos recentes.
Por que usar o Plotly Dash para APIs de Aves?
Dash é um software de código aberto, fácil de personalizar e ideal para criar interfaces interativas sem exigir conhecimento em front-end.
O que o painel exibe?
Ele visualiza métricas de séries temporais da API de Métricas do Bird e dados de eventos recentes da API de Eventos, com opções para filtrar e selecionar métricas em intervalos de tempo personalizados.
Como a ferramenta pode ser expandida ainda mais?
Adicionando análises de entregabilidade, filtros avançados, cache de dados e paginação para grandes conjuntos de dados para melhorar o desempenho e a usabilidade.
Quais habilidades ou ferramentas são necessárias para executá-lo?
Conhecimento básico de Python e instalação de requests, dash e pandas. Uma chave de API da Bird é necessária para puxar dados.
Como este projeto se encaixa no ecossistema da Bird?
Ele ilustra como as APIs abertas da Bird podem ser aproveitadas para criar painéis personalizados e ferramentas de relatório para equipes ou clientes sem acesso à plataforma completa.
Este script apenas toca na superfície do que é possível utilizando Python, Plotly Dash e nossas APIs.
API de Métricas de Pássaros + Painéis com Python
Quase um ano atrás, Tom Mairs, diretor de sucesso do cliente da Bird, escreveu uma ferramenta de mala direta utilizando as APIs da Bird. Neste post, eu dou continuidade ao que ele deixou. Sua ferramenta permite a transmissão programada de tarefas, mas e se quisermos criar nossos próprios painéis e registros de eventos?
Talvez eu queira criar um painel específico para um grupo de negócios ou um painel voltado para clientes, mas não fornecer acesso total aos usuários à UI da Bird. Este script apenas toca na superfície do que é possível usar Python, Plotly Dash e nossas APIs. Ao construir painéis que processam dados de API de alto volume, esteja ciente de que componentes de infraestrutura como DNS podem se tornar gargalos - nós experimentamos desafios de escalonamento do DNS da AWS que afetaram nossas capacidades de processamento de dados. Para entusiastas de fluxos de trabalho visuais, você também pode explorar a integração do Flow Builder com Google Cloud Functions e a API de Visão para adicionar automação alimentada por IA às suas pipelines de processamento de dados.
Ao começar minha busca online, eu queria encontrar o caminho de menor resistência. Eu poderia ter criado todos os painéis e UI eu mesmo em HTML e Python, no entanto, após algumas pesquisas no Google, encontrei o Dash da Plotly, que se integra facilmente ao Python. Eu escolhi o Dash por 2 razões: 1) é código aberto, e 2) depois de ler a documentação, parecia facilmente personalizável para o que eu estava tentando fazer. Dash é uma biblioteca de código aberto que é ideal para construir e implantar aplicativos de dados com interfaces de usuário personalizadas. Isso tornou a criação de uma UI extremamente simples. A pergunta então se tornou: quão complexa eu queria fazer esse aplicativo? Quanto mais tempo eu passava, mais recursos eu queria adicionar.
Para o projeto inicial, eu queria garantir que tivesse um painel com métricas personalizáveis e um intervalo de tempo selecionável. Inicialmente, comecei com um painel onde você podia escolher apenas uma métrica no menu suspenso. Então, à medida que recebi feedback dos colegas, refinei o painel um pouco para adicionar seleção múltipla e títulos de eixos. Também decidi adicionar uma aba adicional para um log de eventos. Cheguei ao ponto em que fiquei satisfeito com o que tinha como um bom ponto de partida para qualquer um que deseje construir seus próprios painéis. Para desenvolvedores que desejam alimentar dados de webhook em tempo real em seus painéis, confira nosso guia sobre construindo consumidores de webhook com Azure Functions. Claro, eu coloquei o projeto no Github para você clonar ou ramificar.
Começando
Para acessar este aplicativo, você precisará garantir que está executando o Python 3.10 ou superior e instalar as seguintes bibliotecas:
Biblioteca Python | Propósito |
|---|---|
requests | Comunicação API com os serviços Bird |
dash | Renderização da IU e do painel |
pandas | Processamento de dados e geração de tabelas |
Em seguida, insira sua chave de API em App.py e execute o aplicativo. Ele será executado em http://localhost:8050. Para mais informações sobre como implantar isso em um servidor voltado para o público (como AWS), consulte os seguintes recursos:
Criando a Página do Painel
Criando a Página de Detalhes do Evento
Próximos Passos
Para quem está procurando criar seu próprio painel ou registro de eventos, este é um bom começo. Com a personalização aqui, o céu é o limite.
Como discutido acima, algumas melhorias futuras que poderiam ser feitas são:
Adicionar análises de entregabilidade ao painel
Adicionar mais filtros ao painel
Possíveis opções de cache para que a API não seja chamada toda vez para exibir as páginas
Melhorias na interface do usuário
Adicionar filtragem e paginação à página de detalhes do evento
Eu estaria interessado em ouvir qualquer feedback ou sugestões para expandir este projeto.
~ Zach Samuels, Engenheiro de Soluções Sênior da Bird





