콘텐츠로 건너뛰기

High-speed delivery 설정

Pushwoosh에서 타겟 세그먼트는 **세그먼트(Segments)**를 사용하여 정의됩니다.

표준 푸시 캠페인의 경우, /createMessage 요청이 전송된 후에 세그먼트가 컴파일됩니다. 즉, 세그먼트가 복잡한 경우 메시지가 발송되기 전에 약간의 지연이 발생할 수 있습니다.

High-speed delivery를 사용하면 세그먼트가 10분마다 사전 컴파일됩니다. 이를 통해 세그먼트를 최신 상태로 유지하고 즉시 사용할 수 있도록 준비하므로, 세그먼트 컴파일을 기다리지 않고 메시지를 즉시 전송할 수 있습니다.

High-speed delivery는 타이밍이 중요할 때 특히 유용합니다. 예를 들어, UEFA나 FIBA와 같은 스포츠 조직은 1초가 중요한 실시간 업데이트를 전송하는 데 이를 사용할 수 있습니다.

이 가이드에서는 스포츠 앱을 예로 들어 High-speed delivery를 설정하는 방법을 설명합니다. 다가오는 경기와 라이브 이벤트에 대해 사용자에게 알리기 위한 타겟 세그먼트를 생성하는 방법을 배우게 됩니다.

High-speed delivery를 사용하는 이유

Anchor link to

스포츠 조직에서 High-speed delivery를 사용하기 위한 전제 조건은 다음과 같습니다:

  • 모든 경기가 사전에 일정이 잡혀 있어, 언제 각 세그먼트를 생성해야 할지 알고 있으며 타겟 세그먼트를 사전 컴파일할 수 있어야 합니다.
  • 모든 경기는 고유 ID와 연결되어야 합니다. 예를 들어, 챔피언스 리그 결승전의 경기 ID는 0123입니다.
  • 모든 팀은 고유 ID와 연결되어야 합니다. 예를 들어, 유벤투스 ID는 111, 레알 마드리드 ID는 222 등입니다.
  • 사용자에게 알리고 싶은 라이브 이벤트 세트(골, 라인업, 킥오프 등)가 있어야 합니다.

High-speed delivery를 위한 모든 세그먼트는 사전에 생성되어야 하며, 예시 사용 사례에서는 경기 시작 전에 생성하는 것이 이상적입니다. Pushwoosh는 세그먼트 조건을 앱의 사용자 기반에 적용하고 10분마다 세그먼트를 사전 컴파일합니다 (이 간격은 조정 가능).

푸시 콘텐츠와 세그먼트 이름이 포함된 /createMessage API 요청을 보내면, Pushwoosh는 이미 사전 컴파일된 수신자 목록을 가지고 있어 푸시 알림을 즉시 전송할 수 있습니다.

태그 생성

Anchor link to

먼저 적용할 태그 세트를 생성하고 사용자 디바이스에 태그 값을 설정합니다.
킥오프(kickoff), 골(goal), 레드카드(red card) 등과 같은 라이브 경기 이벤트에 해당하는 LIST 유형의 태그를 생성하세요.

예:
MATCH-KICKOFF, MATCH-GOAL, MATCH-RED_CARD 태그 생성

팀에 대한 라이브 경기 이벤트를 설명하는 동일한 태그 세트를 생성하세요.
예:
TEAM-KICKOFF, TEAM-GOAL, TEAM-RED_CARD

이러한 태그를 구독함으로써 앱 사용자는 수신할 알림을 선택할 수 있습니다:

  • 특정 경기에 대한 알림 (예: 유벤투스 - 레알 마드리드 경기);
  • 좋아하는 팀의 경기에 대한 알림 (예: 유벤투스 경기만);
  • 경기 중 발생하는 이벤트에 대한 알림 (예: 유벤투스 - 레알 마드리드 경기 중 골만);
  • 좋아하는 팀의 특정 이벤트에 대한 알림 (예: 유벤투스 경기의 골 및 라인업).

태그 설정

Anchor link to

이제 setTags API 요청을 통해 이전에 지정한 태그 값을 채우고, 사용자를 특정 카테고리의 푸시 알림에 구독시킬 수 있습니다.

