Como entender a estrutura de carga das notificações por push push-payload
O Adobe Campaign permite enviar notificações por push personalizadas e segmentadas em dispositivos móveis iOS e Android para aplicativos móveis (aplicativo móvel).
Cada notificação por push recebida em um aplicativo móvel carrega algumas informações usadas pelo aplicativo para exibir a notificação por push se uma notificação por push de alerta for enviada, e provavelmente também fará alguns cálculos adicionais, especialmente se uma notificação por push silenciosa for enviada.
Essas informações são recebidas pelo código do aplicativo móvel em um manipulador de eventos que indica que uma notificação por push foi recebida. Ao enviar notificações por push do Adobe Campaign Standard, as informações recebidas no aplicativo móvel também podem conter informações específicas do Campaign Standard, que podem ser usadas para aproveitar alguns recursos fornecidos pelo Campaign Standard. Além disso, a carga pode conter dados personalizados que podem ser consumidos pelo aplicativo móvel.
Este documento descreve a estrutura do conteúdo recebido em um aplicativo móvel quando uma notificação por push é enviada com êxito para um aplicativo pela Adobe Campaign Standard.
Estrutura de conteúdo de push push-payload-structure
Esta seção detalha uma estrutura de uma amostra de carga para várias plataformas móveis e descreve os principais atributos contidos nela. Esta é a estrutura do payload recebido no código do aplicativo móvel no manipulador de eventos que indica que uma notificação por push foi recebida.
Os atributos de carga e seus valores variam com base nas configurações fornecidas nas opções avançadas de Notificação por push. Esta seção também fornece um mapeamento entre essas configurações na interface do usuário do Campaign Standard e os atributos na carga para esclarecer como a carga será alterada ao configurar uma opção no Campaign Standard.
Para aplicativo móvel iOS payload-structure-ios
Carga de exemplo enviada do Adobe Campaign para o aplicativo 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"}
Carga de amostra JSON a ser usada com o Testador APNS do iOS
{
"aps": {
"alert": {
"title": "Push Notification Title",
"body": "body of push"
},
"badge": 33,
"sound": "default"
},
"custom_field1": "custom_value1",
"uri": "https://mydeeplinkurl.com"
}
A seção mais importante da carga é o dicionário aps, que contém chaves definidas pelo Apple e é usado para determinar como o sistema que recebe a notificação deve alertar o usuário, se for o caso. Esta seção contém chaves predefinidas usadas pelo aplicativo móvel para formular o comportamento da notificação por push.
Detalhes detalhados sobre os atributos em aplicativos podem ser encontrados nos documentos do desenvolvedor do Apple: Criando a Carga de Notificação Remota.
Para aplicativo Android payload-structure-android
Carga de exemplo enviada do Adobe Campaign para o aplicativo 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
}
}
Carga de amostra JSON para usar o testador do Google FCM
{
"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
}
}
A carga contém uma mensagem de dados que inclui todo o conteúdo do delivery de notificação por push, incluindo os pares de chave/valor personalizados, e o aplicativo cliente deve lidar com a mensagem para criar e mostrar a notificação por push, se necessário, ou para adicionar qualquer outra lógica de negócios.
Para entender os aspectos de uma carga do Android, consulte FCM (Messaging Concepts and Options, Conceitos e opções de mensagens).
Mapeamento entre configurações de Campaign Standard e atributos de carga útil mapping-payload
Corpo da mensagem
alerta → corpo
corpo
As chaves de título e corpo fornecem o conteúdo do alerta.
A chave da categoria ajuda o sistema a exibir as ações dessa categoria como botões na interface de alerta.
(Aplicável somente ao iOS 10 ou superior)
Ao fornecer um valor para esta URL, o sinalizador de conteúdo mutável é enviado automaticamente para a carga.
(Aplicável somente para iOS 10 ou superior)
(aplicável somente para iOS 10 ou superior)
(Aplicável somente ao iOS 10 ou superior)
(Aplicável somente para Android)
_dId
_dId
Esses atributos são necessários se o aplicativo quiser chamar um postback de rastreamento para rastrear quando a notificação por push foi clicada/aberta. Essas informações são computadas e enviadas internamente pelo servidor do aplicativo sem a intervenção do usuário.
Informações sobre postbacks podem ser encontradas nesta página.
Como recuperar informações de carga no código do aplicativo móvel payload-information
As informações de carga enviadas pelo servidor do aplicativo são recebidas pelo código do aplicativo móvel em um manipulador de eventos que indica que uma notificação por push foi recebida. Esse evento varia de acordo com a plataforma móvel utilizada e também dependendo se o aplicativo está sendo executado em primeiro ou segundo plano. A documentação a seguir ajuda a identificar o manipulador de eventos que você deseja tratar com base no caso de uso.
- Aplicativos iOS: seção Manipulação de Notificações Remotas em Notificações Remotas.
- Aplicativos Android: Recebendo Mensagens em um Aplicativo Cliente Android
Amostra para o aplicativo móvel do 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"];
}
Amostra do aplicativo FCM do Android Mobile
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");
}