푸시 대시보드에서는 등록된 모든 캠페인들의 상세 정보와 발송 현황, 통계 데이터를 한눈에 볼 수 있습니다.

검색

현재 접속 중인 이용자에게 권한이 있는 게임에 대해 캠페인 발송 현황 및 통계를 조회할 수 있습니다.

발송 예약일 기준으로 날짜를 선택 후, 앱과 캠페인을 선택합니다. 발송 예약일은 기본값으로 오늘 날짜가 설정되어 있습니다. 모든 데이터는 하루 단위를 기준으로 출력됩니다. 단, 반복 캠페인에 한해 해당 캠페인 상세 데이터 구간에서 반복 기간의 전체, 국가별, 서버별 추이 그래프를 볼 수도 있습니다.

게임 현황

해당 게임의 당일 전체 데이터 그래프, 토큰수, 발송건수, 오픈건수, 등록된 캠페인수를 확인할 수 있습니다.

해당 게임의 당일 글로벌 발송건수를 보여주는 지도입니다. 색상이 진한 곳은 발송량이 많은 곳입니다. 마우스 커서를 올리면 툴팁으로 구체적인 발송건수 수치를 볼 수 있습니다.

해당 게임의 당일 토큰수 변화 추이를 보여주는 그래프입니다. 1시간 단위로 실시간 갱신되며, 전체 토큰수 누적량을 통해 대용량 발송 시의 발송량을 예측할 수 잇습니다.

캠페인 정보

최상단에서 게임과 날짜를 선택 후, 검색을 누르면 표시됩니다. 특정 캠페인을 클릭하여 해당 캠페인의 상세 데이터를 볼 수 있습니다. 이하 영역들은 모두 특정 캠페인을 클릭해 선택하여야만 데이터를 보여줍니다.

영역 우상단 다운로드 버튼을 누르면, 보여지는 표 그대로 엑셀 파일 형태로 다운로드 됩니다.

선택한 캠페인의 당일 전체 발송건수, 성공건수, 오픈건수, 실패건수를 보여줍니다.

만약 선택한 캠페인이 하루만 발송하는 단일 캠페인이라면 ‘점’ 그래프로 표시됩니다. 그래프 영역을 클릭하면, 이 단일 캠페인의 해당 날짜 발송량에 대해 성공 및 실패 비율과, 실패건수들의 상세 실패 사유 그래프를 하단에 출력합니다.

만약 선택한 캠페인이 여러 날짜에 걸쳐 발송하는 반복 캠페인이라면 ‘꺾은선’ 그래프로 표시됩니다. 반복 캠페인인 경우, 최상단에서 선택한 날 하루 뿐 아니라 전체 반복 구간의 데이터 추이도 볼 수 있습니다. 최상단에서 선택한 날짜는 기준 날짜가 되어 해당 반복 캠페인의 전체 발송 구간 중 선택한 날짜가 포함되는 주간을 기본값으로 이 영역에 표시해 줍니다. 그래프 영역 내 특정 날짜를 클릭하면, 이 반복 캠페인의 해당 날짜 발송량에 대해 성공 및 실패 비율과, 실패건수들의 상세 실패 사유 그래프를 하단에 출력합니다. 만약 일주일 이상의 기간 동안 반복 중인 캠페인이라면, 제목 영역의 우측의 [지난주] [다음주] 버튼을 클릭해 1주일 단위로 돌려볼 수 있습니다.

선택한 캠페인의 당일 전체 발송량에 대해, 성공과 실패 비율을 비교해 원형 그래프로 보여줍니다. (좌측)

그래프 우측 표는 당일 전체 실패건수에 대해, 상세 실패 사유와 그 비율을 보여줍니다. 구글(FCM)과 애플(APNS)에서는 요청된 푸시 발송 건에 대해 실패 발생 시, 어떤 이유로 실패했는지 에러 코드를 리턴해 줍니다. 오류에 대해 구글(FCM)은 총 16개, 애플(APNS)는 총 28개의 응답을 제공하고 있고 Hive 푸시에서는 그 중 시스템 이슈가 아닌 것들에 대해 사용자가 알 수 있도록 실패 사유를 제공하고 있습니다. 각 실패 사유 코드에 대한 대략적인 설명은 아래와 같습니다.

FCM(구글)

