notifications.sendMass

Отправляет сообщение с оповещением всем пользователям приложения, чьи профили соответствуют указанным критериям

НазваниеОбязательныйТипОписание
text Да String

Сообщение, которое будет отправлено как оповещение пользователю. Максимальная длина текста составляет 200 символов.

expires Да String

Дата и время истечения срока действия этого оповещения. Формат: гггг.ММ.дд ЧЧ:мм

Примечание: дата истечения срока действия должна составлять менее 14 дней от текущей даты. Используемый часовой пояс: MSK(UTC+03:00)

status Нет String

Одно из значений:

  • PUBLIC или P - оповещение показывается пользователям приложения (используется как значение по умолчанию, если параметр опущен)
  • ADMINS_ONLY или A - оповещение показывается только разработчикам приложения
gender Нет String

Одно из значений:

  • MALE или M
  • FEMALE или F
age_range Нет String

Диапазон возраста (включительно). Формат: <минимальный возраст="">-<максимальный возраст="">

birthday_range Нет String

Диапазон дней рождения (включительно). Формат: ММ.дд-ММ.дд

country Нет String

Код страны в профиле пользователя.

city Нет String

Код города, возвращаемый в параметре «location.city» метода users.getInfo.

first_access_range Нет String

Диапазон дат первого запуска приложения пользователем (включительно). Формат: гггг.ММ.дд-гггг.ММ.дд

last_access_range Нет String

Диапазон дат последнего запуска приложения пользователем (включительно). Формат: гггг.ММ.дд-гггг.ММ.дд

has_email Нет Boolean

Если параметр задан, ограничивает пользователей следующим образом:

  • true - пользователи, указавшие адрес эл. почты в своем профиле
  • false - пользователи, не указавшие адрес эл. почты в своем профиле
mask Нет Long

Маска размерностью 32 бита. Подается как десятичное число. Нотификация дойдет в том случае, если результат операции побитового AND сравнения с маской пользователя не равно 0. (user.mask & notification.mask > 0)

maskExactMatch Нет Boolean

Использовать строгое совпадение битов в mask и маски пользователя. (user.mask == notification.mask)

mark Нет String

Метка, которая будет передана приложению в параметре custom_args при переходе по нотификации

qualifier Нет String

Идентификатор для проведения A/B-эксперимента (см. ниже).
Возможные значения:

  • game1;
  • game2;
  • game3;
  • game4;
  • game5
test_group Нет Integer

Порядковый номер тестовой группы в A/B-эксперименте.
Может принимать значения 0 - базовая группа эксперимента, 1 - экспериментальная группа

test_groups Нет Integer

Количество тестовых групп в A/B-эксперименте. Должно быть равно 2

custom_button_key Нет String

Если параметр задан, то позволяет заменить значение теста по умолчанию на кнопке в оповещении. Например, если указано “button_save”, то на кнопке вместо “Начать играть” будет написано “Сохранить”

Авторизация

Сессия запрещена

Необходимые права

  • VALUABLE_ACCESS

В тексте оповещения допускается указывать не более 5 спец. символов или эмодзи

Данный тип оповещений имеет следующие ограничения:

  • оповещения рассылаются только пользователям, запускавшим игру не более 7 дней назад;
  • у каждого пользователя может быть не более одного активного массового оповещения от игры. При наличии нескольких массовых оповещений пользователю показывается самое новое из них

Если указывается несколько критериев фильтрации, они комбинируются с использованием логического AND. Например, если отправлено gender=MALE&age_range=20-25, то оповещение будет показано пользователям, которые соответствуют обоим условиям: пользователям мужского пола в возрасте 20 - 25 лет. Значения начала и конца диапазона являются включительными, поэтому оповещение из предыдущего примера будет показано пользователям мужского пола, возраст которых равен любому из следующих значений: 20, 21, 22, 23, 24, 25. Разрешается выполнять не более 30 рассылок в день.

Текст оповещения может содержать следующие заполнители, которые будут заменены данными пользователя, перед тем как оповещение будет показано. Поддерживаются следующие заполнители:

ЗаполнительОписание
${user.first-name}Имя пользователя. Пример: Ivan
${user.last-name}Фамилия пользователя. Пример: Petrov
${user.full-name}Полное имя пользователя. Пример: Ivan Petrov
${user.age}Возраст пользователя. Пример: 25

A/B-эксперименты для нотификаций

Данный метод позволяет проводить A/B-эксперименты среди пользователей. Например, вы можете провести эксперимент с проверкой наиболее эффективного текста в оповещении, либо раздавать разным группам пользователей разные бонусы с помощью оповещений.

При проведении экспериментов мы полностью берём на себя задачу разделения пользователей на независимые и непересекающиеся экспериментальные группы, а вам лишь остается определить, сколько тестовых групп у вас будет в эксперименте, и разослать этим группам необходимые оповещения.

Одновременно вы можете проводить до 5 различных экспериментов. Уникальным идентификатором эксперимента выступает параметр qualifier. То есть, если вы проводите 2 эксперимента, то для первого эксперимента этот параметр должен быть равен game1 (или любой другой который вам нравится), а для второго - любой из оставшихся, но не равный qualifier-у первого эксперимента (для нашего примера - не game1).

В каждом эксперименте есть 2 группы пользователей, метрики по которым можно сравнивать. Они определяются параметром test_group:

  • 0 - это базовая группа эксперимента;
  • 1 - это экспериментальная группа эксперимента.

Эти группы пользователей не будут пересекаться, за это отвечаем мы, вам отдельно разделять пользователей не требуется.

Статистика по A/B-экспериментам

Чтобы проще было анализировать проводимые вами A/B-эксперименты, мы подготовили инструменты для получения базовой статистики по оповещениям.

Статистика доступна:

  • для просмотра и скачивания отчетов в разделе игровой статистики в ОК - https://ok.ru/app/appstat
  • для получения через API OK - stat.getFromServer. Статистическая таблица application_notification_exp.

Тип

"String"

Параметры приложения

Данные о сессии пользователя

Метод

Список параметров

Используем для подписи secret_key = session_secret_key
Используем для подписи secret_key = application_secret_key
Используем для подписи secret_key = MD5(access_token + application_secret_key)
secret_key =
Сортируем и склеиваем параметры запроса и secret_key
Рассчитываем MD5 от полученной строки и получаем параметр sig