푸시 알림 페이로드 구조 이해 push-payload
Adobe Campaign을 사용하면 iOS 및 Android 모바일 장치에서 개인화되고 세그먼트화된 푸시 알림을 모바일 애플리케이션(모바일 앱)으로 보낼 수 있습니다.
모바일 앱에서 수신되는 모든 푸시 알림은 경고 푸시 알림이 전송되는 경우 앱에서 푸시 알림을 표시하는 데 사용하는 정보를 제공하며, 특히 자동 푸시 알림이 전송되는 경우 추가 계산을 수행할 가능성이 높습니다.
이 정보는 푸시 알림이 수신되었음을 나타내는 이벤트 처리기의 모바일 앱 코드에 의해 수신됩니다. Adobe Campaign Standard에서 푸시 알림을 보낼 때 모바일 앱에서 받은 정보에는 Campaign Standard에서 제공하는 일부 기능을 활용하는 데 사용할 수 있는 Campaign Standard 특정 정보도 포함될 수 있습니다. 또한 페이로드에는 모바일 앱에서 사용할 수 있는 사용자 지정 데이터가 포함될 수 있습니다.
이 문서에서는 푸시 알림이 Adobe Campaign Standard에서 앱으로 성공적으로 전송될 때 모바일 앱에서 수신되는 페이로드의 구조에 대해 설명합니다.
푸시 페이로드 구조 push-payload-structure
이 섹션에서는 다양한 모바일 플랫폼에 대한 샘플 페이로드의 구조에 대해 자세히 설명하고 여기에 포함된 주요 속성에 대해 설명합니다. 푸시 알림이 수신되었음을 나타내는 이벤트 처리기의 모바일 앱 코드에 수신되는 페이로드의 구조입니다.
페이로드 속성 및 해당 값은 푸시 알림 고급 옵션에 제공된 구성에 따라 달라집니다. 또한 이 섹션에서는 Campaign Standard에서 옵션을 구성할 때 페이로드가 어떻게 변경되는지 명확하게 하기 위해 Campaign Standard UI의 이러한 구성과 페이로드의 속성 간의 매핑을 제공합니다.
iOS 모바일 앱용 payload-structure-ios
Adobe Campaign에서 iOS 앱으로 보낸 샘플 페이로드:
{
"aps":{
"alert":{
"body":"This is the content of my push notification",
"title":"Push Notification Title"
},
"content-available":1,
"category":"NEW_MESSAGE_CATEGORY",
"badge":2,
"mutable-content":1,
"sound":"default"
},
"custom_field1":"custom_value1",
"custom_field2":"custom_value2",
"media-attachment-url":"https://2.img-dpreview.com/files/p/articles/9440145363/Creative_Cloud.jpeg",
"uri":"https://mydeeplinkurl.com",
"_dId":"56c4",
"_mId":"h138a"}
iOS APNS 테스터에서 사용할 JSON 샘플 페이로드
{
"aps": {
"alert": {
"title": "Push Notification Title",
"body": "body of push"
},
"badge": 33,
"sound": "default"
},
"custom_field1": "custom_value1",
"uri": "https://mydeeplinkurl.com"
}
페이로드의 가장 중요한 섹션은 Apple 정의 키가 포함된 aps 사전이며, 알림을 받는 시스템이 사용자에게 경고를 보내는 방법을 결정하는 데 사용됩니다(전혀 아님). 이 섹션에는 모바일 앱에서 푸시 알림의 동작을 만드는 데 사용하는 사전 정의된 키가 포함되어 있습니다.
앱 내의 특성에 대한 자세한 내용은 Apple 개발자 문서에서 확인할 수 있습니다. 원격 알림 페이로드 만들기.
Android 앱용 payload-structure-android
Adobe Campaign에서 Android 앱으로 샘플 페이로드 보내기
{
"collapseKey": "1476005",
"priority": "high",
"data": {
"_dId": "d57fd6",
"_mId": "h1685a5",
"body": "adobe body 123",
"category": "adobe category 123",
"custom key 1": "value 1",
"custom key 2": "test value 2",
"custom key 3": "foo bar android",
"media-attachment-url": "http://adobegiphy.com?test=123",
"sound": "http://testcampaign.instance.com/r/?id=s1685a5,d57fd6,d57ff5",
"title": "adobe title 123",
"uri": "http://testcampaign.instance.com/r/?id=d1685a5,d57fd6,d57ff6",
"badge": 1817
}
}
Google FCM 테스터 를 사용할 JSON 샘플 페이로드
{
"to": "<==========ENTER your device token==============>",
"collapseKey": "1476005",
"priority": "high",
"data": {
"_dId": "d57fd6",
"_mId": "h1685a5",
"title": "adobe title 123",
"body": "adobe body 123",
"category": "adobe category 123",
"custom key 1": "value 1",
"custom key 2": "test value 2",
"custom key 3": "foo bar android",
"media-attachment-url": "http://adobegiphy.com?test=123",
"sound": "http://testcampaign.instance.com/r/?id=s1685a5,d57fd6,d57ff5",
"uri": "http://testcampaign.instance.com/r/?id=d1685a5,d57fd6,d57ff6",
"badge": 1817
}
}
페이로드에는 사용자 지정 키/값 쌍을 포함한 모든 푸시 알림 게재 콘텐츠가 포함된 데이터 메시지가 포함되어 있으며, 필요한 경우 클라이언트 앱에서 메시지를 처리하여 푸시 알림을 작성하고 표시하거나 다른 비즈니스 논리를 추가해야 합니다.
Android 페이로드의 측면을 이해하려면 fcm(메시징 개념 및 옵션)을 참조하세요.
Campaign Standard 구성과 페이로드 속성 간 매핑 mapping-payload
메시지 본문
경고 → 본문
본문
제목 및 본문 키가 경고 내용을 제공합니다.
범주 키를 사용하면 시스템에서 해당 범주에 대한 작업을 경고 인터페이스의 단추로 표시할 수 있습니다.
(iOS 10 이상에만 적용 가능)
이 URL의 값을 제공하면 변경 가능한 콘텐츠 플래그가 자동으로 페이로드로 전송됩니다.
(iOS 10 이상에만 적용 가능)
(iOS 10 이상에만 적용 가능)
(iOS 10 이상에만 적용 가능)
(Android에만 적용 가능)
_dId
_dId
푸시 알림을 클릭/열었을 때 앱이 추적 포스트백을 호출하여 추적하려는 경우 이러한 특성이 필요합니다. 이 정보는 사용자의 개입 없이 앱 서버에서 내부적으로 계산되고 전송됩니다.
포스트백에 대한 정보는 이 페이지에 있습니다.
모바일 앱 코드에서 페이로드 정보를 검색하는 방법 payload-information
앱 서버에서 보내는 페이로드 정보는 푸시 알림이 수신되었음을 나타내는 이벤트 핸들러의 모바일 앱 코드에 의해 수신됩니다. 이 이벤트는 작업 중인 모바일 플랫폼과 앱이 전경에서 실행 중인지 배경에서 실행 중인지 여부에 따라 달라집니다. 다음 설명서는 사용 사례에 따라 처리할 이벤트 처리기를 식별하는 데 도움이 됩니다.
- iOS 응용 프로그램: 원격 알림의 원격 알림 처리 섹션.
- Android 응용 프로그램: Android 클라이언트 앱에서 메시지 수신
iOS 모바일 앱용 샘플
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
NSDictionary *apsDict = [userInfo objectForKey:@"aps"];
NSDictionary *alertDict = [apsDict objectForKey:@"alert"];
NSString *title = [alertDict objectForKey:@"title"];
NSString *body = [alertDict objectForKey:@"body"];
NSString *category = [apsDict objectForKey:@"category"];
NSString *deliveryId = userInfo[@"_dId"];
NSString *broadlogId = userInfo[@"_mId"];
NSString *mediaAttachmentURL = userInfo[@"media-attachment-url"];
NSString *deeplinkURL = userInfo[@"uri"];
NSString *customValue1 = userInfo[@"custom_field1"];
}
Android Mobile FCM 앱용 샘플
public void onMessageReceived(RemoteMessage message) {
Map<String, String> dataMap = message.getData();
String title = dataMap.get("title");
String body = dataMap.get("body");
String category = dataMap.get("category");
String deliveryId = dataMap.get("_dId");
String broadlogId = dataMap.get("_mId");
String mediaAttachmentURL = dataMap.get("media-attachment-url");
String deeplinkURL = dataMap.get("uri");
String customValue1 = dataMap.get("custom_field1");
}