Analitik
Sosyal medya hesaplarınızın ve gönderilerinizin performans metriklerine programatik erişin.
Sandbox modunda (sk_test_ anahtarı) tüm analitik endpoint’leri statik örnek veriler döner.
Genel Bakış
GET/v1/analytics/overview
Belirli bir tarih aralığında tüm hesaplarınızın toplu metriklerini ve platform bazlı dağılımını döner.
Query Parametreleri
| Parametre | Tip | Varsayılan | Açıklama |
|---|---|---|---|
accountId | string | — | Belirli bir hesap filtresi |
platform | string | — | Platform filtresi (instagram vb.) |
startDate | string | 30 gün önce | ISO 8601 başlangıç tarihi |
endDate | string | Şimdi | ISO 8601 bitiş tarihi |
Kod Örnekleri
Node.js
analytics-overview.js
const params = new URLSearchParams({
startDate: '2025-06-01T00:00:00Z',
endDate: '2025-06-30T23:59:59Z',
})
const response = await fetch(
`https://api.sosyalkopru.com/v1/analytics/overview?${params}`,
{ headers: { 'Authorization': `Bearer ${process.env.SOSYALKOPRU_API_KEY}` } }
)
const { data } = await response.json()
console.log(`Toplam gönderi : ${data.totalPublished}`)
console.log(`Toplam gösterim : ${data.totalImpressions.toLocaleString('tr-TR')}`)
console.log(`Toplam erişim : ${data.totalReach.toLocaleString('tr-TR')}`)
console.log(`Etkileşim oranı : %${data.avgEngagementRate.toFixed(2)}`)
console.log('\nPlatform dağılımı:')
data.platformBreakdown.forEach(p => {
console.log(` ${p.platform}: ${p.totalPosts} gönderi, %${p.avgEngagementRate.toFixed(2)} etkileşim`)
})Başarılı Yanıt
{
"success": true,
"data": {
"totalPosts": 62,
"totalPublished": 58,
"totalFailed": 4,
"totalImpressions": 124500,
"totalLikes": 5280,
"totalComments": 741,
"totalShares": 392,
"totalReach": 98400,
"totalSaves": 1240,
"avgEngagementRate": 5.16,
"platformBreakdown": [
{
"platform": "instagram",
"totalPosts": 24,
"totalImpressions": 68200,
"totalLikes": 3100,
"avgEngagementRate": 6.82
},
{
"platform": "linkedin",
"totalPosts": 18,
"totalImpressions": 32400,
"totalLikes": 1450,
"avgEngagementRate": 4.21
}
],
"period": {
"startDate": "2025-06-01T00:00:00.000Z",
"endDate": "2025-06-30T23:59:59.000Z"
}
},
"meta": { "requestId": "req_01XYZ", "timestamp": "...", "version": "1" }
}Metrik Açıklamaları
| Metrik | Açıklama |
|---|---|
totalPublished | Başarıyla yayınlanan gönderi sayısı |
totalFailed | Yayınlanamayan gönderi sayısı |
totalImpressions | Toplam gösterim sayısı |
totalReach | Toplam tekil kullanıcı erişimi |
totalSaves | Toplam kaydetme sayısı (Instagram, LinkedIn) |
avgEngagementRate | (beğeni + yorum + paylaşım) / gösterim × 100 |
Gönderi Metrikleri
GET/v1/analytics/posts
Yayınlanan gönderilerin tek tek performans verilerini sayfalandırılmış olarak döner.
Query Parametreleri
| Parametre | Tip | Varsayılan | Açıklama |
|---|---|---|---|
page | integer | 1 | Sayfa numarası |
perPage | integer | 20 | Sayfa başına kayıt (maks: 100) |
accountId | string | — | Hesap filtresi |
platform | string | — | Platform filtresi |
startDate | string | 30 gün önce | ISO 8601 başlangıç tarihi |
endDate | string | Şimdi | ISO 8601 bitiş tarihi |
sortBy | string | publishedAt | Sıralama: publishedAt engagementRate impressions likes |
sortOrder | string | desc | asc veya desc |
Kod Örnekleri
Node.js
analytics-posts.js
// En yüksek etkileşim oranına göre sırala
const params = new URLSearchParams({
page: '1',
perPage: '10',
sortBy: 'engagementRate',
sortOrder: 'desc',
startDate: '2025-06-01T00:00:00Z',
})
const response = await fetch(
`https://api.sosyalkopru.com/v1/analytics/posts?${params}`,
{ headers: { 'Authorization': `Bearer ${process.env.SOSYALKOPRU_API_KEY}` } }
)
const { data } = await response.json()
data.forEach(post => {
console.log(`${post.postId} ER: %${post.engagementRate.toFixed(2)} Gösterim: ${post.impressions}`)
})Başarılı Yanıt
{
"success": true,
"data": [
{
"postId": "post_01HZGK9P3QABC",
"platform": "instagram",
"impressions": 8420,
"likes": 634,
"comments": 87,
"shares": 52,
"reach": 7300,
"saves": 148,
"engagementRate": 9.18,
"publishedAt": "2025-06-08T10:00:00.000Z"
}
],
"meta": { "requestId": "req_01XYZ", "timestamp": "...", "version": "1" },
"pagination": {
"page": 1,
"perPage": 10,
"total": 58,
"totalPages": 6,
"hasNextPage": true,
"hasPrevPage": false
}
}Hesap Analitikleri
GET/v1/analytics/accounts/{id}
Belirli bir hesabın zaman serisi metriklerini ve özet istatistiklerini döner.
Path Parametresi
| Parametre | Açıklama |
|---|---|
id | Hesap ID’si (acc_...) |
Query Parametreleri
| Parametre | Tip | Varsayılan | Açıklama |
|---|---|---|---|
startDate | string | 30 gün önce | ISO 8601 başlangıç tarihi |
endDate | string | Şimdi | ISO 8601 bitiş tarihi |
granularity | string | day | day veya week |
Kod Örnekleri
Node.js
analytics-account.js
const accountId = 'acc_01HZGK9P3QABC'
const params = new URLSearchParams({
startDate: '2025-06-01T00:00:00Z',
endDate: '2025-06-30T23:59:59Z',
granularity: 'week',
})
const response = await fetch(
`https://api.sosyalkopru.com/v1/analytics/accounts/${accountId}?${params}`,
{ headers: { 'Authorization': `Bearer ${process.env.SOSYALKOPRU_API_KEY}` } }
)
const { data } = await response.json()
console.log(`Hesap: @${data.username} (${data.platform})`)
console.log(`Takipçi: ${data.summary.followerCount.toLocaleString('tr-TR')}`)
console.log(`\nHaftalık etkileşim trendi:`)
data.timeline.forEach(t => {
console.log(` ${t.date}: ${t.impressions} gösterim, %${t.engagementRate.toFixed(2)} ER`)
})Başarılı Yanıt
{
"success": true,
"data": {
"accountId": "acc_01HZGK9P3QABC",
"platform": "instagram",
"username": "@sosyalkopru",
"summary": {
"followerCount": 14820,
"totalPosts": 24,
"totalImpressions": 68200,
"totalLikes": 3100,
"totalComments": 412,
"totalShares": 218,
"avgEngagementRate": 6.82
},
"timeline": [
{
"date": "2025-06-02",
"impressions": 12400,
"likes": 560,
"comments": 74,
"shares": 38,
"engagementRate": 5.42
},
{
"date": "2025-06-09",
"impressions": 18600,
"likes": 920,
"comments": 142,
"shares": 76,
"engagementRate": 6.11
}
],
"period": {
"startDate": "2025-06-01T00:00:00.000Z",
"endDate": "2025-06-30T23:59:59.000Z"
}
},
"meta": { "requestId": "req_01XYZ", "timestamp": "...", "version": "1" }
}Last updated on