Error Description etc
MissingRegistration Check that the request contains a registration token
(in the registration_id in a plain text message, or in the to or registration_ids field in JSON).
FCM 서비스로 전송하는 Payloads에 토큰이 누락되었을 경우에 발생
InvalidRegistration Check the format of the registration token you pass to the server.
Make sure it matches the registration token the client app receives from registering with Firebase Notifications.
Do not truncate or add additional characters.
토큰이 유효하지 않은 경우에 발생
NotRegistered An existing registration token may cease to be valid in a number of scenarios, including:
If the client app unregisters with FCM.
If the client app is automatically unregistered, which can happen if the user uninstalls the application.
For example, on iOS, if the APNS Feedback Service reported the APNS token as invalid.
If the registration token expires
(for example, Google might decide to refresh registration tokens, or the APNS token has expired for iOS devices).
If the client app is updated but the new version is not configured to receive messages.
For all these cases, remove this registration token from the app server and stop using it to send messages.
앱을 지운 경우에 발생
InvalidPackageName Make sure the message was addressed to a registration token whose package name matches the value passed in the request. 서버에서 푸시 전송 요청을 하는 앱과 토큰의 앱이 일치하지 않을 경우 발생
MismatchSenderId A registration token is tied to a certain group of senders. When a client app registers for FCM,
it must specify which senders are allowed to send messages.
You should use one of those sender IDs when sending messages to the client app.
If you switch to a different sender, the existing registration tokens won’t work.
서버에서 푸시 전송 요청을 하는 Sender ID와 토큰 생성 시에 사용한 Sender ID가 일치하지 않을 경우에 발생
InvalidParameters Check that the provided parameters have the right name and type. FCM 서비스로 전송하는 Payloads가 유효하지 않은 경우에 발생
MessageTooBig Check that the total size of the payload data included in a message does not exceed FCM limits:
4096 bytes for most messages, or 2048 bytes in the case of messages to topics.
This includes both the keys and the values.
FCM 서비스로 전송하는 Payloads 사이즈가 4KB를 초과하였을 경우에 발생
InvalidDataKey Check that the payload data does not contain a key (such as from, or gcm, or any value prefixed by google) that is used internally by FCM.
Note that some words (such as collapse_key) are also used by FCM but are allowed in the payload,
in which case the payload value will be overridden by the FCM value.
FCM 서비스로 전송하는 Payloads의 JSON 필드명이 유효하지 않을 경우에 발생
Unavailable The server couldn’t process the request in time. FCM 서비스 오류
InternalServerError The server encountered an error while trying to process the request. FCM 서비스 오류

APNS(애플)

Error Description etc
BadCollapsedId The collapse identifier exceeds the maximum allowed size. 오버라이팅 기능을 위한 Collapsed ID가 허용된 크기를 초과하였을 경우에 발생
BadDeviceToken The specified device token was bad. Verify that the request contains a valid token
and that the token matches the environment.
푸시 토큰이 유효하지 않은 경우에 발생
MissingDeviceToken The device token is not specified in the request :path.
Verify that the :path header contains the device token.
APNS 서비스로 전송하는 Payloads에 토큰이 누락되었을 경우에 발생
PayloadEmpty The message payload was empty. APNS 서비스로 전송하는 Payloads가 누락되었을 경우에 발생
BadCertificate The certificate was bad. 푸시 인증서 오류
BadCertificateEnvironment The client certificate was for the wrong environment. 앱 인증서 오류
Unregistered The device token is inactive for the specified topic. 앱을 지운 경우에 발생
PayloadTooLarge The message payload was too large. APNS 서비스로 전송하는 Payloads의 사이즈가 4K를 초과하였을 경우에 발생
TooManyRequests Too many requests were made consecutively to the same device token. 동일한 토큰으로 동시에 많은 푸시 발송 요청을 한 경우에 발생
InternalServerError An internal server error occurred. APNS 서비스 오류
ServiceUnavailable The service is unavailable. APNS 서비스 오류
Shutdown The server is shutting down. APNS 서비스 오류

ADM(아마존)

