Glowb Dev Docs
Admin APIAdmin Dashboard API

GET /ai/admin/dashboard/{campaignNo}/cross-campaign-applicants

타 캠페인 신청자 불러오기

타 캠페인 신청자 불러오기

여러 소스 캠페인의 신청자를 합산 조회합니다. 동일 인플루언서 중복 제거 후 기협업자 → 기노출자 → 일반 → 기등록자 순으로 정렬하여 반환합니다.

HTTP 요청

GET /ai/admin/dashboard/{campaignNo}/cross-campaign-applicants
Authorization: Bearer {access_token}

Path Parameters

파라미터타입필수설명
campaignNoLong현재 캠페인 번호

Query Parameters

파라미터타입필수기본값설명
sourceCampaignNosList<Integer>-소스 캠페인 번호 목록 (쉼표 구분, 예: 100,200,300)
excludeExposedBoolean아니오falsetrue이면 기노출자 제외 (기등록자는 항상 포함)
excludeCollaboratedBoolean아니오falsetrue이면 기협업자 제외 (기등록자는 항상 포함)

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "타 캠페인 신청자 조회 성공",
  "data": {
    "items": [
      {
        "influenceNo": 123,
        "influenceName": "크리에이터A",
        "influenceProfileImage": "https://...",
        "influenceTel": "010-1234-5678",
        "influenceEmail": "creator@email.com",
        "followerCount": "15200",
        "averageViewCount": "3500",
        "influenceRankScore": "A",
        "creatorCategories": ["BEAUTY", "FASHION"],
        "flags": [
          { "flagId": 1, "flagName": "우수 크리에이터", "color": "#FF0000" }
        ],
        "applicantStatus": "COLLABORATED",
        "alreadyRegistered": false
      },
      {
        "influenceNo": 456,
        "influenceName": "크리에이터B",
        "influenceProfileImage": "https://...",
        "influenceTel": "010-9876-5432",
        "influenceEmail": "creator2@email.com",
        "followerCount": "8500",
        "averageViewCount": null,
        "influenceRankScore": "B",
        "creatorCategories": [],
        "flags": [],
        "applicantStatus": "GENERAL",
        "alreadyRegistered": true
      }
    ],
    "totalCount": 2
  }
}

응답 필드 설명

data 객체

필드타입설명
itemsArray신청자 목록
totalCountInteger전체 항목 수

items 배열 내 각 항목

필드타입설명
influenceNoInteger인플루언서 번호
influenceNameString인플루언서 이름
influenceProfileImageString프로필 이미지 URL
influenceTelString전화번호
influenceEmailString이메일
followerCountString팔로워 수
averageViewCountString평균 조회수
influenceRankScoreString랭크 점수 (priceTier)
creatorCategoriesArray<String>크리에이터 카테고리 (SNS 자동분류 auto_category_categories, CategoryType 코드 다중값). 프로필 미매칭·미분류 시 빈 배열
flagsArray플래그 목록. 전역·캠페인을 모두 합친 값
globalFlagsArray전 캠페인 공통 비고. 여러 캠페인을 가로지르는 목록이라 캠페인 전용 비고는 내려가지 않는다
applicantStatusString소스 캠페인 이력 상태 (아래 참고)
alreadyRegisteredBoolean현재 캠페인에 이미 등록된 신청자 여부

applicantStatus 값

설명
COLLABORATED기협업자 — 소스 캠페인에서 selectionStatus=SELECTED
EXPOSED기노출자 — 소스 캠페인에서 adminVisible=true (미선정)
GENERAL일반 — 위 해당 없음

정렬 순서

기협업자 → 기노출자 → 일반 → 기등록자 (alreadyRegistered=true) 순으로 정렬됩니다. 기등록자는 항상 목록 맨 뒤에 위치합니다.

제외 필터 동작

excludeExposed=true 또는 excludeCollaborated=true 필터는 alreadyRegistered=false인 신청자에게만 적용됩니다. 기등록자는 필터 설정과 무관하게 항상 포함됩니다.

중복 제거 로직

동일 인플루언서가 여러 소스 캠페인에 신청했을 경우 1개 항목만 표시됩니다. applicantStatus는 OR 조건으로 병합됩니다 (예: 한 캠페인에서 SELECTED, 다른 캠페인에서 일반이면 → COLLABORATED).

크리에이터 카테고리 필터

이 응답은 페이지네이션 없이 전체 신청자를 반환하므로, 크리에이터 카테고리(creatorCategories) 필터는 별도 서버 파라미터 없이 프론트엔드에서 클라이언트 사이드로 처리합니다. 서버는 필터 재료가 되는 creatorCategories 값만 내려줍니다. (캠페인 카테고리 필터는 소스 캠페인 목록이 페이지네이션되므로 GET /source-campaignscategory 서버 파라미터로 처리합니다.)

API 테스트

On this page