Providers: push message structure
Altcraft Platform supports the following services for sending mobile push messages:
- Google Firebase Cloud Messaging — for Android and iOS apps.
- Apple Push Notification Service — for iOS apps only.
- Yandex.AppMetrica — for Android and iOS apps.
- Huawei Mobile Services — for Android and iOS apps.
- RuStore — for Android apps only.
You need Connection of the corresponding SDKs in the app.
Yandex.AppMetrica uses Google Firebase SDK to deliver messages. You will need to implement it in your app.
Integration with Yandex.AppMetrica is available in Altcraft Platform for importing customer profiles, registering their actions and value (cost).
At first, it is necessary to verify that the application supports the structure of push notifications in Altcraft Platform. If the format is not supported, Altcraft can adjust the message structure from its side.
Android Firebase (legacy)
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"to": "SubscriptionID",
"priority": "Priority",
"time_to_live": 0-86400,
"content_available": true,
"mutable_content": true,
"data": {
"uid": "UID",
"message": "Body",
"mediaUrl": "Icon",
"image": "Image",
"launch_id": "LaunchID",
"hub_link": {
"open": "URLOpenEvent",
"ack": "URLDelivEvent"
}
},
"notification": {
"title": "Title",
"body": "Body",
"icon": "Icon",
"color": "ImageBackgroundColor",
"click_action": "ClickURL",
"sound": "Sound"
}
}
uid — the internal send ID, unique for each message.
launch_id — the internal send ID, unique within the campaign.
Android Firebase (api v1)
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"message": {
"token": "SubscriptionID",
"android": {
"priority": "Priority",
"ttl": TTL,
"data": {
"uid": "UID",
"launch_id": "LaunchID",
"hub_link": "{\"open\": \"URLOpenEvent\", \"ack\": \"URLDelivEvent\"}"
},
"notification": {
"title": "Title",
"body": "Body",
"icon": "Icon",
"click_action": "ClickURL",
"sound": "Sound",
"color": "ImageBackgroundColor",
"light_settings": {
"color": {
"red": 0-1,
"green": 0-1,
"blue": 0-1,
"alpha": 0/1
},
"light_on_duration": "LEDOnDuration",
"light_off_duration": "LEDOffDuration"
},
"image": "Image",
"default_vibrate_timings": true/false,
"notification_count": 0-999
}
}
}
}
uid — the internal send ID, unique for each message.
launch_id — the internal send ID, unique within the campaign.
iOS Firebase (legacy)
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"to": "SubscriptionID",
"priority": "Priority",
"time_to_live": 0-86400,
"content_available": true,
"mutable_content": true,
"data": {
"uid": "UID",
"message": "Body",
"mediaUrl": "Icon",
"media": "Media",
"launch_id": "LaunchID",
"hub_link": {
"open": "URLOpenEvent",
"ack": "URLDelivEvent"
}
},
"notification": {
"title": "Title",
"body": "Body",
"icon": "Icon",
"color": "ImageBackgroundColor",
"click_action": "ClickURL",
"sound": "Sound"
}
}
uid — the internal send ID, unique for each message.
launch_id — the internal send ID, unique within the campaign.
iOS Firebase (api v1)
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"message": {
"token": "SubscriptionID",
"apns": {
"headers": {
"apns-expiration": "TTL"
},
"payload": {
"aps": {
"badge": 0-999,
"sound": "Sound",
"mutable_content": 1,
"alert": {
"title": "Title",
"subtitle": "SubTitle",
"body": "Body"
}
},
"click-url": "ClickURL",
"uid": "UID",
"launch_id": "LaunchID",
"hub_link": "{\"open\": \"URLOpenEvent\", \"ack\": \"URLDelivEvent\"}",
"media": "Media",
"mediaUrl": "Icon"
},
"fcm_options": {
"image": "Media"
}
}
}
}
uid — the internal send ID, unique for each message.
launch_id — the internal send ID, unique within the campaign.
iOS Apns
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"aps": {
"badge": 0-999,
"sound": "Sound",
"mutable_content": 1,
"alert": {
"title": "Title",
"subtitle": "SubTitle",
"body": "Body"
}
},
"click-url": "ClickURL",
"icon": "Icon",
"media": "Media",
"hub_link": {
"open": "URLOpenEvent",
"ack": "URLDelivEvent"
}
}
Appmetrica iOS
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"push_batch_request": {
"group_id": 97737,
"tag": "tag",
"batch": [
{
"messages": {
"iOS": {
"silent": true/false,
"content": {
"title": "Title",
"text": "Body",
"badge": 0-999,
"expiration": 0,
"data": "{\"hub_link\":{\"ack\":\"URLDelivEvent\",\"open\":\"URLOpenEvent\"},\"icon\":\"Icon\",\"media\":\"Media\"}"
},
"open_action": {
"url": "URL"
"deeplink": "Deeplink"
}
}
},
"devices": [
{
"id_values": ["SubscriptionID"],
"id_type": "ios_push_token"
}
]
}
]
}
}
Appmetrica android
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"push_batch_request": {
"group_id": 97737,
"tag": "tag",
"batch": [
{
"messages": {
"android": {
"silent": true/false,
"content": {
"title": "Title",
"text": "Body",
"time_to_live": 0,
"image": "Icon",
"icon_background": "IconBackground",
"banner": "Banner",
"led_color": "LEDColor",
"data": "{\"hub_link\":{\"ack\":\"URLDelivEvent\",\"open\":\"URLOpenEvent\"}}"
},
"open_action": {
"url": "URL"
"deeplink": "Deeplink"
}
}
},
"devices": [
{
"id_values": ["SubscriptionID"],
"id_type": "google_aid"
}
]
}
]
}
}
HMS Android
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"message":{
"android":{
"notification":{
"badges":{
"set_num":2
},
"body":"Dear user, we offer you our new product, productName!",
"click_action":{
"intent":"#Intent;compo=com.example/app2;S.W=U;end",
"type":1
},
"color":"#cdc167",
"icon":"https://i.postimg.cc/2yVZyQMn/demo-Push-Icon.jpg",
"importance":"NORMAL",
"light_settings":{
"color":{
"alpha":1,
"blue":0.70980394,
"green":0.78039217,
"red":0.5686275
},
"light_off_duration":"1.5s",
"light_on_duration":"1.5s"
},
"sound":"tadaam.ogg",
"title":"Title of push message"
},
"params":{
"hub_link": "{\"open\": \"URLOpenEvent\", \"ack\": \"URLDelivEvent\"}",
"launch_id":"2_6j_4LxYQQ8VECT",
"uid":"w4LxYQQsznE1_2_6j_i_o___4.2Pzr5NNonCwUWQwvJ_4u71jH"
},
"ttl":"604800s"
},
"token":[
"AGIwonWCgyDXGEG-airg4cUbVxeq0RFDfTuDM2hPWRrxfMociyvLNmn-GWdd4I6ZDrXIee46IrWSjC-cPDauP3ciS74bVi8wJ7T3PwHhvEY38VdYSu5zeHRXQzBRDgTnxA"
]
}
}
launch_id — internal send ID, unique within the campaign.
HMS iOS
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"message":{
"apns":{
"headers":{
"apns-expiration":"3600"
},
"hms_options":{
"target_user_type":1
},
"payload":{
"apple":"red",
"aps":{
"alert":{
"body":"Dear user, we offer you our new product, productName!",
"subtitle":"sub title",
"title":"Title of push message"
},
"badge":0,
"mutable_content":1,
"sound":"default"
},
"click-url":"",
"hub_link": "{\"open\": \"URLOpenEvent\", \"ack\": \"URLDelivEvent\"}",
"launch_id":"2_6j_4LxYKovmDvu",
"mediaUrl":"https://i.postimg.cc/2yVZyQMn/demo-Push-Icon.jpg",
"uid":"w4LxYKq9nBMc_2_6j_i_o___4.2Pzr5NNonCwUWQwvJ_aDfVX"
}
},
"token":[
"IQAAAACy0huaAQwLF6BO92GYzCAnfqZgaxhD1f7wLWGmOxQ6bFKCQYQQYtTi2-1hXHlsXAnCzLQdX3m4RTCCEI-KYu-XcaBJYovDZANg2eRTvPv7qA"
]
}
}
RuStore Android
It's possible to edit the JSON object (on request).
Adding additional data to the "data"
object is supported. This can be done for each sending individually in the Altcraft MP message settings.
{
"validate_only": false,
"message": {
"token": "{{.SubscriptionID}}",
"data": {
"uid": "{{.UID}}",
"message": "{{.Body}}",
"mediaUrl": "{{.Icon}}",
"image": "{{.Image}}",
"launch_id": "{{.LaunchID}}",
"hub_link": "{\"open\": \"{{.URLOpenEvent}}\", \"ack\": \"{{.URLDelivEvent}}\"}"
},
"android": {
"priority": "{{.Priority}}",
"notification": {
"title": "{{.Title}}",
"body": "{{.Body}}",
"icon": "{{.Icon}}",
"color": "{{.ImageBackgroundColor}}",
"image": "{{.Image}}",
"click_action": "{{.ClickURL}}",
"sound": "{{.Sound}}",
"channel_id": "{{.ChannelID}}",
{{if ne .LEDColorHex ""}}
"light_settings": {
"color": {
"red": {{.LEDColorSRGBA.R}},
"green": {{.LEDColorSRGBA.G}},
"blue": {{.LEDColorSRGBA.B}},
"alpha": {{.LEDColorSRGBA.A}}
},
"light_on_duration": "{{.LEDOnDuration}}",
"light_off_duration": "{{.LEDOffDuration}}"
},
{{end}}
"notification_count": {{.Badges}}
},
"ttl": {{.TTL}}
}
}
}
uid — the internal send ID, unique for each message.
launch_id — the internal send ID, unique within the campaign.