본문으로 건너뛰기

분석 (Watch History 기반)

📌 connectbase-client SDK 에는 getVideoAnalytics / getChannelAnalytics / getAudienceDemographics 같은 별도 분석 메서드가 없습니다.

채널/비디오 통계는 콘솔의 분석 (Analytics) 메뉴에서 확인하거나, 자체 tbl_watch_logs 테이블에 cb.database.createData 로 시청 로그를 누적한 뒤 cb.database.aggregate 로 직접 집계할 수 있습니다.

직접 집계 패턴

⚠️ cb.video.reportWatchProgress 는 백엔드 라우트가 아직 없어 호출하면 404 가 됩니다. 자체 tbl_watch_logs 테이블에 cb.database 로 직접 기록하는 방식이 현재 유일하게 동작하는 길입니다.

typescript
// 1) 자체 시청 로그를 데이터베이스에 누적
videoElement.addEventListener('timeupdate', async () => {
    await cb.database.createData('tbl_watch_logs', {
        data: {
            video_id: videoId,
            member_id: currentMember.member_id,
            watched_seconds: Math.floor(videoElement.currentTime),
        },
    })
})

// 2) 누적 row 예시
await cb.database.createData('tbl_watch_logs', {
    data: {
        video_id: videoId,
        member_id: currentMember.member_id,
        watched_seconds: 30,
        finished: false
    }
})

// 3) 집계 — 비디오별 시청 시간 합계
const stats = await cb.database.aggregate('tbl_watch_logs', [
    { $match: { video_id: videoId } },
    {
        $group: {
            _id: null,
            total_watch_seconds: { $sum: '$watched_seconds' },
            unique_viewers: { $sum: 1 }
        }
    }
])

console.log(stats.data) // 집계 결과 row 들 (서버 응답: { data, execution_time_ms })