Produtos que analisam presença digital em múltiplas redes (Instagram, TikTok, YouTube) esbarram num problema comum: cada plataforma nomeia e estrutura os mesmos conceitos de formas diferentes.
O problema sem normalização
Instagram chama de followers, outra fonte pode chamar de subscriber_count — sem um modelo comum, seu código de análise precisa de tratamento condicional específico pra cada fonte, espalhado por toda a aplicação.
Um modelo normalizado simples
class PerfilSocial:
def __init__(self, rede, username, seguidores, posts, engajamento_medio):
self.rede = rede # "instagram", "tiktok", etc.
self.username = username
self.seguidores = seguidores
self.posts = posts
self.engajamento_medio = engajamento_medio
Adapters por fonte
def normalizar_instagram(dados_brutos):
return PerfilSocial(
rede="instagram",
username=dados_brutos["username"],
seguidores=dados_brutos["followers"],
posts=dados_brutos["posts_count"],
engajamento_medio=calcular_engajamento(dados_brutos),
)
Benefício direto
Com esse modelo, o restante do sistema (dashboards, relatórios, alertas) trabalha só com PerfilSocial, sem nunca precisar saber de qual rede o dado veio originalmente — facilita adicionar uma rede nova no futuro sem reescrever a camada de análise.