[Документация Yandex Cloud](../../index.md) > [Yandex Cloud Notification Service](../index.md) > [Концепции](index.md) > Мобильные Push-уведомления

# Мобильные push-уведомления

_Push-уведомления_ — это всплывающие сообщения на экране смартфона с информацией о событии в сервисе, доступных услугах, акциях, новостях и обновлениях.

Push-уведомления отправляются через сервисы уведомлений мобильных платформ:
* [Apple Push Notification service](https://developer.apple.com/notifications/) (APNs).
* [Firebase Cloud Messaging](https://firebase.google.com/) (FCM).
* [Huawei Mobile Services](https://developer.huawei.com/consumer/) (HMS).
* [RuStore](https://www.rustore.ru/help/sdk/push-notifications/).

{% note info %}

В сервисе действуют ограничения. Подробнее в разделе [Квоты и лимиты Yandex Cloud Notification Service](limits.md).

{% endnote %}

Алгоритм доставки Push-уведомлений на примере FCM:
1. В сервисе CNS создается [канал мобильных Push-уведомлений](#mobile-channel) под конкретную платформу (FCM) и ваше приложение.
1. FCM поддерживает постоянное сетевое соединение со всеми зарегистрированными мобильными устройствами, чтобы доставлять Push-уведомления приложениям на этих устройствах.
1. Ваше приложение на конкретном устройстве регистрируется в FCM и получает уникальный токен для отправки Push-уведомлений на это устройство.
1. Токен сохраняется в CNS в качестве параметра [мобильного эндпоинта](#mobile-endpoints) приложения. 
1. Чтобы отправить уведомление, вы публикуете сообщение в CNS и указываете в качестве получателя идентификатор (ARN) эндпоинта.

## Канал мобильных Push-уведомлений {#mobile-channel}

Канал _мобильных Push-уведомлений_ — механизм доставки сообщений через определенный сервис уведомлений. Каналы уведомлений соответствуют платформам, на которые можно отправлять Push-уведомления.

Имена каналов уникальны для всего CNS. Не получится создать канал с именем, которое уже занято вами или другим пользователем. После создания канала изменить его имя нельзя.

Минимальный перечень исходных данных для создания канала зависит от платформы и может включать:

* Ключ или идентификатор ключа, токен, сертификат.
* Идентификатор разработчика, приложения, проекта.

Полный список исходных данных для каждого канала уведомлений приведен в разделе [Создать канал push-уведомлений](../operations/push/channel-create.md). Данные для аутентификации можно получить в консоли разработчика соответствующей мобильной платформы.

После того как канал уведомлений создан, ему присваивается уникальный идентификатор (ARN).

## Мобильные эндпоинты {#mobile-endpoints}

Каждый канал имеет свою базу _мобильных эндпоинтов_ для отправки уведомлений напрямую в приложение на устройства пользователей.

Мобильный эндпоинт содержит в себе информацию о токене для отправки Push-уведомлений на конкретное устройство и идентификатор (ARN) канала уведомлений. 

## Время жизни токена {#token-lifetime}

Токены для отправки Push-уведомлений имеют ограниченное время жизни, которое зависит от конкретной платформы, действий пользователя и других факторов.

CNS при отправке уведомлений получает обратную связь от каждой платформы и использует ее для управления токенами. Если токен устарел, CNS удалит эндпоинт.

Рекомендуемый алгоритм работы с токенами на стороне мобильного приложения:
1. Приложение регистрируется в сервисе мобильных уведомлений, например APNs, и получает токен для отправки Push-уведомлений.
1. Приложение передает токен в CNS, получает идентификатор (ARN) эндпоинта и сохраняет его на устройстве.
1. При каждом запуске приложение снова регистрируется в сервисе мобильных уведомлений, например APNs, и проверяет, не изменился ли токен.
1. Если токен изменился, то приложение передает в CNS новый токен и идентификатор (ARN) эндпоинта. Если такого идентификатора (ARN) эндпоинта уже по какой-то причине нет, то в CNS создается новый эндпоинт и сохраняется в приложении.

{% note tip %}

Не рекомендуется постоянно перезаписывать токен в эндпоинт при каждом запуске приложения. Если токен не изменился, в некоторых случаях это может привести к потере уведомлений.

{% endnote %}

#### Полезные ссылки {#see-also}

* [Обзор сервиса](index.md)
* [Как начать работать с push-уведомлениями](../quickstart-push.md)
* [Как начать работать с сервисом с помощью AWS CLI](../tools/aws-cli.md)
* [SMS](sms.md)