Отправка push-сообщений

Отправляет одно или несколько push-сообщений на указанные устройства.

Операция позволяет отправить сообщения с разными свойствами (например, текст, медиа вложение) за один запрос. В каждом запросе может быть указано до 250 000 устройств на которые будут отправлены сообщения.

POST /push/v1/send-batch
Примечание. Рекомендуем использовать данную операцию вместо устаревшей POST /push/v1/send.
  1. Формат запроса
  2. Тело запроса
  3. Формат ответа

Формат запроса

https://push.api.appmetrica.yandex.net/push/v1/send-batch

Тело запроса

{
  "push_batch_request": {
    "group_id": 1,
    "client_transfer_id": long,
    "tag": "string",
    "batch": [
      {
        "messages": {
          "android": {
            "silent": false,
            "content": {
              "title": "string",
              "text": "string",
              "icon": "string",
              "icon_background": "#AARRGGBB",
              "image": "https://example.com/picture.jpg",
              "banner": "https://example.com/picture.jpg",
              "data": "string",
              "channel_id": "string",
              "priority": -2,
              "collapse_key": 2001,
              "vibration": [0, 500],
              "led_color": "#RRGGBB",
              "led_interval": 50,
              "led_pause_interval": 50,
              "time_to_live": 180
            },
            "open_action": {
              "deeplink": "yandexmaps://?"
            }
          },
          "iOS": {
            "silent": false,
            "content": {
              "title": "string",
              "text": "string",
              "badge": 1,
              "sound": "disable",
              "media_attachment": "string",
              "expiration": 3600,
              "data": "string"
            },
            "open_action": {
              "url": "https://ya.ru"
            }
          }
        },
        "devices": [
          {
            "id_type": "appmetrica_device_id",
            "id_values": ["123456789", "42"]
          },
          {
            "id_type": "ios_ifa",
            "id_values": ["8A690667-6204-4A6A-9B38-85DE016....."]
          },
          {
            "id_type": "google_aid",
            "id_values": ["eb5f3ec8-2e3e-492f-b15b-d21860b....."]
          },
          {
            "id_type": "android_push_token",
            "id_values": ["eFfxdO7uCMw:APA91bF1tN3X3BAbiJXsQhk-..."]
          },
          {
            "id_type": "ios_push_token",
            "id_values": ["F6A79E9F844A24C5FBED5C58A4C71561C180F........."]
          }
        ]
      },
      {
        "messages": {
        ...
        }
      }
    ]
  }
}
push_batch_request
Запрос на отправку группы push-сообщений.
group_id *
Идентификатор группы. Является обязательным параметром.
client_transfer_id
Идентификатор отправки, заданный пользователем. Используется для проверки статуса отправки.
Внимание. Значение поля client_transfer_id должно быть уникальным в указанной группе (group_id).
tag *
Тег отправки. Является обязательным параметром.
batch
Массив объектов messages. Содержит push-сообщения с их свойствами.
messages
Push-сообщение.
android
Платформа устройства.
ios
Платформа устройства.
silent
Признак отправки silent push-сообщений. Допустимые значения: true | false.
content
Содержание push-сообщения.
title
Заголовок push-сообщения. Обязателен для не silent push-сообщений.
text
Текст сообщения. Обязателен для не silent push-сообщений.
icon
Иконка в строке уведомлений. По умолчанию отображается стандартная иконка приложения. Чтобы поменять иконку задайте идентификатор ресурса иконки в стандартном каталоге /res/drawable/.
icon_background
Цвет иконки сообщения. Задается в виде строки в формате шестандцатиричного кода #AARRGGBB.

Поле доступно только для платформы Android.

image
URL картинки, которая будет отображаться в push-сообщении рядом с текстом уведомления.
banner
Ссылка на баннер, отображаемый в push-сообщении.

Поле доступно только для платформы Android.

