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.