예: 사용자가 챔피언스 리그 결승전 킥오프 및 골 업데이트를 수신하도록 구독할 때, 경기 ID가 포함된 /setTags를 호출합니다:

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"MATCH_KICKOFF": "0123", // match ID
"MATCH_GOAL": "0123" // match ID
}
}
}

사용자는 챔피언스 리그 결승전 킥오프 및 득점 골에 대한 알림을 받게 됩니다. 사용자가 레알 마드리드 경기의 골 및 레드카드 업데이트를 수신하도록 구독할 때, 다음과 같이 /setTags를 호출합니다:

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"TEAM_KICKOFF": "222", // team ID
"TEAM_GOAL": "222" // team ID
}
}
}

이 사용자는 레알 마드리드가 경기를 할 때마다 킥오프 및 골에 대한 알림을 받게 됩니다.

세그먼트 생성

Anchor link to

이제 태그와 그 값(경기 ID 및 팀 ID)을 기반으로 경기 이벤트에 대한 세그먼트를 생성할 수 있습니다. 세그먼트는 경기 시작 30분 전에 /createFilter API 요청을 통해 생성해야 합니다.

위의 예시에서 챔피언스 리그 결승전의 득점 골에 대해 사용자에게 알리려면, 다음 파라미터로 /createFilter를 호출하세요:
Segment name: 0123_GOAL
Segment conditions: #TEAM-GOAL(111, 222) OR #MATCH-GOAL(0123)

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL",
"conditions": [
["TEAM-GOAL", "IN", ["111", "222"]],
["MATCH-GOAL", "IN", ["0123"]]
],
"operator": "OR", // optional. Operator values: 'AND', 'OR'
"application" : "AAAAA-00000"
}
}

이 요청은 챔피언스 리그 결승전(경기 ID=0123)의 골 업데이트를 구독한 사용자 또는 유벤투스나 레알 마드리드(팀 ID=111, 222)를 팔로우하는 사용자 세그먼트를 컴파일합니다.

Pushwoosh 컨트롤 패널에서 High-Speed Delivery를 설정하려면, 해당 태그 값으로 새 세그먼트를 생성하고 푸시를 보낼 앱에 연결하세요. 앱별 세그먼트는 타겟 세그먼트를 항상 최신 상태로 유지하기 위해 10분마다 사전 컴파일됩니다.

새 세그먼트 생성

경기 이벤트(골 득점, 경기 킥오프, 레드카드 등)가 발생하면, 푸시 알림 콘텐츠와 세그먼트 이름이 포함된 /createMessage를 호출하세요:

{
"request": {
"application": "AAAAA_00000",
"auth": "auth_token",
"notifications": [
{
"content": "12’ Juventus goal! Juventus 1 – 0 Real Madrid",
"filter": "0123_GOAL",
"send_date": "now"
}
]
}
}

/createMessage 호출을 수신하면, 세그먼트 기준과 일치하는 사전 컴파일된 디바이스 목록을 이미 가지고 있으므로 즉시 APNs 및 FCM 게이트웨이로 알림을 전송합니다.

세그먼트 삭제

Anchor link to

경기가 끝나면 더 이상 관련이 없는 세그먼트의 재컴파일에 컴퓨팅 리소스가 낭비되지 않도록 해당 세그먼트를 모두 삭제해야 합니다. 특히 다음에 예정된 경기의 세그먼트를 위해 리소스를 확보해야 합니다. /deleteFilter API 요청을 통해 세그먼트를 삭제하세요. 예를 들면 다음과 같습니다:

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL"
}
}

수동 세그먼트 삭제를 피하려면 /createFilter 요청을 통해 세그먼트 만료 날짜를 설정하여 지정된 날짜에 세그먼트가 자동으로 삭제되도록 하세요:

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL",
"conditions": [
["TEAM-GOAL", "IN", ["111", "222"]],
["MATCH-GOAL", "IN", ["0123"]]
],
"operator": "OR", // optional. Values: 'AND', 'OR'
"application": "AAAAA-00000",
"expiration_date": "YYYY-MM-DD" // optional. Segment (Filter) expiry
}
}
Was this page useful?