Gönderi İstatistikleri
Endpoint
GET /api/v1/analytics/posts/:idVerilen gönderi için kanal başına en son post_stats snapshot'ını döner — artı platformun fetched_at serisinin birden fazla girişi varsa geçmiş snapshot'lar.
Şema
post_stats koleksiyonu kanonik etkileşim deposudur. Snapshot başına alanlar:
{
post_id: ObjectId, // → Posts
account_id: ObjectId, // → Accounts (kanal)
social_network: string, // "x", "instagram", ...
post_social_id: string, // platform-tarafı gönderi id
status: number,
impressions: number,
likes: number,
comments: number,
shares: number,
reach: number,
engagement_rate: number,
fetched_at: Date,
message?: string, // status başarısızlığı belirtirse platform hatası
// category, type, module, labels, campaign — üst gönderiden kopyalanır
}{ post_id: 1, fetched_at: -1 } ve { account_id: 1, fetched_at: -1 } index'leri hem gönderi-başı hem kanal-başı zaman çizelgelerini hızlı tutar.
Sync kadansı
Yayın akışı, bir gönderi gönderildiği anda bir snapshot yazar. Zamanlanmış bir istatistik-yenileme işi her public gönderiyi sonraki 24 saat içinde yeniden çeker, böylece etkileşim son bir değere yerleşir. Kadans platforma göre değişir — kotalar ve rate limit'ler Sosyabot'un ne kadar sık polling yapabileceğini belirler.
Etkileşim oranı
engagement_rate, yazma anında reach (veya platform reach dönmezse impressions) yüzdesi olarak hesaplanır. Farklı kitle boyutlarına sahip kanalları karşılaştırırken birincil normalize edilmiş KPI olarak kullan.