API Reference
분석
콘테스트 성과 지표 조회
분석
콘테스트의 성과 지표와 통계를 조회합니다.
콘테스트 분석 조회
GET
/api/v1/contests/:contestId/analytics Public or Private API Key
특정 콘테스트에 대한 집계된 분석 정보를 반환합니다. 여기에는 참가자 수, 조회수, 보너스 액션 완료 수, 포인트 통계가 포함됩니다.
경로 매개변수
contestIdstring required 고유한 콘테스트 식별자
요청
bash
curl -X GET https://blitzrocket.com/api/v1/contests/clx1abc123/analytics \
-H "x-api-key: your_api_key_here"
응답
json
{
"success": true,
"data": {
"totalEntries": 1523,
"confirmedEntries": 1489,
"disqualifiedEntries": 12,
"totalViews": 28450,
"totalBonusCompletions": 4567,
"points": {
"total": 45890,
"average": 30.1,
"highest": 890
}
}
}
응답 필드
totalEntriesnumber콘테스트 참가자 총 수
confirmedEntriesnumber이메일 주소가 확인된 참가자 수
disqualifiedEntriesnumber실격 처리된 참가자 수
totalViewsnumber콘테스트 페이지 총 조회수
totalBonusCompletionsnumber모든 참가자의 보너스 액션 완료 총 수
points.totalnumber모든 참가자의 포인트 총합
points.averagenumber참가자당 평균 포인트
points.highestnumber단일 참가자의 최고 포인트
사용 참고사항
- 분석 데이터는 콘테스트 데이터에서 실시간으로 계산됩니다
- 이 지표를 사용하여 콘테스트 성과 및 참여도를 추적하세요
- 리더보드 엔드포인트와 결합하여 종합 대시보드를 구성할 수 있습니다
예제: 분석 대시보드
javascript
async function getContestDashboard(contestId, apiKey) {
const [analyticsRes, leaderboardRes, contestRes] = await Promise.all([
fetch(`https://blitzrocket.com/api/v1/contests/${contestId}/analytics`, {
headers: { "x-api-key": apiKey },
}),
fetch(`https://blitzrocket.com/api/v1/contests/${contestId}/leaderboard?limit=5`, {
headers: { "x-api-key": apiKey },
}),
fetch(`https://blitzrocket.com/api/v1/contests/${contestId}`, {
headers: { "x-api-key": apiKey },
}),
]);
const [analytics, leaderboard, contest] = await Promise.all([
analyticsRes.json(),
leaderboardRes.json(),
contestRes.json(),
]);
return {
contest: contest.data,
analytics: analytics.data,
topParticipants: leaderboard.data,
conversionRate:
analytics.data.totalViews > 0
? ((analytics.data.totalEntries / analytics.data.totalViews) * 100).toFixed(1)
: "0",
};
}
오류 응답
| 상태 코드 | 오류 | 설명 |
|---|---|---|
400 | contestId 누락 | contestId 경로 매개변수가 필요합니다 |
401 | 잘못된 API 키 | API 키가 없거나 유효하지 않습니다 |
404 | 콘테스트를 찾을 수 없음 | 해당 ID의 콘테스트가 존재하지 않습니다 |