Comprensione della struttura del payload per le notifiche push push-payload
Adobe Campaign ti consente di inviare notifiche push personalizzate e segmentate su dispositivi mobili iOS e Android alle app mobili (app mobile).
Ogni notifica push ricevuta su un’app mobile contiene alcune informazioni utilizzate dall’app per visualizzare la notifica push in caso di invio di una notifica push di avviso ed è molto probabile che venga eseguito un ulteriore calcolo, soprattutto se viene inviata una notifica push invisibile all’utente.
Queste informazioni vengono ricevute dal codice dell'app mobile in un gestore eventi che indica che è stata ricevuta una notifica push. Quando si inviano notifiche push da Adobe Campaign Standard, le informazioni ricevute nell’app mobile possono contenere anche informazioni specifiche per Campaign Standard che possono essere utilizzate per sfruttare alcune funzioni fornite da Campaign Standard. Inoltre, il payload può contenere dati personalizzati che possono essere utilizzati dall’app mobile.
Questo documento descrive la struttura del payload ricevuto in un’app mobile quando una notifica push viene inviata correttamente a un’app da Adobe Campaign Standard.
Struttura del payload push push-payload-structure
Questa sezione descrive la struttura di un payload di esempio per varie piattaforme mobili e descrive i principali attributi in essa contenuti. Struttura del payload ricevuto nel codice dell’app mobile nel gestore eventi che indica la ricezione di una notifica push.
Gli attributi del payload e i relativi valori variano in base alle configurazioni fornite nelle opzioni avanzate per le notifiche push. Questa sezione fornisce anche una mappatura tra queste configurazioni nell’interfaccia utente di Campaign Standard e gli attributi nel payload, al fine di chiarire come cambierà il payload al momento della configurazione di un’opzione in Campaign Standard.
Per l’app mobile di iOS payload-structure-ios
Payload di esempio inviato da Adobe Campaign all'app 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"}
Payload di esempio JSON da utilizzare con iOS APNS Tester
{
"aps": {
"alert": {
"title": "Push Notification Title",
"body": "body of push"
},
"badge": 33,
"sound": "default"
},
"custom_field1": "custom_value1",
"uri": "https://mydeeplinkurl.com"
}
La sezione più importante del payload è il dizionario aps, che contiene le chiavi definite da Apple e viene utilizzato per determinare in che modo il sistema che riceve la notifica dovrebbe avvisare l’utente, se presente. Questa sezione contiene chiavi predefinite utilizzate dall’app mobile per formulare il comportamento della notifica push.
Dettagli approfonditi sugli attributi all'interno di aps sono disponibili nei documenti per gli sviluppatori di Apple: Creazione del payload di notifica remota.
Per l’app Android payload-structure-android
Payload di esempio inviato da Adobe Campaign all'app 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
}
}
Payload di esempio JSON per utilizzare Google FCM tester
{
"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
}
}
Il payload contiene un messaggio dati che include tutti i contenuti di consegna delle notifiche push, incluse le coppie chiave/valore personalizzate. L’app client deve gestire il messaggio per generare e visualizzare le notifiche push, se necessario, oppure per aggiungere qualsiasi altra logica di business.
Per informazioni sugli aspetti di un payload Android, consulta Concetti e opzioni di messaggistica (fcm).
Mappatura tra configurazioni Campaign Standard e attributi del payload mapping-payload
Corpo del messaggio
corpo → avviso
corpo
Il titolo e le chiavi del corpo forniscono il contenuto dell'avviso.
La chiave di categoria consente al sistema di visualizzare le azioni per tale categoria come pulsanti nell'interfaccia di avviso.
(applicabile solo per iOS 10 o versioni successive)
Se fornisci un valore per questo URL, il flag di contenuto mutabile viene inviato automaticamente nel payload.
(applicabile solo per iOS 10 o versione successiva)
(applicabile solo per iOS 10 o versione successiva)
(applicabile solo per iOS 10 o versione successiva)
(applicabile solo per Android)
_dId
_dId
Questi attributi sono necessari se l'app desidera chiamare un postback di tracciamento per tenere traccia di quando si è fatto clic o si è aperta la notifica push. Queste informazioni vengono calcolate e inviate internamente dall’app server senza l’intervento dell’utente.
Le informazioni sui postback sono disponibili in questa pagina.
Come recuperare le informazioni sul payload nel codice dell’app mobile payload-information
Le informazioni sul payload inviate dal server dell’app vengono ricevute dal codice dell’app mobile in un gestore eventi che indica la ricezione di una notifica push. Questo evento varia in base alla piattaforma mobile su cui si lavora e anche in base al fatto che l’app sia in esecuzione in primo piano o in background. La seguente documentazione consente di identificare il gestore eventi che desideri gestire in base al caso d’uso.
- Applicazioni iOS: Gestione delle notifiche remote sezione in Notifiche remote.
- Applicazioni Android: Ricezione di messaggi in un'app client Android
Esempio per app mobile 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"];
}
Esempio per app 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");
}