6. 캠페인 관리 기능

아이펀 디플로이는 다음과 같이 캠페인(게임 내 이벤트) 관련 기능들을 제공합니다.

  1. 캠페인 목록 조회
  2. 캠페인 등록
  1. 게임 서버에서 진행 가능한 캠페인 종류 가져오기
  2. 캠페인 시작, 종료 일시 및 보상 지정
  3. 게임 서버에 캠페인 시작 및 종료 요청

캠페인 페이지는 상단의 메뉴에서 캠페인 을 클릭하여 볼 수 있습니다.

_images/campaign-01.png

Note

아이펀 디플로이는 캠페인 관리를 돕는 front-end 역할만을 담당합니다. 그러므로 게임 서버에 게임 유저 관리 기능 과 마찬가지로 캠페인 관련 API 들이 구현되어 있어야 합니다. 자세한 내용은 해당 항목을 참고해주세요.

6.1. 캠페인 목록 조회

_images/campaign-list-btn.png

캠페인 페이지 오른쪽 위의 목록 버튼 으로 캠페인 목록을 조회할 수 있습니다.

6.1.1. 캘린더 형태로 조회

등록된 캠페인을 월/주/일 단위 로 조회합니다.

캠페인을 클릭하면 해당 캠페인의 상세 정보를 볼 수 있습니다.

_images/campaign-list-cal.png

6.1.2. 테이블 형태로 조회

등록된 캠페인을 테이블 형태 로 조회합니다.

맨 오른쪽의 삭제 버튼으로 해당 캠페인을 삭제할 수 있습니다.

_images/campaign-list-table.png

6.1.3. 캠페인 정보

캠페인 페이지에서 조회할 수 있는 캠페인 정보는 아래와 같습니다.

  • 번호 : 캠페인의 관리를 위해 매기는 번호로, 캠페인 등록 순서대로 부여됩니다.
  • 캠페인 타입 : 캠페인 등록 시에 지정한 타입입니다. 게임 서버에서 캠페인 종류 구분에 사용합니다.
  • 반복 설정 : 해당 캠페인의 반복 여부와 일정을 표시합니다.
    • 반복 없음: 일회성 캠페인입니다. 표시된 시작 시간에 시작해서 끝 시간에 끝나는 캠페인입니다. 사용중이신 시스템의 타임존으로 시간을 표시합니다.
    • 반복 있음: 주 단위로 반복되는 캠페인입니다. 표시된 시작 날짜부터 끝 날짜까지, 주어진 요일마다, 시작 시간과 끝 시간에 캠페인을 시작하고 종료합니다. 날짜와 시간은 반복 설정에 표시된 타임존으로 표시합니다.
  • 제목 : 캠페인 등록 시에 지정한 제목입니다.
  • 설명 : 캠페인 등록 시에 지정한 설명입니다.
  • 코멘트 : 캠페인 등록 시에 지정한 코멘트입니다. 게임 서버에는 전송되지 않고 아이펀 디플로이 내부에서만 관리 용도로 사용됩니다.
  • 보상 : 캠페인 등록 시에 지정한 보상입니다. 게임 서버에서 이 데이터를 참고하여 보상을 지급합니다.
  • 작성자 : 캠페인을 등록한 유저의 아이디입니다.
  • 등록 일자 : 캠페인을 등록한 날짜입니다.
  • 상태 : 캠페인의 현재 상태입니다.
    • Pending : 예약 상태입니다. 지정한 시작 일시가 될 때까지 유지됩니다.
    • In progress : 캠페인이 정상적으로 시작되어 진행 중인 상태입니다. 지정한 종료 일시가 될 때까지 유지됩니다.
    • Finished : 캠페인이 정상적으로 종료된 상태입니다.
    • Failure on : 시작 혹은 종료에 실패한 상태입니다. Deploy Support 로 문의해주세요.

6.2. 캠페인 등록

캠페인 페이지 오른쪽 위의 + 캠페인 등록 버튼을 누르면 등록 팝업창이 출력됩니다. 팝업창의 각 내용을 입력한 다음 등록 버튼을 누르면 새로운 캠페인을 등록할 수 있습니다.

