푸시 알림 사용자 지정
Braze SDK의 푸시 알림을 사용자 지정하는 방법을 알아보세요.
Prerequisites
이 기능을 사용하려면 먼저 Android Braze SDK를 통합해야 합니다. 푸시 알림도 설정해야 합니다.
푸시 이벤트에 콜백 사용
Braze는 푸시 알림을 수신하거나 열람하거나 해제하는 경우에 대한 subscribeToPushNotificationEvents()
콜백을 제공합니다. 애플리케이션이 실행되지 않는 동안 발생하는 이벤트를 놓치지 않도록 Application.onCreate()
에 이 콜백을 배치하는 것이 좋습니다.
이전에 애플리케이션에서 이 기능을 위해 사용자 지정 생방송 수신기를 사용했다면 이 통합 옵션을 위해 해당 수신기를 안전하게 제거할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Braze.getInstance(context).subscribeToPushNotificationEvents(event -> {
final BrazeNotificationPayload parsedData = event.getNotificationPayload();
//
// The type of notification itself
//
final boolean isPushOpenEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_OPENED;
final boolean isPushReceivedEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_RECEIVED;
// Sent when a user has dismissed a notification
final boolean isPushDeletedEvent = event.getEventType() == BrazePushEventType.NOTIFICATION_DELETED;
//
// Notification data
//
final String pushTitle = parsedData.getTitleText();
final Long pushArrivalTimeMs = parsedData.getNotificationReceivedTimestampMillis();
final String deeplink = parsedData.getDeeplink();
//
// Custom KVP data
//
final String myCustomKvp1 = parsedData.getBrazeExtras().getString("my first kvp");
final String myCustomKvp2 = parsedData.getBrazeExtras().getString("my second kvp");
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Braze.getInstance(context).subscribeToPushNotificationEvents { event ->
val parsedData = event.notificationPayload
//
// The type of notification itself
//
val isPushOpenEvent = event.eventType == BrazePushEventType.NOTIFICATION_OPENED
val isPushReceivedEvent = event.eventType == BrazePushEventType.NOTIFICATION_RECEIVED
// Sent when a user has dismissed a notification
val isPushDeletedEvent = event.eventType == BrazePushEventType.NOTIFICATION_DELETED
//
// Notification data
//
val pushTitle = parsedData.titleText
val pushArrivalTimeMs = parsedData.notificationReceivedTimestampMillis
val deeplink = parsedData.deeplink
//
// Custom KVP data
//
val myCustomKvp1 = parsedData.brazeExtras.getString("my first kvp")
val myCustomKvp2 = parsedData.brazeExtras.getString("my second kvp")
}
알림 실행 버튼의 경우 opens app
또는 deep link
동작이 있는 버튼을 클릭하면 BRAZE_PUSH_INTENT_NOTIFICATION_OPENED
의도가 실행됩니다. 딥링크 및 추가 처리 기능은 동일하게 유지됩니다. close
동작이 있는 버튼은 BRAZE_PUSH_INTENT_NOTIFICATION_OPENED
의도를 실행하지 않으며 알림을 자동으로 해제합니다.
Application.onCreate
에서 푸시 알림 리스너를 생성하여 최종 사용자가 앱이 종료된 상태에서 알림을 탭하면 리스너가 트리거되도록 하세요.
글꼴 사용자 지정
1단계: 글꼴 패밀리 만들기
다음은 글꼴 패밀리 가이드를 사용한 사용자 정의 글꼴 패밀리 정의 예시입니다. 이 예제에서는 Bungee Shade 글꼴을 사용합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--Note: You must declare both sets of attributes
so that your fonts load on devices running Android 8.0 (API level 26) or lower.
See https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html -->
<font android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/bungeeshade"
app:fontStyle="normal"
app:fontWeight="400"
app:font="@font/bungeeshade"/>
</font-family>
글꼴 패밀리 정의를 /res/font/bungee_font_family.xml
에 저장한 후 XML에서 @font/bungee_font_family
로 참조할 수 있습니다.
2단계: 글꼴 패밀리 참조
이제 글꼴 패밀리가 생성되었으므로 styles.xml
에서 Braze 스타일 기본값을 재정의하여 글꼴 패밀리에 대한 참조를 포함할 수 있습니다.
예를 들어, 다음 스타일 재정의는 모든 Braze 인앱 메시지에 대해 bungee
글꼴 패밀리를 사용합니다.
1
2
3
4
5
6
7
8
9
<style name="Braze.InAppMessage">
<item name="android:fontFamily">@font/bungee_font_family</item>
<item name="fontFamily">@font/bungee_font_family</item>
</style>
<style name="Braze.Cards">
<item name="android:fontFamily">@font/another_custom_font_family</item>
<item name="fontFamily">@font/another_custom_font_family</item>
</style>
모든 SDK 버전에서 호환성을 유지하려면 android:fontFamily
및 fontFamily
스타일 속성을 모두 설정해야 합니다.
알림 표시 사용자 지정하기
1단계: 사용자 지정 알림 팩토리 만들기
일부 시나리오에서는 서버 측에서 번거롭거나 사용할 수 없는 방식으로 푸시 알림을 사용자 지정하고 싶을 수 있습니다. 알림 표시를 완벽하게 제어할 수 있도록, 사용자가 IBrazeNotificationFactory
를 정의하여 Braze에서 표시할 알림 개체를 생성하는 기능을 추가했습니다.
커스텀 IBrazeNotificationFactory
를 설정한 경우, 사용자에게 알림이 표시되기 전에 푸시 수신 시 Braze가 팩토리의 createNotification()
메서드를 호출합니다. Braze는 Braze 푸시 데이터를 포함하는 Bundle
및 대시보드 또는 메시징 API를 통해 전송된 커스텀 키-값 페어를 포함하는 다른 Bundle
을 전달합니다.
Braze 푸시 알림에 BrazeNotificationPayload
에 Braze 푸시 알림의 데이터가 포함된 파일을 전달합니다.
1
2
3
4
5
6
7
8
9
// Factory method implemented in your custom IBrazeNotificationFactory
@Override
public Notification createNotification(BrazeNotificationPayload brazeNotificationPayload) {
// Example of getting notification title
String title = brazeNotificationPayload.getTitleText();
// Example of retrieving a custom KVP ("my_key" -> "my_value")
String customKvp = brazeNotificationPayload.getBrazeExtras().getString("my_key");
}
1
2
3
4
5
6
7
8
// Factory method implemented in your custom IBrazeNotificationFactory
override fun createNotification(brazeNotificationPayload: BrazeNotificationPayload): Notification {
// Example of getting notification title
val title = brazeNotificationPayload.getTitleText()
// Example of retrieving a custom KVP ("my_key" -> "my_value")
val customKvp = brazeNotificationPayload.getBrazeExtras().getString("my_key")
}
알림을 전혀 표시하지 않도록 커스텀 createNotification()
메서드에서 null
을 반환하거나 해당 데이터에 대한 기본 notification
오브젝트를 가져와서 표시하기 전에 수정하도록 BrazeNotificationFactory.getInstance().createNotification()
을 사용하거나 표시하도록 완전히 분리된 notification
오브젝트를 생성할 수 있습니다.
Braze 푸시 데이터 키에 대한 설명서는 Android SDK를 참조하세요.
2단계: 커스텀 알림 팩토리 설정
커스텀 알림 팩토리를 사용하도록 Braze에 지시하려면 setCustomBrazeNotificationFactory
메서드를 사용하여 IBrazeNotificationFactory
를 설정합니다.
1
setCustomBrazeNotificationFactory(IBrazeNotificationFactory brazeNotificationFactory);
1
setCustomBrazeNotificationFactory(brazeNotificationFactory: IBrazeNotificationFactory)
커스텀 IBrazeNotificationFactory
를 설정하는 권장 위치는 Application.onCreate()
애플리케이션 수명 주기 메서드(활동이 아님)입니다. 그러면 앱 프로세스가 활성화될 때마다 알림 팩토리를 올바르게 설정할 수 있습니다.
알림을 처음부터 직접 만드는 것은 고급 사용 사례이며, 이때 철저한 테스트와 Braze 푸시 기능에 대한 깊은 이해 기반을 갖추어야 합니다. 예를 들어 알림이 푸시 열람 수를 올바르게 기록하는지 확인해야 합니다.
커스텀 IBrazeNotificationFactory
를 해제하고 푸시에 대한 기본 Braze 처리로 돌아가려면 커스텀 알림 팩토리 설정자에게 null
을 전달합니다.
1
setCustomBrazeNotificationFactory(null);
1
setCustomBrazeNotificationFactory(null)
승수 텍스트 렌더링
Braze SDK 버전 3.1.1에서 HTML을 기기로 보내 푸시 알림에서 승수 텍스트를 렌더링할 수 있습니다.
이 예제는 다음 HTML로 렌더링됩니다:
1
2
3
<p><span style="color: #99cc00;">M</span>u<span style="color: #008080;">lti</span>Colo<span style="color: #ff6600;">r</span> <span style="color: #000080;">P</span><span style="color: #00ccff;">u</span><span style="color: #ff0000;">s</span><span style="color: #808080;">h</span></p>
<p><em>test</em> <span style="text-decoration: underline; background-color: #ff6600;"><strong>message</strong></span></p>
Android는 푸시 알림에 유효한 HTML 요소와 태그를 제한한다는 점에 유의하세요. 예를 들어, marquee
는 허용되지 않습니다.
멀티컬러 텍스트 렌더링은 기기별로 다르며 Android 기기 또는 버전에 따라 표시되지 않을 수 있습니다.
푸시 알림에 여러 색상의 텍스트를 렌더링하려면 braze.xml
또는 BrazeConfig
을 업데이트하면 됩니다:
다음 항목을 braze.xml
에 추가하십시오:
1
<bool translatable="false" name="com_braze_push_notification_html_rendering_enabled">true</bool>
에 다음을 추가합니다. BrazeConfig
:
1
2
3
4
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
val brazeConfig = BrazeConfig.Builder()
.setPushHtmlRenderingEnabled(true)
.build()
Braze.configure(this, brazeConfig)
지원되는 HTML 태그
현재 Google은 Android용 지원 HTML 태그를 문서에 직접 나열하지 않으며, 이 정보는 Git 저장소의 Html.java
파일에서만 확인할 수 있습니다. 이 정보는 이 파일에서 가져온 것이며 지원되는 HTML 태그는 변경될 수 있으므로 다음 표를 참조할 때 이 점을 염두에 두세요.
카테고리 | HTML 태그 | 설명 |
---|---|---|
기본 텍스트 스타일링 | <b> , <strong> |
굵은 텍스트 |
<i> , <em> |
이탤릭체 텍스트 | |
<u> |
텍스트 밑줄 | |
<s> , <strike> , <del> |
취소선 텍스트 | |
<sup> |
위 첨자 텍스트 | |
<sub> |
구독 텍스트 | |
<tt> |
모노스페이스 텍스트 | |
크기/글꼴 | <big> , <small> |
상대적인 텍스트 크기 변경 |
<font color="..."> |
전경색 설정 | |
<span> (인라인 CSS 사용) |
인라인 스타일(e.g., 색상, 배경) | |
단락 및 블록 | <p> , <div> |
블록 수준 섹션 |
<br> |
줄 바꿈 | |
<blockquote> |
따옴표 블록 | |
<ul> + <li> |
글머리 기호가 있는 정렬되지 않은 목록 | |
제목 | <h1> - <h6> |
제목(다양한 크기) |
링크 및 이미지 | <a href="..."> |
클릭 가능한 링크 |
<img src="..."> |
인라인 이미지 | |
기타 인라인 | <em> , <strong> , <dfn> , <cite> |
이탤릭체 또는 굵게의 동의어 |
인라인 이미지 렌더링
How it works
인라인 이미지 푸시를 사용하여 Android 푸시 알림에 더 큰 이미지를 표시할 수 있습니다. 이 디자인을 사용하면 사용자가 이미지를 확대하기 위해 수동으로 푸시를 확장할 필요가 없습니다. 일반 Android 푸시 알림과 달리 인라인 이미지 푸시 이미지는 3:2 화면 비율로 제공됩니다.
호환성
모든 디바이스에 인라인 이미지를 보낼 수 있지만, 최소 버전을 충족하지 않는 디바이스 및 SDK에는 표준 이미지가 대신 표시됩니다. 인라인 이미지가 제대로 표시되려면 Android Braze SDK v10.0.0+와 Android M+를 실행하는 디바이스가 모두 필요합니다.
Android 12를 실행하는 기기는 커스텀 푸시 알림 스타일의 변경으로 인해 다르게 렌더링됩니다.
인라인 이미지 푸시 보내기
Android 푸시 메시지를 작성할 때 알림 유형 드롭다운에서 이 기능을 사용할 수 있습니다.
설정
Braze 대시보드를 통해 전송되는 Android 푸시 알림에는 다양한 고급 설정을 사용할 수 있습니다. 이 기사에서는 이러한 기능과 성공적으로 사용하는 방법에 대해 설명합니다.
알림 ID
알림 ID는 선택한 메시지 카테고리에 대한 고유 식별자로, 메시징 서비스에 해당 ID의 가장 최근 메시지만 고려하도록 알립니다. 알림 ID를 설정하면 오래되고 관련성이 없는 메시지 더미 대신 가장 최근의 관련성 있는 메시지만 보낼 수 있습니다.
Firebase 메시징 전송 우선순위
Firebase 메시징 전송 우선순위 필드를 통해 푸시 전송 우선순위를 ‘일반’ 또는 ‘높음’으로 설정하여 Firebase 클라우드 메시징에 전송할지 여부를 제어할 수 있습니다.
TTL
TTL( Time to Live ) 필드에서는 푸시 메시징 서비스에 메시지를 저장할 사용자 지정 기간을 설정할 수 있습니다. TTL의 기본값은 FCM의 경우 4주, ADM의 경우 31일입니다.
요약 텍스트
요약 텍스트를 사용하면 확장된 알림 보기에서 추가 텍스트를 설정할 수 있습니다. 이미지가 포함된 알림의 캡션 역할도 합니다.
요약 텍스트는 확장된 보기에서 메시지 본문 아래에 표시됩니다.
푸시 알림에 이미지가 포함된 경우, 메시지 텍스트는 축소된 보기에서 표시되며, 요약 텍스트는 알림이 확장될 때 이미지 캡션으로 표시됩니다.
사용자 지정 URI
사용자 지정 URI 기능을 사용하면 알림을 클릭할 때 이동할 웹 URL 또는 Android 리소스를 지정할 수 있습니다. 사용자 지정 URI가 지정되지 않은 경우 알림을 클릭하면 사용자가 앱으로 이동합니다. 커스텀 URI를 사용하여 앱 내부에 딥링킹하고 사용자를 앱 외부에 존재하는 리소스로 연결할 수 있습니다. 이는 그림과 같이 메시징 API 또는 푸시 작성기의 고급 설정 아래의 대시보드를 통해 지정할 수 있습니다:
알림 표시 우선순위
알림 표시 우선순위 설정은 Android O 이상을 실행하는 기기에서는 더 이상 사용되지 않습니다. 최신 장치의 경우 알림 채널 구성을 통해 우선 순위를 설정하십시오.
푸시 알림의 우선순위 수준은 다른 알림에 비해 알림 트레이에 표시되는 방식에 영향을 미칩니다. 또한 우선순위가 일반 이하인 메시지는 배터리 수명을 보존하기 위해 지연 시간이 약간 더 길어지거나 일괄 발송되는 반면, 우선순위가 높은 메시지는 항상 즉시 발송되므로 전송 속도와 방식에도 영향을 줄 수 있습니다.
Android O에서는 알림 우선 순위가 알림 채널의 속성이 되었습니다. 채널의 구성 중 우선순위를 정의하려면 개발자와 협력해야 하며, 알림 소리를 보낼 때 적절한 채널을 선택하려면 대시보드를 사용해야 합니다. Android O 이전 버전을 실행하는 디바이스의 경우, Braze 대시보드 및 메시징 API를 통해 Android 알림의 우선순위를 지정할 수 있습니다.
전체 사용자에게 특정 우선순위를 지정하여 메시지를 보내려면 알림 채널 구성을 통해 간접적으로 우선순위를 지정하고 (O+ 디바이스 대상) 대시보드에서 개별 우선순위를 전송하는 것이 좋습니다(<O 디바이스 대상).
Android 또는 Fire OS 푸시 알림에서 설정할 수 있는 우선 순위 수준은 다음과 같습니다:
우선순위 | 설명/용도 | priority 값(API 메시지의 경우) |
---|---|---|
최대 | 긴급하거나 시간이 촉박한 메시지 | 2 |
높음 | 친구의 새 메시지와 같은 중요한 커뮤니케이션 | 1 |
기본값 | 대부분의 알림 - 메시지가 다른 우선순위 유형에 명시적으로 속하지 않는 경우에 사용합니다. | 0 |
낮음 | 사용자가 알기를 원하지만 즉각적인 조치가 필요하지 않은 정보 | -1 |
최소 | 상황별 또는 배경 정보. | -2 |
자세한 내용은 Google의 Android 알림 문서를 참조하세요.
소리
Android O에서는 알림 소리가 알림 채널의 속성이 되었습니다. 개발자와 협력하여 채널을 구성하는 동안 채널의 사운드를 정의한 다음 대시보드를 사용하여 알림을 보낼 때 적절한 채널을 선택해야 합니다.
Android O 이전 버전을 실행하는 디바이스의 경우, Braze를 사용하면 대시보드 작성기를 통해 개별 푸시 메시지의 사운드를 설정할 수 있습니다. 기기에서 로컬 사운드 리소스를 지정하면 됩니다(예: android.resource://com.mycompany.myapp/raw/mysound
). 이 필드에서 ‘기본값’을 지정하면 기기에서 기본 알림 사운드가 재생됩니다. 이는 메시징 API 또는 푸시 작성기의 고급 설정 아래의 대시보드를 통해 지정할 수 있습니다.
대시보드 프롬프트에 전체 사운드 리소스 URI(예: android.resource://com.mycompany.myapp/raw/mysound
)를 입력합니다.
전체 사용자에게 특정 사운드로 메시지를 보내려면 알림 채널 구성을 통해 간접적으로 사운드를 지정하고 (O+ 디바이스 대상) 대시보드에서 개별 사운드를 전송하는 방법(<O 디바이스 대상)을 권장합니다.
Prerequisites
이 기능을 사용하려면 먼저 Swift Braze SDK를 통합해야 합니다. 푸시 알림도 설정해야 합니다.
동작 버튼 사용자 지정
Braze Swift SDK는 푸시 액션 버튼에 대한 URL 처리 지원을 제공합니다. Braze 기본 푸시 카테고리에는 네 가지 기본 푸시 실행 버튼 세트(Accept/Decline
, Yes/No
, Confirm/Cancel
, More
)가 있습니다.
수동으로 작업 버튼 등록하기
푸시 동작 버튼을 수동으로 등록하는 것은 권장하지 않습니다.
configuration.push.automation
구성 옵션을 사용하여 푸시 알림을 설정하면 Braze는 기본 푸시 카테고리에 대한 액션 버튼을 자동으로 등록하고 푸시 액션 버튼 클릭 분석 및 URL 라우팅을 처리합니다.
그러나 대신 푸시 동작 버튼을 수동으로 등록하도록 선택할 수 있습니다.
1단계: Braze 기본 푸시 카테고리 추가하기
푸시 등록 시 다음 코드를 사용하여 기본 푸시 카테고리에 등록하세요:
a
1
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
1
[[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:BRZNotifications.categories];
백그라운드 활성화 모드에서 푸시 동작 버튼을 클릭하면 알림만 해제되고 앱은 열리지 않습니다. 다음에 사용자가 앱을 열면 이 작업에 대한 버튼 클릭 분석이 서버로 플러시됩니다.
2단계: 대화형 푸시 처리 활성화
클릭 분석 및 URL 라우팅을 포함한 푸시 액션 버튼 처리를 활성화하려면 앱의 didReceive(_:completionHandler:)
델리게이트 메서드에 다음 코드를 추가하세요:
1
AppDelegate.braze?.notifications.handleUserNotification(response: response, withCompletionHandler: completionHandler)
1
2
[AppDelegate.braze.notifications handleUserNotificationWithResponse:response
withCompletionHandler:completionHandler];
UNNotification
프레임워크를 사용하고 Braze 알림 방법을 구현한 경우 이 방법이 이미 통합되어 있을 것입니다.
푸시 카테고리 사용자 지정
Braze는 기본 푸시 카테고리 세트를 제공할 뿐만 아니라 커스텀 알림 카테고리 및 작업을 지원합니다. 애플리케이션에 카테고리를 등록한 후 Braze 대시보드를 사용하여 이러한 사용자 지정 알림 카테고리를 사용자에게 보낼 수 있습니다.
다음은 기기에 표시되는 LIKE_CATEGORY
를 활용하는 예제입니다.
1단계: 카테고리 등록
앱에 카테고리를 등록하려면 다음과 유사한 방법을 사용합니다:
1
2
3
4
5
6
7
8
9
10
Braze.Notifications.categories.insert(
.init(identifier: "LIKE_CATEGORY",
actions: [
.init(identifier: "LIKE_IDENTIFIER", title: "Like", options: [.foreground]),
.init(identifier: "UNLIKE_IDENTIFIER", title: "Unlike", options: [.foreground])
],
intentIdentifiers: []
)
)
UNUserNotificationCenter.current().setNotificationCategories(Braze.Notifications.categories)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
NSMutableSet<UNNotificationCategory *> *categories = [BRZNotifications.categories mutableCopy];
UNNotificationAction *likeAction = [UNNotificationAction actionWithIdentifier:@"LIKE_IDENTIFIER"
title:@"Like"
options:UNNotificationActionOptionForeground];
UNNotificationAction *unlikeAction = [UNNotificationAction actionWithIdentifier:@"UNLIKE_IDENTIFIER"
title:@"Unlike"
options:UNNotificationActionOptionForeground];
UNNotificationCategory *likeCategory = [UNNotificationCategory categoryWithIdentifier:@"LIKE_CATEGORY"
actions:@[likeAction, unlikeAction]
intentIdentifiers:@[]
options:UNNotificationCategoryOptionNone];
[categories addObject:likeCategory];
[UNUserNotificationCenter.currentNotificationCenter setNotificationCategories:categories];
UNNotificationAction
을 생성할 때 작업 옵션 목록을 지정할 수 있습니다. 예를 들어 UNNotificationActionOptions.foreground
는 사용자가 실행 버튼을 탭한 후 앱을 열도록 합니다. ‘앱 열기’ 및 ‘애플리케이션으로 딥 링크’와 같은 탐색 관련 클릭 시 동작에 필요합니다. 자세한 내용은 UNNotificationActionOptions
를 참조하세요.
2단계: 카테고리 선택
카테고리를 등록한 후 Braze 대시보드를 사용하여 해당 유형의 알림을 사용자에게 발송합니다.
앱으로 딥링킹하거나 URL을 여는 등 특별한 동작이 있는 액션 버튼에 대해서만 사용자 지정 알림 카테고리를 정의하면 됩니다. 알림을 해제하기만 하는 실행 버튼에 대해서는 정의할 필요가 없습니다.
- Braze 대시보드에서 메시징 > 푸시 알림을 선택한 다음, iOS 푸시 캠페인을 선택합니다.
- 푸시 알림 작성에서 작업 버튼을 켭니다.
- iOS 알림 카테고리 드롭다운에서 미리 등록한 커스텀 iOS 카테고리 입력을 선택합니다.
- 마지막으로 앞서 만든 카테고리 중 하나를 입력합니다. 다음 예에서는 사용자 지정 카테고리를 사용합니다:
LIKE_CATEGORY
.
배지 사용자 지정
배지는 사용자의 관심을 끌기에 적합한 작은 아이콘입니다. 배지 개수를 지정할 수 있습니다. 설정 탭에서 브레이즈 대시보드를 사용하여 푸시 알림을 작성할 때 배지 개수를 지정할 수 있습니다. 애플리케이션의 applicationIconBadgeNumber
속성정보 또는 원격 알림 페이로드를 통해 배지 수를 수동으로 업데이트할 수도 있습니다.
Braze는 앱이 포그라운드에 있는 상태에서 Braze 알림을 받으면 배지 수를 자동으로 지웁니다. 배지 수를 0으로 설정하면 알림 센터의 알림도 지워집니다.
정상적인 앱 작동의 일부로 배지를 지우거나 배지를 지우는 푸시를 전송하여 배지를 지우려는 계획이 없는 경우 앱의 applicationDidBecomeActive:
위임 메서드에 다음 코드를 추가하여 앱이 활성화되면 배지를 지워야 합니다.
1
2
3
4
5
6
7
8
9
10
// For iOS 16.0+
let center = UNUserNotificationCenter.current()
do {
try await center.setBadgeCount(0)
} catch {
// Handle errors
}
// Prior to iOS 16. Deprecated in iOS 17+.
UIApplication.shared.applicationIconBadgeNumber = 0
1
2
3
4
5
6
7
8
9
10
// For iOS 16.0+
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center setBadgeCount:0 withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
// Handle errors
}
}];
// Prior to iOS 16. Deprecated in iOS 17+.
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
사운드 사용자 지정
1단계: 앱에서 사운드 호스팅
사용자 지정 푸시 알림 사운드는 앱의 기본 번들 내에서 로컬로 호스팅해야 합니다. 허용되는 오디오 데이터 형식은 다음과 같습니다:
- 선형 PCM
- MA4
- µLaw
- aLaw
오디오 데이터를 AIFF, WAV 또는 CAF 파일로 패키징할 수 있습니다. Xcode에서 사운드 파일을 프로젝트에 애플리케이션 번들의 지역화되지 않은 리소스로 추가합니다.
사용자 지정 사운드는 재생 시 30초 미만이어야 합니다. 커스텀 사운드가 이 제한을 초과하면 기본 시스템 사운드가 대신 재생됩니다.
사운드 파일 변환
afconvert 도구를 사용하여 사운드를 변환할 수 있습니다. 예를 들어 16비트 선형 PCM 시스템 사운드 Submarine.aiff를 CAF 파일에서 IMA4 오디오로 변환하려면 터미널에서 다음 명령을 사용합니다.
1
afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v
QuickTime Player에서 사운드를 열고 동영상 메뉴에서 동영상 검사기 표시를 선택하면 사운드를 검사하여 데이터 형식을 확인할 수 있습니다.
2단계: 사운드에 대한 프로토콜 URL 제공
앱에서 사운드 파일의 위치로 연결되는 프로토콜 URL을 지정해야 합니다. 이를 수행하는 방법에는 두 가지가 있습니다:
- Apple 푸시 오브젝트의
sound
매개변수를 사용하여 URL을 Braze에 전달합니다. - 대시보드에서 URL을 지정합니다. 푸시 작성기에서 설정을 선택하고 사운드 필드에 프로토콜 URL을 입력합니다.
지정한 사운드 파일이 존재하지 않거나 ‘default’ 키워드가 입력된 경우 Braze는 기기의 기본 알림 사운드를 사용합니다. 대시보드 외에도 [메시징 API][12]를 통해 사운드를 구성할 수도 있습니다.
자세한 내용은 사용자 지정 경고음 준비에 관한 Apple 개발자 문서를 참조하세요.
설정
대시보드를 통해 푸시 캠페인을 만들 때 작성 단계의 설정 탭을 클릭하면 사용 가능한 고급 설정을 볼 수 있습니다.
키-값 쌍
Braze에서는 커스텀 정의 문자열 키-값 페어(extras
)를 푸시 알림과 함께 애플리케이션에 전송할 수 있습니다. 추가 항목은 대시보드 또는 API를 통해 정의할 수 있으며, 푸시 위임 구현에 전달되는 notification
사전 내에서 키-값 페어로 사용할 수 있습니다.
경고 옵션
경고 옵션 확인란을 선택하여 알림이 기기에 표시되는 방식을 조정할 수 있는 키-값 드롭다운을 확인합니다.
콘텐츠 가용 플래그 추가
콘텐츠 가용 플래그 추가 확인란을 선택하여 기기가 백그라운드에서 새 콘텐츠를 다운로드하도록 지시합니다. 가장 일반적으로 무음 알림을 보내고 싶은 경우 이 옵션을 선택할 수 있습니다.
변경 가능한 콘텐츠 플래그 추가
고급 수신기 사용자 지정을 사용하려면 변경 가능한 콘텐츠 플래그 추가 확인란을 선택합니다. 이 플래그는 이 확인란의 값에 관계없이 리치 알림을 작성할 때 자동으로 전송됩니다.
접기 ID
축소 ID를 지정하여 유사한 알림을 결합합니다. 동일한 축소 ID로 여러 알림을 발송한 경우, 기기에는 가장 최근 수신된 알림만 표시됩니다. 통합 알림에 대한 Apple의 문서를 참조하세요.
만료
만료 확인란을 선택하면 메시지의 만료 시간을 설정할 수 있습니다. 사용자 기기와 연결이 끊어지면 Braze는 지정된 시간까지 계속해서 메시지 발송을 시도합니다. 이 옵션을 설정하지 않으면 플랫폼은 기본적으로 30일 만료로 설정됩니다. 배달 전에 만료되는 푸시 알림은 실패로 간주되지 않으며 반송으로 기록되지 않습니다.
Prerequisites
이 기능을 사용하려면 먼저 Android Braze SDK를 통합해야 합니다. 푸시 알림도 설정해야 합니다.
설정
Braze 대시보드를 통해 전송되는 FireOS 푸시 알림에는 여러 가지 고급 설정을 사용할 수 있습니다. 이 기사에서는 이러한 기능과 성공적으로 사용하는 방법에 대해 설명합니다.
TTL
TTL( Time to Live ) 필드에서는 푸시 메시징 서비스에 메시지를 저장할 사용자 지정 기간을 설정할 수 있습니다. TTL의 기본값은 FCM의 경우 4주, ADM의 경우 31일입니다.
요약 텍스트
요약 텍스트를 사용하면 확장된 알림 보기에서 추가 텍스트를 설정할 수 있습니다. 이미지가 포함된 알림의 캡션 역할도 합니다.
요약 텍스트는 확장된 보기에서 메시지 본문 아래에 표시됩니다.
푸시 알림에 이미지가 포함된 경우, 메시지 텍스트는 축소된 보기에서 표시되며, 요약 텍스트는 알림이 확장될 때 이미지 캡션으로 표시됩니다.
사용자 지정 URI
사용자 지정 URI 기능을 사용하면 알림을 클릭할 때 이동할 웹 URL 또는 Android 리소스를 지정할 수 있습니다. 사용자 지정 URI가 지정되지 않은 경우 알림을 클릭하면 사용자가 앱으로 이동합니다. 커스텀 URI를 사용하여 앱 내부에 딥링킹하고 사용자를 앱 외부에 존재하는 리소스로 연결할 수 있습니다. 이는 그림과 같이 메시징 API 또는 푸시 작성기의 고급 설정 아래의 대시보드를 통해 지정할 수 있습니다:
알림 표시 우선순위
알림 표시 우선순위 설정은 Android O 이상을 실행하는 기기에서는 더 이상 사용되지 않습니다. 최신 장치의 경우 알림 채널 구성을 통해 우선 순위를 설정하십시오.
푸시 알림의 우선순위 수준은 다른 알림과 비교하여 알림 트레이에 알림이 표시되는 방식에 영향을 줍니다. 또한 우선순위가 일반 이하인 메시지는 배터리 수명을 보존하기 위해 지연 시간이 약간 더 길어지거나 일괄 발송되는 반면, 우선순위가 높은 메시지는 항상 즉시 발송되므로 전송 속도와 방식에도 영향을 줄 수 있습니다.
Android O에서는 알림 우선 순위가 알림 채널의 속성이 되었습니다. 채널의 구성 중 우선순위를 정의하려면 개발자와 협력해야 하며, 알림 소리를 보낼 때 적절한 채널을 선택하려면 대시보드를 사용해야 합니다. Android O 이전 버전을 실행하는 디바이스의 경우, Braze 대시보드 및 메시징 API를 통해 FireOS 알림의 우선순위를 지정할 수 있습니다.
전체 사용자에게 특정 우선순위를 지정하여 메시지를 보내려면 알림 채널 구성을 통해 간접적으로 우선순위를 지정하고 (O+ 디바이스 대상) 대시보드에서 개별 우선순위를 전송하는 것이 좋습니다(<O 디바이스 대상).
Fire OS 푸시 알림에서 설정할 수 있는 우선 순위 수준은 다음과 같습니다:
우선순위 | 설명/용도 | priority 값(API 메시지의 경우) |
---|---|---|
최대 | 긴급하거나 시간이 촉박한 메시지 | 2 |
높음 | 친구의 새 메시지와 같은 중요한 커뮤니케이션 | 1 |
기본값 | 대부분의 알림 - 메시지가 다른 우선순위 유형에 명시적으로 속하지 않는 경우에 사용합니다. | 0 |
낮음 | 사용자가 알기를 원하지만 즉각적인 조치가 필요하지 않은 정보 | -1 |
최소 | 상황별 또는 배경 정보. | -2 |
자세한 내용은 Google의 Android 알림 문서를 참조하세요.
소리
Android O에서는 알림 소리가 알림 채널의 속성이 되었습니다. 개발자와 협력하여 채널을 구성하는 동안 채널의 사운드를 정의한 다음 대시보드를 사용하여 알림을 보낼 때 적절한 채널을 선택해야 합니다.
Android O 이전 버전을 실행하는 디바이스의 경우, Braze를 사용하면 대시보드 작성기를 통해 개별 푸시 메시지의 사운드를 설정할 수 있습니다. 기기에서 로컬 사운드 리소스를 지정하면 됩니다(예: android.resource://com.mycompany.myapp/raw/mysound
). 이 필드에서 ‘기본값’을 지정하면 기기에서 기본 알림 사운드가 재생됩니다. 이는 메시징 API 또는 푸시 작성기의 설정 아래 대시보드를 통해 지정할 수 있습니다.
대시보드 프롬프트에 전체 사운드 리소스 URI(예: android.resource://com.mycompany.myapp/raw/mysound
)를 입력합니다.
전체 사용자에게 특정 사운드로 메시지를 보내려면 알림 채널 구성을 통해 간접적으로 사운드를 지정하고 (O+ 디바이스 대상) 대시보드에서 개별 사운드를 전송하는 방법(<O 디바이스 대상)을 권장합니다.