Payload-Struktur der Push-Benachrichtigungen verstehen push-payload
Mit Adobe Campaign können Sie personalisierte und segmentierte Push-Benachrichtigungen auf iOS- und Android-Mobilgeräten an mobile Anwendungen (Mobile Apps) senden.
Jede Push-Benachrichtigung, die auf einer Mobile App empfangen wird, enthält Daten, die von der App verwendet werden, um die Push-Benachrichtigung anzuzeigen, wenn sie als Warnhinweis gesendet wird. Außerdem werden die Daten häufig zur Durchführung weiterer Berechnungen genutzt, insbesondere beim Versand einer stillen Push-Benachrichtigung.
Diese Daten werden vom Code der Mobile App in einem Event-Handler empfangen, der mitteilt, dass eine Push-Benachrichtigung empfangen wurde. Wenn Sie Push-Benachrichtigungen von Adobe Campaign Standard aus senden, enthalten die in der Mobile App empfangenen Daten möglicherweise auch Campaign Standard-spezifische Daten, die dazu dienen können, bestimmte von Campaign Standard bereitgestellte Funktionen zu nutzen. Darüber hinaus kann die Payload benutzerdefinierte Daten beinhalten, die von der Mobile App verwendet werden können.
In diesem Dokument wird die Struktur der Payload beschrieben, die in einer Mobile App empfangen wird, wenn Adobe Campaign Standard erfolgreich eine Push-Benachrichtigung an diese App sendet.
Payload-Struktur bei Push-Benachrichtigungen push-payload-structure
In diesem Abschnitt wird die Struktur einer Beispiel-Payload für verschiedene mobile Plattformen und die darin enthaltenen Hauptattribute beschrieben. Dies ist die Struktur der Payload, die im Mobile-App-Code im Event-Handler empfangen wird und mitteilt, dass eine Push-Benachrichtigung empfangen wurde.
Die Payload-Attribute und ihre Werte variieren je nach der Konfiguration in den erweiterten Optionen für Push-Benachrichtigungen. Dieser Abschnitt enthält auch ein Mapping zwischen diesen Konfigurationen in der Benutzeroberfläche von Campaign Standard und den Attributen in der Payload, um zu veranschaulichen, wie sich die Payload bei der Konfiguration einer Option in Campaign Standard verändert.
Für iOS-Mobile-Apps payload-structure-ios
Beispiel-Payload, die von Adobe Campaign an eine iOS-App gesendet wird:
{
"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-Beispiel-Payload zur Verwendung mit 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"
}
Der wichtigste Bereich der Payload ist das aps-Wörterbuch, das von Apple definierte Schlüssel enthält und bestimmt, wie das System, das die Benachrichtigung erhält, den Benutzer warnen soll (wenn überhaupt). Dieser Abschnitt enthält vordefinierte Schlüssel, mit denen die Mobile App das Verhalten der Push-Benachrichtigung formuliert.
Ausführliche Informationen zu den Attributen in aps finden Sie in der Apple-Entwicklerdokumentation: Creating the Remote Notification Payload.
Für Android-Mobile-Apps payload-structure-android
Beispiel-Payload, gesendet von Adobe Campaign an 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-Beispiel-Payload zur Verwendung mit 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
}
}
Die Payload enthält eine Datennachricht, die alle Inhalte aus dem Push-Benachrichtigungsversand einschließlich der benutzerdefinierten Schlüssel/Wert-Paare umfasst. Die Client-App muss die Nachricht handhaben, um bei Bedarf Push-Benachrichtigungen zu erstellen und anzuzeigen oder um eine andere Business-Logik hinzuzufügen.
Informationen zu Aspekten einer Android-Payload finden Sie unter Messaging Concepts and Options (fcm).
Mapping zwischen Campaign Standard-Konfigurationen und Payload-Attributen mapping-payload
Nachrichtentext
alert → body
body
Die Titel- und Textschlüssel geben den Inhalt der Warnung wieder.
Mit der Kategorietaste kann das System die Aktionen für diese Kategorie als Schaltflächen in der Warnoberfläche anzeigen.
(nur bei iOS 10 oder höher)
Wenn Sie einen Wert für diese URL angeben, wird das Flag für veränderliche Inhalte (mutable-content) automatisch in die Payload gesendet.
(nur bei iOS 10 oder höher)
(nur bei iOS 10 oder höher)
(nur bei iOS 10 oder höher)
(nur bei Android verfügbar)
_dId
_dId
Diese Attribute sind erforderlich, wenn Ihre App einen Tracking-Postback aufrufen möchte, um zu verfolgen, wann die Push-Benachrichtigung angeklickt/geöffnet wurde. Diese Daten werden vom App-Server ohne Benutzereingriff intern berechnet und gesendet.
Informationen zu Postbacks finden Sie auf dieser Seite.
So rufen Sie Payload-Daten in Mobile-App-Code ab payload-information
Die Payload-Daten, die vom App-Server gesendet werden, werden vom Mobile-App-Code in einem Event-Handler empfangen, der mitteilt, dass eine Push-Benachrichtigung empfangen wurde. Dieses Ereignis variiert je nach verwendeter mobiler Plattform und je nachdem, ob die App im Vordergrund oder Hintergrund ausgeführt wird. Die folgende Dokumentation hilft Ihnen dabei, den Ereignis-Handler zu ermitteln, den Sie je nach Anwendungsfall benötigen.
- iOS-Apps: Abschnitt Umgang mit Remote-Benachrichtigungen in Remote-Benachrichtigungen.
- Android-Apps: Empfangen von Nachrichten in einer Android-Client-App
Beispiel für eine 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"];
}
Beispiel für eine 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");
}