Отправка 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,
              "visibility": "public",
              "urgency": "high"
            },
            "open_action": {
              "deeplink": "yandexmaps://?"
            }
          },
          "iOS": {
            "silent": false,
            "content": {
              "title": "string",
              "text": "string",
              "badge": 1,
              "sound": "disable",
              "thread_id": "string",
              "category": "string",
              "mutable_content": 1,
              "expiration": 3600,
              "data": "string",
              "collapse_id": "string",
              "attachments": [
                {
                    "id": "string",
                    "file_url": "string",
                    "file_type": "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........."]
          },
          {
            "id_type": "huawei_push_token",
            "id_values": ["0866422030....."]
          },
          {
            "id_type": "huawei_oaid",
            "id_values": ["ecef47f7-fcce-ad....."]
          }
        ]
      },
      {
        "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.
collapse_id
Идентификатор сворачивания apns-collapse-id. Несколько уведомлений с одним и тем же идентификатором отображаются пользователю как одно уведомление.
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
thread_id

Идентификатор для группировки push-уведомлений. Значение указывается в свойстве threadIdentifier объекта UNNotificationContent.

category

Категория push-уведомления. Значение указывается в свойстве identifier объекта UNNotificationCategory. Подробнее об объявлении действий и категорий push-уведомлений в документации Apple.

mutable_content

Признак расширения Notification Service Extension. Если указано значение 1, то push-уведомление обрабатывается расширением. В AppMetrica с помощью него отслеживается доставка push-уведомлений.

Чтобы отслеживать доставку, настройте сбор статистики push-уведомлений и передайте в поле значение 1. Если значение не передается, то в отчетах число доставленных push-уведомлений будет равно числу открытых.

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

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

url
URL по которому будет осуществлен переход при клике на push-сообщение.
visibility
Отображаемость push-сообщения на лок-скрине. Игнорируется с Android 8 и выше (API level 26+), где задаётся на уровне канала. Допустимые значения: secret, private, public. По умолчанию не задаётся. Подробнее о свойстве visibility в документации Android.
urgency
Срочность (приоритет) доставки push-сообщения. Допустимые значения: high, normal. Значение по умолчанию — high. Срочные push-сообщения вызывают просыпание устройства, запуск приложения в фоновом режиме и получение доступа к интернету на короткий промежуток времени. Срочные push-сообщения доставляются быстрее и надёжнее. Подробнее о приоритете FCM сообщений в документации Android.
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, huawei_push_token, huawei_oaid.
Примечание. При использовании push-токена в качестве идентификатора, AppMetrica проверяет перед отправкой наличие токена и информации об устройстве в базе. Если информации об устройстве нет, то push-сообщение не будет отправлено. Это необходимо для контроля отправки сообщений нужным адресатам и отображения информации в отчетах после отправки.
id_values
Список устройств на которые необходимо отправить push-сообщения.
Внимание. Список не может быть пустым.
attachments
Массив вложений, которые необходимо прикрепить в push-сообщении. Подробности настройки можно прочитать в статье Шаг 6. (Опционально) Настройте загрузку прикрепленных файлов.

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

id
Идентификатор содержимого в push-сообщении.

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

file_url
URL файла из push-сообщения.

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

file_type
Тип вложенного файла в push-сообщении. Допустимые типы можно посмотреть в разделе Типы файлов в push-сообщениях.

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

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

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

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