---
id: agencias/redes-sociais-organicas
industria: Agências de marketing
uso: muito usado
esforco: médio
grao: Post (ranking) e perfil x dia (conta), consolidado em semana e mês
---

# Redes sociais orgânicas

Alcance, engajamento, melhores posts e seguidores de cada cliente, com o histórico que a API não guarda e a mesma régua em todas as redes.

## Resumo executivo

**Para quem:** Agências que entregam social media e precisam reportar o crescimento orgânico de cada cliente.

**O que resolve**

- O alcance e o engajamento do relatório batem com o que o cliente vê no app.
- O histórico de seguidores existe mesmo depois que a API só mostra o número de hoje.
- O melhor post do mês sai da mesma régua em todas as redes, sem post de vaga ou anúncio no meio.

**Por que importa:** O relatório de redes é o entregável mais visível de uma agência de conteúdo e o primeiro a ser contestado. As APIs mudam métrica sem aviso, não guardam seguidores do passado e cada rede chama alcance de um jeito. Sem uma régua fixa por cliente, o número muda de um mês para outro por motivo técnico e a reunião vira explicação de planilha.

**Perguntas de negócio que responde**

- Qual foi o melhor post do mês de cada cliente, e por quê?
- Quantos seguidores o cliente ganhou no mês, por rede?
- O engajamento de setembro foi melhor que o de agosto?
- Reels, carrossel ou estático: o que funciona para este cliente?
- Quantos posts publicamos por cliente contra o contratado?

**O que você precisa**

- Instagram, LinkedIn, Facebook Pages e TikTok conectados por perfil de cliente
- Um retrato diário de seguidores e perfil gravado desde o primeiro dia
- A régua combinada com cada cliente: alcance ou visualizações, e o que entra no ranking

**O que você recebe**

- Uma tabela por post com formato, alcance, visualizações, interações e taxa de engajamento
- Uma série diária por perfil com seguidores, ganhos e alcance
- Big numbers do mês contra o mês anterior, na mesma régua
- Um agente de IA que responde sobre orgânico sem misturar com mídia paga

## Detalhado

### O problema

Cada rede entrega o orgânico de um jeito: o Instagram trocou impressões por visualizações, o LinkedIn chama alcance de impressões únicas e o TikTok não tem alcance. Seguidores e dados de perfil são só o número de hoje, então quem não gravou o histórico não consegue dizer quantos seguidores o cliente ganhou em março. E quem soma o alcance diário entrega um número maior que o real, que o cliente não reconhece no app.

### Regras de negócio

