웹훅으로 푸시 알림함 기능 구성하기
푸시 캠페인에 대한 푸시 알림함을 웹훅 캠페인을 활용해 쉽게 구현할 수 있습니다.
알림함이란?
알림함이란 앱이나 웹서비스에서 수신하는 다양한 알림(예: 공지, 이벤트, 할인정보 등)을 한 곳에 모아놓는 기능을 말합니다.
사용자가 푸시 알림을 보지 못했거나 다시 보고 싶을때 알림함에 들어가 다시 확인할 수 있습니다.
알림함의 구현을 위해 보통 개발자의 내부 시스템(알림 서버, 사용자 계정 시스템 등) 연동 작업이 필요합니다. 그러나 핵클의 푸시 캠페인과 웹훅 캠페인을 활용하여 그러한 작업을 신경 쓸 필요 없이 쉽게 구현이 가능합니다.
웹훅 캠페인을 활용하여 알림함을 구현하는 과정을 알아보도록 합니다.
들어가기 전에
웹훅 캠페인을 설정하기 이전에 발송된 푸시메시지는 알림함에 노출되지않습니다.
$push_send 이벤트 알아보기
이번 예제에서는 핵클에서 푸시 캠페인을 진행하면, 자동으로 수집되는 이벤트인 $push_send 를 활용합니다.
$push_send 이벤트는 푸시 메시지 발송이 요청될 때 발생합니다. 즉 푸시 메시지가 발송되는 이벤트를 트리거로 잡아 웹훅 캠페인을 발송하는 개념입니다.
$push_send
$push_send 이벤트가 수집하는 이벤트 속성은 다음과 같습니다.
Field | Type | Description |
---|---|---|
push_message_key | Long | 푸시 메시지 캠페인의 키 값이 들어있습니다. |
platform | String | 푸시 메시지 발송 대상의 플랫폼 타입 입니다. (ANDROID 또는 IOS) |
push_token | String | 푸시 메시지 발송 대상의 푸시 토큰 입니다 |
title | String | 고객에게 표시되는 푸시 메시지 타이틀입니다. |
body | String | 고객에게 표시되는 푸시 메시지 내용 부분입니다. |
actionType | String | APP_OPEN 또는 DEEP_LINK 값이 들어옵니다. |
actionValue | String | actionType 이 DEEP_LINK 인 경우 딥 링크 값이 들어갑니다. 아닌 경우 Empty String("") 입니다. |
debug | Boolean | 테스트 발송 여부입니다. (true 또는 false) |
result | String | 푸시 발송 요청 결과 코드입니다. |
푸시 발송 결과 코드
$push_send 이벤트에 result 속성 값을 통해 발송 성공 여부를 확인할 수 있습니다. 발송 요청 결과 코드는 다음과 같습니다.
Name Description SUCCESS 전송 성공 시 DEDUP 특정 캠페인의 중복 발송 제한에 걸린 경우 GLOBAL_FREQUENCY_CAPPED 전체 캠페인 발송 빈도 제한 설정으로 제한된 경우 NOT_FOUND_PUSH_PROVIDER_CREDENTIALS 푸시 제공자 인증 정보가 없는 경우 INVALID_PUSH_PROVIDER_CREDENTIALS 푸시 제공자 인증 정보가 유효하지 않은 경우 INVALID_PUSH_TOKEN 유효하지 않은 푸시 토큰인 경우 INTERNAL_ERROR 서버 오류 발생 시
유저 식별자
$push_send 이벤트는 발송 대상의 식별자 중 하나를 수집합니다.
Field | Type | Description |
---|---|---|
userId | String(nullable) | 푸시 발송 대상 유저의 userId 식별자 |
deviceId | String(nullable) | 푸시 발송 대상 유저의 deviceId 식별자 |
1. 웹훅 캠페인 설정
대시보드의 메뉴의 웹훅 메뉴 우측 상단에 위치한 + 캠페인 만들기
버튼을 클릭해서 새로운 웹훅 캠페인을 생성하실 수 있습니다.
원하는 캠페인 이름을 입력하여 생성해주세요.
1-1. Method 설정
Method 는 POST 로 설정합니다.
1-2. Headers 및 Parameter 설정
푸시 알림함을 구현하는 API 의 스펙에 맞춰 Headers 에 인증정보 등을 추가합니다.
여기에서는 Authorization 헤더에 개인화를 이용해 유저 속성에 담겨있는 access-token 을 활용한다고 가정하였습니다.
1-3. Body 설정
Liquid 문법을 활용하여 를 웹훅의 Request Body를 작성합니다.
앞서 살펴보았던, $push_send 이벤트가 수집하는 속성 및 식별자를 활용하였습니다.
Request Body
{
"identifiers":{
"userId": "{{identifiers["$userId"]}}",
"deviceId":"{{identifiers["$deviceId"]}}"
},
"key": "{{event_properties["push_message_key"]}}",
"platform": "{{event_properties["platform_type"]}}",
"push_token": "{{event_properties["push_token"]}}",
"title": "{{event_properties["push_message_title"]}}",
"body": "{{event_properties["push_message_body"]}}",
"actionType": "{{event_properties["push_message_action_type"]}}",
"actionValue":"{{event_properties["push_message_action_value"]}}"
}
개인화에 사용된 속성 또는 식별자 값이 null 인 경우 Empty String("") 으로 치환됨을 유의하세요
1-4. 대상 설정
기본 설정 - 모든 푸시 캠페인
모든 푸시 캠페인을 알림함에서 노출하고 싶은 경우 대상으로 모든 사용자를 선택합니다.
고급 설정 - 특정 푸시 캠페인
특정한 푸시 캠페인만 알림함에서 노출하고 싶은 경우 푸시 캠페인의 대상 코호트와 일치하도록 웹훅 코호트를 설정합니다.
푸시 알림함 구현시 푸시 캠페인의 대상과 웹훅 캠페인 대상 설정에 주의하세요
푸시 캠페인의 대상과 동일하거나 더 넓은 대상을 웹훅 캠페인 대상으로 설정하도록 합니다.
혹은 웹훅 캠페인 대상을 '모든 사용자'로 설정하여 푸시 알림함이 의도대로 동작하도록 세팅합니다.
3. 웹훅 발송 설정
웹훅 캠페인 설정을 완료하면 요약 내용을 확인할 수 있습니다.
'저장하기'를 누르고 발송설정을 클릭합니다.
발송유형을 '이벤트 기반'으로 선택합니다.
시작 이벤트로는 '$push_send' 를 선택합니다.
그 뒤 필터 추가하기를 눌러 속성 필터 조건을 이용해서 다음과 같이 속성 조건을 추가합니다.
Key | Value | 설명 |
---|---|---|
push_message_key | (푸시 캠페인의 키 값) | (선택) 특정 푸시 캠페인만 설정하고 싶은 경우 |
result | SUCCESS | (추천) 전송 성공한 메세지만 보여주고 싶은 경우 |
기본 설정 - 모든 푸시 캠페인
모든 푸시 캠페인을 알림함에서 노출하고 싶은 경우 result 속성만 활용하여 필터를 설정합니다. result 는 SUCCESS 로 입력하면 됩니다.
고급 설정 - 특정 푸시 캠페인
특정 푸시 캠페인을 알림함에서 노출하고 싶은 경우 result 속성외에 push_message_key 속성도 활용하여 필터를 설정합니다.
원하는 푸시 캠페인의 메시지 키 값인 2를 입력하고 result 는 SUCCESS 로 입력하면 됩니다.
이 웹훅 캠페인은 알림함에 데이터를 전송하기 위한 목적이므로 별도의 발송 제한을 설정할 필요는 없습니다.
4. 완료
푸시 알림함을 위한 웹훅 구성이 모두 끝났습니다.
이제 알림함 수신을 위한 API 를 구현하여 푸시 알림함을 구현할 수 있습니다.
Updated 7 days ago