Panduan Developer

TikTok LIVE API Analitik

Lacak jumlah penonton, pendapatan hadiah, volume chat, dan metrik engagement secara real-time untuk siaran TikTok LIVE mana pun. Bikin dasbor, sistem notifikasi, dan tools analitik.

Data Analitik Apa Saja yang Tersedia?

TikTok tidak menyediakan API analitik publik untuk siaran LIVE. API TikTools mengisi kekosongan ini dengan mengirim setiap event siaran secara real-time lewat WebSocket. Kamu bisa menghitung metrik apa pun dari event mentah ini:

  • Jumlah penonton - update jumlah penonton real-time setiap beberapa detik
  • Pendapatan hadiah - setiap event hadiah berisi nilai berlian (1 berlian ≈ $0,005)
  • Volume chat - pesan per menit, jumlah pengirim chat unik, frekuensi kata kunci
  • Tingkat engagement - like, share, follow per periode waktu
  • Puncak penonton - lacak angka tertinggi sepanjang sesi
  • Leaderboard hadiah - pendukung teratas diurutkan menurut total berlian yang dihabiskan

Mulai Cepat: Data Dasbor Real-Time

Contoh ini mengumpulkan semua data analitik secara real-time. Pasang ke framework frontend apa pun atau simpan ke database:

import { TikTokLive } from '@tiktool/live'

const client = new TikTokLive({
  uniqueId: 'target_username',
  apiKey: process.env.TIKTOOL_API_KEY
})

// ── Analytics State ──
const stats = {
  viewerCount: 0,
  peakViewers: 0,
  totalMessages: 0,
  totalGifts: 0,
  totalDiamonds: 0,
  totalLikes: 0,
  totalFollows: 0,
  totalShares: 0,
  uniqueChatters: new Set(),
  giftLeaderboard: new Map(),
  startTime: Date.now()
}

// Viewer count tracking
client.on('viewer_count', (event) => {
  stats.viewerCount = event.viewerCount
  if (event.viewerCount > stats.peakViewers) {
    stats.peakViewers = event.viewerCount
  }
})

// Chat analytics
client.on('chat', (event) => {
  stats.totalMessages++
  stats.uniqueChatters.add(event.userId)
})

// Gift revenue tracking
client.on('gift', (event) => {
  stats.totalGifts++
  stats.totalDiamonds += event.diamondCount

  const current = stats.giftLeaderboard.get(event.nickname) || 0
  stats.giftLeaderboard.set(event.nickname, current + event.diamondCount)
})

// Engagement tracking
client.on('like', (event) => {
  stats.totalLikes = event.totalLikeCount
})

client.on('follow', () => { stats.totalFollows++ })
client.on('share', () => { stats.totalShares++ })

await client.connect()
console.log('📊 Analytics tracking started!')

// Print summary every 60 seconds
setInterval(() => {
  const minutes = (Date.now() - stats.startTime) / 60000
  const revenue = (stats.totalDiamonds * 0.005).toFixed(2)

  console.log('\n── Stream Analytics ──')
  console.log(`Viewers: ${stats.viewerCount} (peak: ${stats.peakViewers})`)
  console.log(`Messages: ${stats.totalMessages} (${(stats.totalMessages / minutes).toFixed(1)}/min)`)
  console.log(`Unique chatters: ${stats.uniqueChatters.size}`)
  console.log(`Gifts: ${stats.totalGifts} (${stats.totalDiamonds} 💎 ≈ $${revenue})`)
  console.log(`Likes: ${stats.totalLikes} | Follows: ${stats.totalFollows} | Shares: ${stats.totalShares}`)
}, 60000)

Output yang Diharapkan

📊 Analytics tracking started!

── Stream Analytics ──
Viewers: 2,347 (peak: 3,891)
Messages: 487 (81.2/min)
Unique chatters: 203
Gifts: 34 (12,450 💎 ≈ $62.25)
Likes: 45,230 | Follows: 89 | Shares: 23

Simpan ke Database

Simpan event di PostgreSQL, MongoDB, atau database apa pun untuk analisis historis:

import { TikTokLive } from '@tiktool/live'

// Example: save to PostgreSQL with Prisma
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()

const client = new TikTokLive({
  uniqueId: 'target_username',
  apiKey: process.env.TIKTOOL_API_KEY
})

client.on('gift', async (event) => {
  await prisma.giftEvent.create({
    data: {
      streamer: 'target_username',
      senderNickname: event.nickname,
      senderUserId: event.userId,
      giftName: event.giftName,
      diamondCount: event.diamondCount,
      repeatCount: event.repeatCount,
      timestamp: new Date()
    }
  })
})

client.on('viewer_count', async (event) => {
  await prisma.viewerSnapshot.create({
    data: {
      streamer: 'target_username',
      viewerCount: event.viewerCount,
      timestamp: new Date()
    }
  })
})

await client.connect()
console.log('💾 Saving events to database...')

WebSocket Langsung (Bahasa Apa Pun)

Bikin analitik di Python, Go, Rust, atau bahasa apa pun yang mendukung WebSocket:

# Python example using websockets library
import asyncio, json, websockets

async def track_analytics():
    url = "wss://api.tik.tools?uniqueId=target_username&apiKey=YOUR_API_KEY"

    async with websockets.connect(url) as ws:
        total_diamonds = 0
        peak_viewers = 0

        async for raw in ws:
            msg = json.loads(raw)

            if msg["event"] == "viewer_count":
                viewers = msg["data"]["viewerCount"]
                peak_viewers = max(peak_viewers, viewers)
                print(f"Viewers: {viewers} (peak: {peak_viewers})")

            elif msg["event"] == "gift":
                diamonds = msg["data"]["diamondCount"]
                total_diamonds += diamonds
                revenue = total_diamonds * 0.005
                print(f"Gift revenue: {total_diamonds} 💎 (${revenue:.2f})")

asyncio.run(track_analytics())

FAQ

Apakah TikTok punya API analitik resmi untuk siaran LIVE?

Tidak. TikTok menyediakan analitik di dalam aplikasi lewat LIVE Center untuk kreator, tapi tidak ada API publik untuk mengakses data ini secara terprogram. API TikTools mengirim event mentah secara real-time yang bisa kamu pakai untuk bikin analitik sendiri.

Bisakah saya melacak beberapa siaran sekaligus?

Bisa. Buat beberapa client TikTokLive - satu per siaran. Paket Pro mendukung hingga 50 koneksi WebSocket bersamaan.

Seberapa akurat jumlah penontonnya?

Jumlah penonton diambil langsung dari data internal TikTok dan diperbarui setiap beberapa detik. Angkanya sama dengan yang ditampilkan di aplikasi TikTok.