[Документация Yandex Cloud](../../index.md) > [Yandex Cloud Notification Service](../index.md) > [Концепции](index.md) > Топики

# Топики

Чтобы отправлять уведомления централизованно во множество эндпоинтов, используйте _топики_. Также с помощью топиков можно группировать сообщения по категориям. Например, уведомления службы безопасности, рекламные уведомления и так далее. Для группировки сообщений создайте разные топики для каждой категории.

Топики позволяют выполнять множественную отправку сообщений всем эндпоинтам или телефонным номерам, которые подписаны на этот топик. У топика также есть свой уникальный идентификатор — ARN.

Для добавления эндпоинтов в топик используется _подписка_. Подписка связывает топик с одним эндпоинтом, который был добавлен в канал уведомлений. Телефонные номера не требуется предварительно добавлять в канал уведомлений. Чтобы отправлять сообщения в разные эндпоинты, подпишите эти эндпоинты на топик.

Порядок настройки топиков:

1. В сервисе CNS создайте каналы уведомлений.
1. Добавьте в каналы уведомлений эндпоинты (для SMS эндпоинт можно не добавлять).
1. Создайте топик и включите логирование, чтобы отслеживать отправку уведомлений.
1. Добавьте в топик подписку, в которой укажите идентификатор (ARN) созданного ранее эндпоинта или номер телефона для SMS.

Порядок отправки уведомлений:

1. Уведомление отправляется на ARN топика через SDK или API с помощью метода `Publish`.
   
    Также отправить уведомление можно через [консоль управления](https://console.yandex.cloud).

    Формат уведомления в JSON:

    ```json
    {
      "default": "<Текст_по_умолчанию>",
      "sms": "<Текст_уведомления_для_sms>",
      "WEB": "<Текст_уведомления_для_браузера>",
      "APNS": {
        "aps": {
          "alert": {
            "title": "Заголовок_уведомления",
            "body": "Текст_уведомления"
          }
        }
      },
      "GCM": {
        "notification": {
          "title": "Заголовок_уведомления",
          "body": "Текст_уведомления"
        }
      },
      "HMS": {
        "notification": {
          "title": "Заголовок_уведомления",
          "body": "<Текст_уведомления>"
        }
      },
      "RUSTORE": {
        "notification": {
          "title": "Заголовок_уведомления",
          "body": "<Текст_уведомления>"
        }
      }
    }
    ```

    Можно ввести единый текст для всех каналов или разные тексты, в зависимости от типа канала. Если для какого-либо канала уведомление не указано, будет отправлено уведомление по умолчанию.

1. Сервис CNS проверяет корректность запроса.
1. Если запрос правильный, прошел авторизацию и аутентификацию, уведомление отправляется всем подписчикам топика.
1. Если в запросе ошибка (например, исчерпаны лимиты), информация об этом появится в логах в Cloud Logging. Запись логов включается при создании топика.

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

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