1. **Alcance não se soma.** Alcance conta pessoas únicas. Somar o alcance de vários dias ou de vários posts conta a mesma pessoa mais de uma vez. Para o mês, use o alcance de 28 dias que a própria rede deduplica (instagram_insights_rolling_days28 no último dia) ou mostre alcance por post. Interações, curtidas, comentários e visualizações se somam. (Evite: Somar o reach diário do mês.)
2. **Uma régua por rede, declarada.** Escolha com o cliente a métrica de cobertura e mantenha. No Instagram, a API descontinuou impressions em abril de 2025 e passou a entregar views. No LinkedIn não existe views de post: a aproximação é impressionCount, com uniqueImpressionsCount como alcance. Grave numa coluna qual campo de origem gerou cada número. (Evite: Comparar views do Instagram com alcance do LinkedIn no mesmo gráfico sem avisar.)
3. **Seguidores é retrato, não soma.** Seguidores é o valor no último dia do período. Ganho de seguidores é o fim menos o fim do período anterior, ou a soma dos ganhos diários quando a rede entrega (no LinkedIn, followerGains orgânico mais pago). Repetir o número mais recente em todas as linhas do passado cria um histórico plano que não existiu. (Evite: Usar o followers_count de hoje em todos os meses.)
4. **Grave o retrato diário desde já.** Perfil, seguidores e métricas acumuladas de vídeos e de página são só o estado atual. Grave uma linha por perfil e por dia depois de cada sincronização, com data de referência igual ao dia anterior no fuso do cliente e gravação idempotente (rodar duas vezes no mesmo dia atualiza a mesma linha). Nunca sobrescreva a tabela de histórico. (Evite: Depender da API para mostrar seguidores de meses passados.)
5. **Post pertence ao mês de publicação.** Métricas de post (media_insights, post_statistics) são acumuladas na vida do post e seguem crescendo depois do mês. No ranking e na contagem de posts, o post fica no mês em que foi publicado, e o relatório diz até que data as métricas foram lidas. Métrica diária da conta (insights_rolling_day) fica no dia do insight. (Evite: Misturar o total do post com o total diário da conta no mesmo número.)
6. **Formato sai de dois campos.** No Instagram, media_type sozinho não separa Reels: VIDEO com media_product_type REELS é Reels, CAROUSEL_ALBUM é Carrossel, IMAGE é Estático e STORY é Story. Stories duram 24 horas e têm métricas próprias: ficam fora do ranking e da meta de posts, com contagem à parte. (Evite: Classificar todo VIDEO como Reels e somar Stories aos posts.)
7. **Ranking só com conteúdo de marca.** Tire do ranking posts de vaga e recrutamento, posts sem estatística orgânica (dark posts e variações de anúncio no LinkedIn) e conteúdo impulsionado quando a régua for orgânica. Interação por mil seguidores (interações / seguidores do fim do período x 1000) compara posts de perfis de tamanhos diferentes. (Evite: Ranquear tudo que a API devolve por impressões.)
8. **Taxa de engajamento recalculada.** Taxa de engajamento = interações / alcance, ou / visualizações se essa for a régua do cliente, calculada das somas do período e nunca como média das taxas diárias ou dos posts. O TikTok não entrega alcance nem salvos: lá a taxa é (curtidas + comentários + compartilhamentos) / visualizações, e o relatório avisa que a régua é outra. (Evite: Tirar a média da taxa de cada post.)
9. **Orgânico não vem de anúncio.** Alcance e engajamento de perfil não existem nas tabelas de Meta Ads, que são mídia paga. Se o perfil do cliente não está conectado, a resposta é que não há dado orgânico, e não um número tirado do Facebook Ads. Peça produzida também não é peça publicada. (Evite: Responder alcance do perfil com o reach dos anúncios.)
10. **Junção que não perde dia.** Insights diários e contagem de seguidores sincronizam em horários diferentes e um atrasa o outro. Junte as duas séries por dia mantendo os dias de ambas (FULL OUTER JOIN), senão o dia mais recente some do gráfico. (Evite: Junção simples entre insights e seguidores.)

### Régua por rede

O campo que responde cada métrica, por rede. Declare no contexto do cliente qual é a régua oficial.

- **Instagram · post** → Alcance (`media_insights.reach`)
- **Instagram · conta, mês** → Alcance deduplicado (`insights_rolling_days28.reach`)
- **Instagram · post** → Visualizações (substitui impressions) (`media_insights.views`)
- **Instagram · formato** → Reels, Carrossel, Estático, Story (`media_type + media_product_type`)
- **LinkedIn · post e página** → Impressões (`totalShareStatistics.impressionCount`)
- **LinkedIn · post e página** → Alcance (`totalShareStatistics.uniqueImpressionsCount`)
- **LinkedIn · dia** → Seguidores ganhos (`followerGains.organicFollowerGain + paidFollowerGain`)
- **LinkedIn · página** → Visualizações da página (`totalPageStatistics.views.allPageViews.pageViews`)
- **TikTok · vídeo** → Engajamento sobre visualizações (`(like + comment + share) / view_count`)
- **Facebook Pages · dia** → Impressões orgânicas (`page_posts_impressions_organic`)

### Definições

| Métrica | Definição |
|---|---|
| Alcance do mês | Instagram: alcance de 28 dias da conta no último dia do mês; LinkedIn: impressões únicas da página no mês; nunca soma de alcance diário |
| Visualizações | Instagram: views; LinkedIn: impressionCount; TikTok: view_count; soma no período |
| Interações | Instagram: total_interactions; LinkedIn: curtidas + comentários + compartilhamentos + cliques; soma no período |
| Taxa de engajamento | soma das interações / soma da base declarada (alcance ou visualizações), no mesmo período e no mesmo conjunto de posts |
| Seguidores | valor do retrato no último dia do período, por perfil |
| Seguidores ganhos | seguidores no fim do período menos seguidores no fim do período anterior, ou soma dos ganhos diários quando a rede entrega |
| Interação por mil seguidores | interações do post / seguidores do perfil no fim do período x 1000 |
| Posts publicados | posts com data de publicação no período (no LinkedIn, lifecycleState = PUBLISHED); Stories contados à parte |

### Armadilhas

