プッシュ通知のペイロード構造について push-payload
Adobe Campaignでは、iOSやAndroidのモバイルデバイスで、パーソナライズされセグメント化されたプッシュ通知をモバイルアプリケーション(モバイルアプリ)に送信できます。
モバイルアプリで受信されるすべてのプッシュ通知には、アラート プッシュ通知が送信された場合にプッシュ通知の表示に使用される情報と、特にサイレントプッシュ通知が送信された場合に追加の計算が行われる可能性が高い情報があります。
この情報は、プッシュ通知が受信されたことを示すイベントハンドラーでモバイルアプリコードによって受信されます。 Adobe Campaign Standardからプッシュ通知を送信する場合、モバイルアプリで受信する情報にはCampaign Standard固有の情報も含まれる場合があり、Campaign Standardが提供する機能を活用するために使用されることがあります。 さらに、ペイロードには、モバイルアプリで使用できるカスタムデータを含めることができます。
このドキュメントでは、プッシュ通知がAdobe Campaign Standardからアプリに正常に送信されたときにモバイルアプリで受信されるペイロードの構造について説明します。
プッシュペイロード構造 push-payload-structure
この節では、様々なモバイルプラットフォーム向けのサンプルペイロードの構造を詳しく説明し、その中に含まれる主な属性について説明します。 これは、プッシュ通知が受信されたことを示す、イベントハンドラーのモバイルアプリコードで受信されたペイロードの構造です。
ペイロード属性とその値は、プッシュ通知の詳細オプションで指定された設定に応じて異なります。 また、この節では、Campaign Standardでのオプション設定時にペイロードがどのように変化するかを明確にするために、Campaign StandardUI のこれらの設定とペイロードの属性の間のマッピングも示します。
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"
}
ペイロードの最も重要なセクションは aps ディクショナリです。このディクショナリには、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
}
}
1}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
メッセージ本文
アラート →本文
body
タイトルキーと本文キーは、アラートの内容を提供します。
カテゴリキーを使用すると、そのカテゴリのアクションをアラートインターフェイスのボタンとしてシステムに表示できます。
(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");
}