Перейти к содержанию

Настройка высокоскоростной доставки

Обзор

Anchor link to

В Pushwoosh сегменты аудитории определяются с помощью Сегментов.

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

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

Высокоскоростная доставка особенно полезна, когда время имеет решающее значение. Например, спортивные организации, такие как УЕФА и ФИБА, могут использовать её для отправки обновлений в реальном времени, где важна каждая секунда.

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

Зачем нужна высокоскоростная доставка

Anchor link to

Предварительные условия для использования высокоскоростной доставки спортивными организациями:

  • Все матчи запланированы заранее, поэтому вы знаете, когда создавать соответствующие Сегменты, и можете предварительно скомпилировать сегменты аудитории.
  • Каждому матчу присвоен уникальный идентификатор. Например, ID финала Лиги чемпионов — 0123.
  • Каждой команде присвоен уникальный идентификатор. Например, ID «Ювентуса» — 111, ID «Реал Мадрид» — 222 и т.д.
  • Существует набор событий в прямом эфире, о которых вы хотели бы уведомлять пользователей (голы, состав команд, начало матча и т. д.).

Настройка

Anchor link to

Все сегменты для высокоскоростной доставки должны быть созданы заранее — в нашем примере идеально, если до начала матча. Pushwoosh применяет условия сегментации к базе пользователей приложения и предварительно компилирует сегменты каждые 10 минут (этот интервал можно настроить).

Когда вы отправляете API-запрос /createMessage с контентом push-уведомления и названием сегмента, у Pushwoosh уже есть предварительно скомпилированный список получателей, что позволяет мгновенно отправить push-уведомление.

Создайте Теги

Anchor link to

Сначала создайте набор Тегов для применения и задайте значения Тегов для устройств пользователей. Создайте Теги типа LIST, соответствующие событиям матча в прямом эфире, таким как начало матча, гол, красная карточка и т. д.

Например: MATCH-KICKOFF, MATCH-GOAL, MATCH-RED_CARD

Создание Тегов

Создайте такой же набор Тегов, описывающих события матча в прямом эфире, для команд. Например: TEAM-KICKOFF, TEAM-GOAL, TEAM-RED_CARD

Подписываясь на эти Теги, пользователи приложения могут выбирать, какие уведомления они хотели бы получать:

  • уведомления о конкретном матче (например, о матче «Ювентус» - «Реал Мадрид»);
  • уведомления о матчах любимой команды (например, только о матчах «Ювентуса»);
  • уведомления о событиях, происходящих во время матча (например, только о голах в матче «Ювентус» - «Реал Мадрид»);
  • уведомления о конкретных событиях с участием любимой команды (например, о голах и составах команд в матчах «Ювентуса»).

Установите Теги

Anchor link to

Теперь вы можете заполнить ранее указанные значения Тегов с помощью API-запроса setTags и подписать пользователей на определенные категории push-уведомлений.

Например: Когда пользователь подписывается на получение обновлений о начале матча и голах в финале Лиги чемпионов, вызовите метод /setTags с указанием ID матча:

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"MATCH_KICKOFF": "0123", // ID матча
"MATCH_GOAL": "0123" // ID матча
}
}
}

Пользователь будет получать уведомления о начале матча и забитых голах в финале Лиги чемпионов. Когда пользователь подписывается на получение обновлений о голах и красных карточках в матчах «Реал Мадрид», вызовите метод /setTags следующим образом:

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"TEAM_KICKOFF": "222", // ID команды
"TEAM_GOAL": "222" // ID команды
}
}
}

Этот пользователь будет получать уведомления о начале матчей и голах, когда играет «Реал Мадрид».

Создайте Сегменты

Anchor link to

Теперь вы можете создавать Сегменты для событий матча на основе Тегов и их значений (ID матчей и ID команд). Сегменты должны быть созданы с помощью API-запроса /createFilter за 30 минут до начала матча.

Чтобы уведомить пользователей о голах, забитых в финале Лиги чемпионов из приведенного выше примера, вызовите метод /createFilter со следующими параметрами: Название Сегмента: 0123_GOAL Условия Сегмента: #TEAM-GOAL(111, 222) OR #MATCH-GOAL(0123)

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL",
"conditions": [
["TEAM-GOAL", "IN", ["111", "222"]],
["MATCH-GOAL", "IN", ["0123"]]
],
"operator": "OR", // опционально. Значения оператора: 'AND', 'OR'
"application" : "AAAAA-00000"
}
}

Этот запрос скомпилирует сегмент пользователей, подписанных на обновления о голах в финале Лиги чемпионов (ID матча=0123), ИЛИ пользователей, которые следят за «Ювентусом» или «Реал Мадрид» (ID команд=111,222).

Чтобы настроить высокоскоростную доставку в вашей Панели управления Pushwoosh, создайте новый Сегмент с соответствующими значениями Тегов и свяжите его с приложением, в которое вы собираетесь отправлять push-уведомления. Сегменты, специфичные для приложения, предварительно компилируются каждые 10 минут, чтобы сегменты аудитории всегда были актуальными.

создание нового Сегмента

Когда происходит событие матча (забит гол, начало матча, красная карточка и т.д.), вызовите метод /createMessage с контентом push-уведомления и названием Сегмента:

{
"request": {
"application": "AAAAA_00000",
"auth": "auth_token",
"notifications": [
{
"content": "12’ Juventus goal! Juventus 1 – 0 Real Madrid",
"filter": "0123_GOAL",
"send_date": "now"
}
]
}
}

Как только мы получаем вызов /createMessage, у нас уже есть предварительно скомпилированный список устройств, соответствующих критериям Сегмента, и мы немедленно отправляем уведомление на шлюзы APNs и FCM.

Удалите Сегменты

Anchor link to

После окончания матча все соответствующие Сегменты следует удалить, чтобы вычислительные ресурсы не тратились на дальнейшую перекомпиляцию Сегментов, которые больше не актуальны, особенно в ущерб Сегментам для следующих запланированных матчей. Удалите Сегменты с помощью API-запроса /deleteFilter, например:

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL"
}
}

Чтобы избежать удаления Сегментов вручную, установите дату истечения срока действия Сегмента с помощью запроса /createFilter, чтобы Сегмент был автоматически удален в указанную дату:

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL",
"conditions": [
["TEAM-GOAL", "IN", ["111", "222"]],
["MATCH-GOAL", "IN", ["0123"]]
],
"operator": "OR", // опционально. Значения: 'AND', 'OR'
"application": "AAAAA-00000",
"expiration_date": "YYYY-MM-DD" // опционально. Срок действия Сегмента (Фильтра)
}
}