- **Alcance que o cliente não reconhece.** Somar o reach diário do mês dava um alcance bem acima do que o app mostrava, porque a mesma pessoa era contada em vários dias. Como evitar: Use o alcance de 28 dias da rede ou o alcance por post.
- **Impressões que sumiram.** Depois de abril de 2025 o campo impressions do Instagram parou de vir e o relatório passou a mostrar zero, como se o perfil tivesse parado. Como evitar: Troque para views e registre a data da mudança no contexto.
- **Seguidores sem passado.** A tabela guardava só o total de hoje, repetido em todas as linhas. O gráfico de evolução saiu plano e o ganho do mês, zero. Como evitar: Retrato diário em append desde o primeiro dia.
- **Vaga no topo do ranking.** Posts de recrutamento impulsionados pelo RH lideravam o ranking de impressões no LinkedIn e escondiam o conteúdo de marca. Como evitar: Filtro de vaga e de post sem estatística orgânica.
- **Zero linhas no LinkedIn.** Filtrar o agregado da página com share = '' devolvia zero linhas, porque o campo vem nulo e não vazio. Abrir por país com pageStatisticsByGeoCountry também zerava meses em que o array vinha vazio. Como evitar: Teste nulo e vazio juntos e use os totais de totalPageStatistics.
- **Último dia faltando.** Insights e seguidores sincronizavam em horários diferentes e a junção simples derrubava o dia mais recente. Como evitar: Junção que preserva os dias das duas séries.

Validado em dados reais: No Instagram da própria Nekt, a soma do alcance diário em 28 dias ficou entre 1,6 e 1,9 vez o alcance de 28 dias que a própria rede deduplica, em três janelas diferentes. Quem soma o reach diário reporta quase o dobro de pessoas alcançadas.

### Teste de aceitação

- [ ] Para um perfil e um mês fechado, visualizações e interações batem com o painel nativo da rede ou com a ferramenta de relatório do cliente (diferença abaixo de 2%).
- [ ] Nenhum alcance mensal é soma de alcance diário: o alcance do mês é igual ao alcance de 28 dias da rede no último dia.
- [ ] Seguidores no fim de cada mês vêm do retrato daquele dia, e fim do mês menos fim do mês anterior é igual aos seguidores ganhos.
- [ ] Stories não aparecem no ranking, e a soma de posts por formato é igual ao total de posts publicados.
- [ ] A tabela de posts tem uma linha por post e por rede.

### Context document

```text
Redes sociais orgânicas
- Fonte orgânica é a do perfil (Instagram, Facebook Pages, LinkedIn orgânico, TikTok). Tabelas de Meta Ads são mídia paga e nunca respondem alcance ou engajamento de perfil. Sem fonte orgânica do cliente, diga que não há dado.
- Alcance não se soma entre dias nem entre posts. Alcance do mês = alcance de 28 dias da rede no último dia, ou alcance por post.
- Régua de cobertura por rede: Instagram = views (impressions foi descontinuado em abril de 2025); LinkedIn = impressionCount, com uniqueImpressionsCount como alcance; TikTok = view_count.
- Taxa de engajamento = soma das interações / soma da base declarada do cliente, no mesmo período. TikTok não tem alcance nem salvos.
- Seguidores = valor do retrato do último dia do período. Seguidores ganhos = fim menos fim do período anterior.
- Post pertence ao mês de publicação; as métricas de post são acumuladas até a data da leitura, que deve ser informada.
- Formato no Instagram: media_type + media_product_type. Stories ficam fora do ranking de posts.
- O ranking exclui posts de vaga e recrutamento e posts sem estatística orgânica.
- No LinkedIn, o agregado da página em daily_share_statistics é a linha com share e ugcPost nulos ou vazios.
Exceções por cliente:
- <cliente>: régua oficial é <visualizações | alcance>; taxa de engajamento sobre <base>.
- <cliente>: Instagram sem conector; números mensais vêm de <ferramenta de relatório>, validados até <mês>.
- <cliente>: posts com <termo> na legenda ficam fora do ranking.
```

### Variações

- **Pilar de conteúdo:** Classifique cada post por pilar a partir de palavras ou hashtags da legenda e compare o engajamento por pilar.
- **Orgânico mais pago:** Custo por seguidor = investimento das campanhas de seguidores / seguidores ganhos na mesma rede e no mesmo dia.
- **Comentários com IA:** Sentimento dos comentários por post, para a seção de saúde da marca do relatório.