data
Произвольная строка данных. Вы можете передавать любые данные приложению в виде строкового значения. Обработать строку данных можно с помощью соответствующих методов AppMetrica Push SDK.
channel_id
Идентификатор канала уведомлений. Если идентификатор не задан — используется канал по умолчанию.

Доступно только для Android 8 и выше. Подробнее о каналах в документации Android.

priority
Приоритет уведомления. Допустимые значения: диапазон [-2; 2]. Платформа определяет сообщения с высоким приоритетом и принимает соответствующие действия: прерывает работу пользователя (отображает сообщение на экране), не уведомляет пользователя о уведомлении. На разных устройствах приоритет интерпретируется по-разному.

Поле доступно только для платформы Android.

collapse_key
Идентификатор нотификации. Значение по умолчанию — 0. Не влияет, если нет текущих отображаемых нотификаций данного приложения. Если отображена одна или несколько нотификации, то при совпадении id содержимое нотификации будет обновлено. При отличном от имеющихся id, будет показана новая нотификация.

Поле доступно только для платформы Android.

vibration
Паттерн вибрации при получении сообщения. Формат записи: [пауза мс, длительность вибрации мс, пауза мс, длительность вибрации мс,...].

Поле доступно только для платформы Android.

led_color
Цвет LED-индикатора. Задается в виде строки в формате шестандцатиричного кода #RRGGBB.

Поле доступно только для платформы Android.

led_interval
Время загорания LED-индикатора в мс.

Поле доступно только для платформы Android.

led_pause_interval
Перерыв между загораниями LED-индикатора в мс.

Поле доступно только для платформы Android.

time_to_live
Время в секундах, в течение которого FireBase будет хранить push-сообщение, если устройство вне зоны доступа.

Поле доступно только для платформы Android.

open_action
Действие, которое будет произведено при клике на push-сообщение. При отсутствии этого поля нажатие на push-сообщение приведет к открытию приложения.
deeplink
Deeplink по которому будет осуществлен переход при клике на push-сообщение.
badge
Число, которое отобразится на иконке приложения при получении сообщения.
sound
Звук сообщения. Допустимые значения default | disable
media_attachment
Ссылка на медиа вложение. Доступно только для iOS 10 и выше.
expiration
Время, в течение которого будут предприниматься попытки доставить сообщение на устройство пользователя. Задается в секундах.

Если по истечении указанного времени устройство будет недоступно (например, не подключено к интернету), сообщение не будет доставлено. По умолчанию время не ограничено.

url
URL по которому будет осуществлен переход при клике на push-сообщение.
devices
Устройства, на которые необходимо отправить push-сообщения. Одна отправка может содержать до 250 000 устройств.

Устройства группируются по id_type. В одной отправке допускается от 1 до 5 групп. Все группы в сумме за один HTTP-запрос могут содержать до 250 000 устройств. Например, если в группе appmetrica_device_id содержится 100 000 устройств, в остальных допускается указать 150 000.

id_type
Тип идентификатора устройства. Допустимые значения: appmetrica_device_id, ios_ifa, google_aid, android_push_token, ios_push_token.
Примечание. При использовании push-токена в качестве идентификатора, AppMetrica проверяет перед отправкой наличие токена и информации об устройстве в базе. Если информации об устройстве нет, то push-сообщение не будет отправлено. Это необходимо для контроля отправки сообщений нужным адресатам и отображения информации в отчетах после отправки.
id_values
Список устройств на которые необходимо отправить push-сообщения.
Внимание. Список не может быть пустым.

Обязательный параметр

Формат ответа

{
  "push_response": {
    "transfer_id": 1,
    "client_transfer_id": long
  }
}
push_response
Ответ об отправке push-сообщений.
transfer_id
Идентификатор (ID) отправки. Используется для проверки статуса отправки.
client_transfer_id
Идентификатор (ID) отправки, заданный пользователем в теле запроса. Используется для проверки статуса отправки.
Примечание. Поле будет возвращено только если оно было указано в теле запроса.