Error Description etc
Unregistered The app instance associated with the registration ID is no longer available to receive messages. 앱을 지운 경우에 발생
InvalidRegistrationId The registration ID does not correspond to the sender identified by the provided access token. 토큰이 유효하지 않은 경우에 발생
InvalidData ADM 서비스로 전송하는 Payloads가 유효하지 않은 경우에 발생
AccessTokenExpired The access token provided was invalid.
The sender should refresh their access token.
서버 인증 토큰 만료
MessageTooLarge The message payload provided in the data parameter exceeded the maximum allowable data size (6 KB). ADM 서비스로 전송하는 Payloads 사이즈가 6KB를 초과하였을 경우에 발생
MaxRateExceeded The requester has exceeded their maximum allowable rate of messages.
The sender might retry later honoring the Retry-After header included in the response.
To ensure high availability, ADM limits the number of messages that can be sent over a given period of time.
동시에 많은 푸시 발송 요청을 한 경우에 발생
InternalServerError There was an internal server error. ADM 서비스 오류, HTTP code 500으로 리턴됨
Unavaiable The server is temporarily unavailable. ADM 서비스 오류, HTTP code 503으로 리턴됨

Facebook(페이스북)

Error code Error Message ETC
190 Invalid OAuth access token signature. 앱 센터에 등록된 app_secret, app_id 값이 잘못된 경우에 발생
100 Param body must be at least 10 characters long. 본문의 내용이 10자 이하일 때 발생하는 알림
Param title must be at most 30 characters long. 제목의 내용이 30자 이상일 때 발생하는 알림
Param body must be at most 180 characters long. 본문의 내용이 180자 이상일 때 발생하는 알림
Param media is not a valid URI. 유효하지 않은 이미지 URI를 입력했을 때 발생하는 알림
613 Only 5 notifications can be sent to a user since they last played. 알림 API 호출 횟수 제한을 초과하였기 때문에 발생하는 알림

실제 구글, 애플, 아마존, 페이스북에서 제공하는 개발자 가이드는 아래 url을 참고해 주세요.

※구글(FCM), 애플(APNS), 아마존(ADM), 페이스북(Facebook)에서 제공하는 error response 코드 가이드
Downstream message error response codes from FCM : [바로가기]
HTTP/2 Response from APNs : [바로가기]
Response format from ADM : [바로가기]
Graph API error handle from Facebook : [바로가기]

좌측은 국가별 발송 정보, 우측은 서버별 발송 정보입니다.

선택한 캠페인의 당일 국가 또는 서버 별 발송건수, 성공건수, 오픈건수, 실패건수를 보여줍니다. 발송 대상 국가 또는 서버가 매우 많을 수 있기 때문에, 기본값으로는 발송된 국가나 서버 중 발송량이 가장 많은 곳이 먼저 표시됩니다. 발송 대상 국가나 서버가 하나 이상인 경우, 이 상태에서 구역 상단 멀티 셀렉트를 조정해 2개 이상의 데이터 그래프를 동시에 노출하여 비교할 수 있습니다.

태스크 정보

상단에서 특정 캠페인 선택 후, 표시됩니다. 캠페인은 일괄발송과 일괄발송미사용 선택 시 실제 작업에 해당하는 ‘Task’의 수가 다릅니다. 일괄발송 시에는 국가 및 타임존 별 시차를 고려하지 않고 한국 시간 기준으로 한번에 발송하므로 Task가 하나입니다. 반면, 일괄발송미선택 시에는 국가 및 타임존 별 지정한 시간에 맞춰 순차 발송하게 되므로 최대 24개의 Task가 존재할 수 있습니다.

선택한 캠페인에 대해 각각의 작업에 해당하는 ‘Task’의 개별 상세 정보를 볼 수 있는 영역으로, 이하 영역들은 모두 특정 Task를 클릭해 선택하여야만 데이터를 보여줍니다.

선택한 Task의 국가 및 서버 별 발송 정보를 보여줍니다.

선택한 Task의 AppID 별 발송 정보를 보여줍니다.

좌측 원형 그래프는 선택한 Task의 당일 전체 발송량에 대해, 성공과 실패 비율을 보여줍니다.

우측 표는 선택한 Task의 당일 전체 실패건수에 대해, 상세 실패 사유와 그 비율을 보여줍니다. 실패 사유 에러 코드와 관련된 자세한 설명은 상단, 캠페인 전체에 대한 실패 사유 그래프 구간과 동일합니다.

만약, 캠페인 전체 실패건수가 10건인데, 그 중 8개가 특정 Task에서 발생했다면 이 영역을 통해 확인할 수 있으며 어떤 사유로 실패했는지도 알 수 있습니다.

일괄발송을 사용하지 않았고, 해당 Task가 ‘대한민국’ 국가에 대해 발송한 건이고, 실패 사유가 대부분 ‘앱 삭제’라면 타 국가 대비 한국에서 앱을 삭제한 사용자가 많다는 사실을 알 수 있습니다.