반복 설정 에 따라서 일회성 캠페인 또는 반복 캠페인을 등록할 수 있습니다.

6.2.1. 일회성 캠페인

반복 설정반복 없음 으로 설정하면 아래와 같은 팝업창이 나타나고 일회성 캠페인을 등록할 수 있습니다.

_images/campaign-register.png
  • 캠페인 기간 설정 : 캠페인 시작 시간과 종료 시간을 지정합니다. 시간은 분단위로 지정할 수 있습니다. 시간은 사용중이신 시스템의 타임존 으로 지정됩니다.

팝업창의 나머지 항목에 대해서는 캠페인 정보 를 참고해 주세요.

6.2.2. 반복 캠페인

반복 설정반복 있음 으로 설정하면 아래와 같은 팝업창이 나타나고 주간 단위 반복 캠페인을 등록할 수 있습니다.

_images/campaign-register-recurring.png
  • 캠페인 기간 설정 : 캠페인을 반복할 시작 날짜와 종료 날짜를 지정합니다.
  • 반복 요일 설정 : 캠페인을 반복할 요일을 지정합니다.
  • 반복 요일 내 캠페인 시간 설정 : 각 캠페인의 시작 시간과 종료 시간을 지정합니다. 시간은 분단위로 지정할 수 있습니다.

날짜, 요일, 시간은 모두 사용중이신 시스템의 타임존 으로 지정됩니다.

팝업창의 나머지 항목에 대해서는 캠페인 정보 를 참고해 주세요.

Note

캠페인 타입과 보상 리스트는 게임 서버에 API를 호출하여 가져옵니다. 자세한 내용은 GET /cs-api/v1/campaign/type 항목을 참고해주세요.

등록된 캠페인은 캠페인 목록 조회 페이지에서 바로 조회할 수 있습니다.

_images/campaign-create-result.png

6.3. 캠페인 시작/종료

아이펀 디플로이는 캠페인 시작/종료일시가 되면 게임 서버에 캠페인 시작 API / 캠페인 종료 API 를 호출합니다. 캠페인 등록 시 지정한 데이터들은 캠페인 시작 API를 호출할 때 모두 게임 서버로 전송됩니다.

6.3.1. 캠페인 시작

캠페인 시작 일시가 되면 캠페인 시작 API 을 호출합니다. 이 때 아이펀 디플로이는 다음과 같이 동작합니다.

  • 정해진 캠페인 시작 시간 이후 가능한 빨리 호출합니다.(대부분의 경우 100ms 이내)
  • 최악의 경우에라도(예: 아이펀 디플로이에 장애가 발생한 경우) 캠페인 종료 시간 전에, 가능한 빨리 호출합니다. 최악의 경우 설정한 캠페인 시작 시간과 실제 캠페인 시작 API가 호출되는 시간 사이에 격차가 발생할 수 있습니다.
  • 최악의 경우 캠페인 시작을 호출하기 전에 캠페인 종료 시간 이후가 되었다면, 시작 API를 호출하지 않습니다. 이 경우 운영 로그에 캠페인 시작을 생략했다는 로그를 명시적으로 기록합니다.
  • 반복 캠페인의 경우, 이전 캠페인의 시작 유무와 독립적으로 시작 API를 호출합니다. 예를 들어 이전 캠페인 종료 호출이 실패했더라도, 현재 캠페인 시작 API 를 무조건 호출합니다.

6.3.2. 캠페인 종료

캠페인 종료 일시가 되면 캠페인 종료 API 을 호출합니다. 이 때 아이펀 디플로이는 다음과 같이 동작합니다.

  • 캠페인 시작 API 호출이 성공한 경우에만, 종료 API 를 호출합니다.
  • 정해진 캠페인 종료 시간 이후 가능한 빨리 호출합니다.(대부분의 경우 100ms 이내)
  • 최악의 경우에라도(예: 아이펀 디플로이에 장애가 발생한 경우) 종료 시간이 이후라면 가능한 빨리 종료 API를 호출합니다. 최악의 경우에 설정한 캠페인 시작 종료 시간과 실제 캠페인 종료 API가 호출되는 시간 사이에 격차가 발생할 수 있습니다.