분석·비용 API 레퍼런스
앱 단위 매출·전환 통계, 조직의 크레딧 잔액·월별 발송비, 일별·주별 활성 사용자, 이벤트 집계, 세그먼트 규모·조건 조회 (11개 엔드포인트, 읽기 전용)
참고인증
모든 Service API 요청에는
X-API-KEY 헤더를 포함해야 합니다.
API Key는 콘솔 > 개발자 > API 키 관리에서 발급받을 수 있습니다.
공통 규칙은
API 개요를 참고하세요.
필요 조건애드온과 권한
이 API 는
매출 분석 애드온이 활성화된 조직에서만 동작하며, API 키 사용자에게
revenue.view(매출) 또는
conversion.view(전환) 권한이 있어야 합니다.
조건이 빠지면
403 과 함께 무엇이 없는지가 응답에 실립니다 —
{"error":"ADDON_REQUIRED","addonCode":"REVENUE_ANALYTICS"} 또는
{"error":"PERMISSION_DENIED","permission":"conversion.view"}.
콘솔의 매출 분석·전환 분석 화면과 같은 집계를 쓰므로 숫자가 화면과 같습니다.
크레딧·발송비(
credits.view)와 활성 사용자 DAU/WAU(
mau.view)는 애드온 조건 없이 권한만 필요합니다.
이벤트 집계는
사용자 여정 분석 애드온과
event_log.view, 세그먼트는
동적 세그먼트 애드온과
segments.view 가 필요합니다.
범위집계만, 개별 데이터는 없음
이 API 는 집계와 설정만 돌려줍니다. 세션 이벤트의 원시 행, 세그먼트의 구성원(연락처) 목록은 어떤 파라미터로도 나가지 않습니다 — 그 데이터는 콘솔에서만 볼 수 있습니다.
참고날짜
startDate·
endDate 는 조직 설정 타임존 기준
YYYY-MM-DD 입니다.
생략하면 최근 30일(전환 목표 목록은 90일)이고, 구간은 최대 366일입니다. 응답의
timeZone 이 적용된 타임존입니다.
GET /api/v1/service/analytics/revenue
앱 단위 매출 통계를 조회합니다. 총 매출·구매 세션·전환율·평균 주문 금액과 전환 목표별·일별·플랫폼별 분해를 돌려줍니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| appId | Long | 필수 | 앱 ID |
| startDate | Date | | 시작일 (기본: 30일 전) |
| endDate | Date | | 종료일 (기본: 오늘) |
| platform | String | | 플랫폼 필터 (ios, android, web / 생략 시 전체) |
| campaignId | Long | | 캠페인 ID 로 좁히기 |
| urlId | Long | | URL ID 로 좁히기 |
| compareStartDate | Date | | 비교 구간 시작일 (compareEndDate 와 함께) |
| compareEndDate | Date | | 비교 구간 종료일 |
Response
| 필드 | 타입 | 설명 |
| appId · appName | Long · String | 앱 |
| startDate · endDate · timeZone | String | 적용된 조회 구간과 타임존 |
| data.totalRevenue | Double | 총 매출 (purchase 목표 한정) |
| data.purchaseSessions | Long | 구매 완료 세션 수 |
| data.purchaseConversionRate | Double | 구매 전환율 (%) |
| data.averageOrderValue | Double | 평균 주문 금액 (AOV) |
| data.revenuePerSession | Double | 세션당 매출 |
| data.cartValue | Double | 장바구니에 담긴 금액 (add_to_cart) — 매출이 아닙니다 |
| data.revenueByGoalType | Array | 전환 목표별 세션 수·매출·비율·평균 금액·단위 |
| data.dailyRevenue | Array | 일별 세션·구매·매출·전환율 |
| data.revenueByPlatform | Array | 플랫폼별 세션·구매·매출·전환율·AOV |
| comparison | Object | 비교 구간의 같은 지표와 *ChangePct 증감률(%). 비교 구간 값이 0 이면 증감률은 null (compare 파라미터를 준 경우에만) |
curl "https://fplink.net/api/v1/service/analytics/revenue?appId=5&startDate=2026-09-01&endDate=2026-09-14&compareStartDate=2026-08-01&compareEndDate=2026-08-14" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/conversions
앱 단위 전환 통계를 조회합니다. 세션·전환·전환율, 플랫폼 분포, 전환 목표별 분해, 8단계 퍼널을 돌려줍니다. resourceType + resourceId 로 링크·캠페인 하나로 좁힐 수 있습니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| appId | Long | 필수 | 앱 ID |
| startDate · endDate | Date | | 조회 구간 (기본: 최근 30일) |
| platform | String | | 플랫폼 필터 (기본 all) |
| sessionType | String | | 세션 유형 필터 (기본 all) |
| resourceType | String | | url 또는 campaign (resourceId 와 함께) |
| resourceId | Long | | URL ID 또는 캠페인 ID |
Response
| 필드 | 타입 | 설명 |
| sessionStats | Object | 총 세션 · 전환 세션 · 전환율 |
| platformDistribution | Object | 플랫폼별 세션 수 |
| goalTypeBreakdown | Array | 전환 목표별 건수·비율 |
| funnelStats | Object | 8단계 퍼널 — stages 배열, conversionRate 는 1단계 대비 도달 비율(%) |
curl "https://fplink.net/api/v1/service/analytics/conversions?appId=5&resourceType=campaign&resourceId=12" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/conversions/top
전환을 많이 만든 링크 또는 캠페인 상위 목록입니다. resourceType=url 이면 링크, 그 외에는 캠페인입니다. goalType 을 주면 그 목표의 전환 수 기준이며 이때 appId 가 필요합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| resourceType | String | | url 또는 campaign (기본 campaign) |
| appId | Long | | 앱 ID (goalType 지정 시 필수) |
| goalType | String | | 전환 목표 이름 (생략 시 전체 전환) |
| startDate · endDate | Date | | 조회 구간 (기본: 최근 30일) |
| limit | Integer | | 상위 몇 개 (기본 5, 최대 50) |
Response
| 필드 | 타입 | 설명 |
| resourceType | String | url 또는 campaign |
| goalType | String | 적용된 전환 목표 (전체면 all) |
| limit | Integer | 적용된 상한 |
| items | Array | 상위 항목 (ID · 이름 · 전환 수) |
curl "https://fplink.net/api/v1/service/analytics/conversions/top?resourceType=url&appId=5&goalType=purchase&limit=10" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/conversions/goals
기간 안에 실제로 기록된 전환 목표(goalType) 이름 목록입니다. 다른 엔드포인트의 goalType 값을 고를 때 먼저 조회하세요.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| appId | Long | 필수 | 앱 ID |
| startDate · endDate | Date | | 조회 구간 (기본: 최근 90일) |
Response
| 필드 | 타입 | 설명 |
| goalTypes | Array | 전환 목표 이름 배열 (예: purchase, sign_up, add_to_cart) |
curl "https://fplink.net/api/v1/service/analytics/conversions/goals?appId=5" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/credits
조직의 크레딧 잔액을 조회합니다. 크레딧은 조직 소유자 장부 하나이므로 어느 API 키로 불러도 같은 값입니다. 애드온 조건은 없고 credits.view 권한만 필요합니다.
Response
| 필드 | 타입 | 설명 |
| balance | Number | 총 잔액 (= paidBalance + freeBalance, 1 크레딧 = 1원) |
| paidBalance | Number | 유료 충전 잔액 |
| freeBalance | Number | 무료 지급 잔액 (가입 크레딧·보너스) |
| totalCharged · totalFreeGranted · totalUsed | Number | 누적 충전액 · 누적 무료 지급액 · 누적 사용액 |
curl "https://fplink.net/api/v1/service/analytics/credits" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/billing/usage
한 달의 메시지 발송비를 조회합니다. 콘솔의 발송비 명세서·메시징 대시보드와 같은 집계라 숫자가 같습니다. credits.view 권한이 필요합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| month | String | | 조회 월 yyyy-MM (기본: 조직 타임존의 이번 달, 최근 24개월까지) |
Response
| 필드 | 타입 | 설명 |
| month · timeZone · isCurrentMonth | String · String · Boolean | 조회 월, 집계 타임존, 이번 달 여부 (이번 달은 오늘까지의 집계) |
| successCount | Long | 성공 발송 건수 합 |
| usageCharge | Number | 청구 근거 발송비 — 성공한 발송의 요금 합. 실패·미발송분은 과금되지 않습니다 |
| channels | Array | 채널별 channelType · channelName · successCount · rateSum |
| days | Array | 발송이 있었던 날만 — date · successCount · rateSum · countsByChannel |
curl "https://fplink.net/api/v1/service/analytics/billing/usage?month=2026-08" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/dau
일별 활성 사용자(DAU)를 조회합니다. 날짜별 고유 방문자와 클릭(링크·캠페인)이 나오며, 콘솔 MAU 화면과 같은 집계입니다. 오늘과 배치 전의 어제는 실시간으로 집계합니다. 애드온 조건은 없고 mau.view 권한만 필요합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| days | Integer | | 최근 N일 (기본 30, 최대 366). startDate/endDate 를 주면 무시 |
| startDate · endDate | Date | | 조회 구간 YYYY-MM-DD (조직 타임존, 종료일 기본 오늘, 최대 366일) |
| appId | Long | | 앱 ID. 생략하면 조직 전체, 다른 조직의 앱이면 403 |
Response
| 필드 | 타입 | 설명 |
| appId · startDate · endDate · timeZone | Long · String · String · String | 조회한 앱(조직 전체면 null), 구간, 집계 타임존 |
| daily | Array | 집계가 있는 날만 — date · uniqueVisitors · totalClicks · urlClicks · campaignClicks |
| summary | Object | daysWithData · avgUniqueVisitors · maxUniqueVisitors · totalClicks (있는 날만으로 계산) |
curl "https://fplink.net/api/v1/service/analytics/dau?days=14&appId=5" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/wau
주별 활성 사용자(WAU)를 조회합니다. 주간 배치가 만든 집계라 진행 중인 이번 주는 아직 없을 수 있습니다. mau.view 권한이 필요합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| weeks | Integer | | 최근 N주 (기본 12, 최대 53). year 를 주면 무시. 해를 넘기면 두 해의 집계를 이어 붙입니다 |
| year | Integer | | 조회 연도 — 그 해의 모든 주 |
| appId | Long | | 앱 ID. 생략하면 조직 전체, 다른 조직의 앱이면 403 |
Response
| 필드 | 타입 | 설명 |
| appId · timeZone | Long · String | 조회한 앱(조직 전체면 null), 집계 타임존 |
| year 또는 weeks · since | Integer · Integer · String | 연도 조회면 year, 최근 N주 조회면 weeks 와 시작일 since |
| weekly | Array | year · weekOfYear · weekStartDate · weekEndDate · uniqueVisitors · totalClicks · urlClicks · campaignClicks |
| summary | Object | weeksWithData · avgUniqueVisitors · maxUniqueVisitors · totalClicks |
curl "https://fplink.net/api/v1/service/analytics/wau?weeks=8" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/events
SDK 로 수집한 사용자 여정 이벤트의 집계를 조회합니다. 콘솔 이벤트 분석 화면과 같은 집계이며, 일별 배치로 만들어져 오늘 발생분은 내일 반영됩니다. 원시 이벤트 행은 제공하지 않습니다. 사용자 여정 분석 애드온과 event_log.view 권한이 필요합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| appId | Long | | 앱 ID. 생략하면 조직 전체, 다른 조직의 앱이면 403 |
| startDate · endDate | Date | | 조회 구간 YYYY-MM-DD (조직 타임존, 기본 최근 30일, 최대 366일) |
| topLimit | Integer | | 상위 이벤트 이름 수 (기본 10, 최대 50) |
Response
| 필드 | 타입 | 설명 |
| summary | Object | totalEvents · uniqueSessions · uniqueEventNames · avgEventsPerSession |
| trendGranularity · trend | String · Array | 90일 이하는 day(date · totalCount · uniqueSessions), 넘으면 week(weekStartDate · weekEndDate · 합계) |
| topEvents | Array | eventName · count · uniqueSessions (건수 내림차순) |
| typeDistribution | Array | eventType · count |
curl "https://fplink.net/api/v1/service/analytics/events?appId=5&startDate=2026-08-01&endDate=2026-08-31" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/segments
조직의 동적 세그먼트 목록을 이름순으로 조회합니다. 마지막 재평가(매일 배치) 시점의 규모가 실립니다. 구성원(연락처) 목록은 제공하지 않습니다. 동적 세그먼트 애드온과 segments.view 권한이 필요합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
| page | Integer | | 페이지 번호 (0부터, 기본 0) |
| size | Integer | | 페이지 크기 (기본 10, 최대 50) |
Response
| 필드 | 타입 | 설명 |
| page · size · totalElements · totalPages · timeZone | Number · String | 페이징 정보와 시각 타임존 |
| segments | Array | id · name · description · isActive · memberCount · conditionGroupCount · lastEvaluatedAt · lastUsedAt · createdAt · updatedAt (시각은 조직 타임존 ISO-8601) |
curl "https://fplink.net/api/v1/service/analytics/segments?page=0&size=10" \
-H "X-API-KEY: your-api-key"
GET /api/v1/service/analytics/segments/{id}
세그먼트 하나의 규모와 조건을 조회합니다. 다른 조직의 id 는 404 입니다. 구성원 목록은 제공하지 않습니다.
Response
| 필드 | 타입 | 설명 |
| 요약 필드 | - | 목록의 항목과 같은 id · name · memberCount · lastEvaluatedAt 등 |
| conditionText | String | 조건을 읽을 수 있게 푼 문장 — 그룹 안은 AND, 그룹끼리는 OR. 예: (custom.grade eq VIP AND activity.purchase.count gte 3) OR (email contains @corp.com) |
| conditionGroups | Array | 조건 그룹 원본 — conditions[] 의 propKey · propOp · propValue · compareKey |
curl "https://fplink.net/api/v1/service/analytics/segments/11" \
-H "X-API-KEY: your-api-key"