Förstå nyttolaststrukturen för push-meddelanden push-payload
Med Adobe Campaign kan ni skicka personaliserade och segmenterade push-meddelanden på iOS- och Android-mobilenheter till mobilappar (mobilappar).
Varje push-meddelande som tas emot på en mobilapp innehåller viss information som används av appen för att visa push-meddelandet om ett varningsmeddelande skickas, och troligen även för att göra ytterligare beräkningar, särskilt om ett tyst push-meddelande skickas.
Den här informationen tas emot av mobilappskoden i en händelsehanterare som anger att ett push-meddelande har tagits emot. När du skickar push-meddelanden från Adobe Campaign Standard kan informationen som tas emot i mobilappen även innehålla Campaign Standard-specifik information som kan användas för att utnyttja vissa funktioner som Campaign Standarden tillhandahåller. Dessutom kan nyttolasten innehålla anpassade data som kan användas av mobilappen.
Det här dokumentet beskriver strukturen för den nyttolast som tas emot i en mobilapp när ett push-meddelande skickas till en app från Adobe Campaign Standard.
Push-nyttolaststruktur push-payload-structure
I det här avsnittet beskrivs en struktur för ett exempel på nyttolast för olika mobila plattformar och de viktigaste attributen som finns i det. Detta är strukturen för nyttolasten som tas emot i mobilappskoden i händelsehanteraren som anger att ett push-meddelande har tagits emot.
Nyttolastattributen och deras värden varierar beroende på de konfigurationer som finns i avancerade alternativ för push-meddelanden. I det här avsnittet finns också en mappning mellan dessa konfigurationer i Campaign Standard-användargränssnittet och attributen i nyttolasten för att klargöra hur nyttolasten ändras när ett alternativ konfigureras i Campaign Standarden.
För iOS Mobile App payload-structure-ios
Sample Payload skickat från Adobe Campaign till iOS-appen:
{
"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"}
JSON-provnyttolast som ska användas med iOS APNS-testaren
{
"aps": {
"alert": {
"title": "Push Notification Title",
"body": "body of push"
},
"badge": 33,
"sound": "default"
},
"custom_field1": "custom_value1",
"uri": "https://mydeeplinkurl.com"
}
Det viktigaste avsnittet i nyttolasten är aps-ordlistan, som innehåller Apple-definierade nycklar och används för att avgöra hur det system som tar emot meddelandet ska informera användaren, om något alls. Det här avsnittet innehåller fördefinierade nycklar som används av mobilappen för att formulera beteendet för push-meddelandet.
Detaljerad information om attributen i appar finns i Apple utvecklardokument: Skapar fjärrmeddelandenyttolasten.
För Android App payload-structure-android
Sample Payload send from Adobe Campaign to Android app
{
"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
}
}
JSON-provnyttolast som ska använda Google FCM-provare
{
"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
}
}
Nyttolasten innehåller ett datameddelande som innehåller allt leveransinnehåll för push-meddelanden, inklusive anpassade nyckel-/värdepar, och klientappen måste hantera meddelandet för att skapa och visa push-meddelanden, om det behövs, eller för att lägga till någon annan affärslogik.
Om du vill förstå aspekter av en android-nyttolast kan du läsa Meddelandebegrepp och alternativ (fcm).
Mappning mellan Campaign Standard Configurations och Payload Attributes mapping-payload
Meddelandetext
alert → body
brödtext
Rubrik- och brödnycklarna anger innehållet i aviseringen.
Kategorinyckeln hjälper systemet att visa åtgärder för den kategorin som knappar i varningsgränssnittet.
(Gäller endast iOS 10 eller senare)
När du anger ett värde för denna URL skickas flaggan för ändringsbart innehåll automatiskt till nyttolasten.
(Gäller endast iOS 10 eller senare)
(Gäller endast iOS 10 eller senare)
(Gäller endast iOS 10 eller senare)
(Gäller endast för Android)
_dId
_dId
De här attributen krävs om din app vill anropa ett återanslående för att spåra när push-meddelandet klickades/öppnades. Den här informationen beräknas och skickas internt av programservern utan att användaren behöver göra något.
Information om återanslående finns på den här sidan.
Hämta nyttolastinformation i mobilappskoden payload-information
Nyttolastinformationen som skickas av appservern tas emot av mobilappskoden i en händelsehanterare som anger att ett push-meddelande har tagits emot. Händelsen varierar beroende på vilken mobilplattform som du arbetar med och även beroende på om appen körs i förgrunden eller i bakgrunden. Följande dokumentation hjälper dig att identifiera den händelsehanterare som du vill hantera baserat på ditt användningsfall.
- iOS-program: Hantera fjärrmeddelanden i avsnittet Fjärrmeddelanden.
- Android-program: Tar emot meddelanden i en Android-klientapp
Exempel för iOS Mobile App
- (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"];
}
Exempel för Android Mobile FCM-app
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");
}