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

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

Обзор

Anchor link to

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

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

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

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

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

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

Anchor link to

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

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

Настройка

Anchor link to

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

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

Создание Tags

Anchor link to

Сначала создайте набор Tags для применения и установите значения Tag для устройств пользователей. Создайте Tags типа LIST, соответствующие событиям матча в прямом эфире, таким как kickoff (начало матча), goal (гол), red card (красная карточка) и т.д.

Например: MATCH-KICKOFF, MATCH-GOAL, MATCH-RED_CARD Создание Tags

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

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

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

Установка Tags

Anchor link to

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

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

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"MATCH_KICKOFF": "0123", // match ID
"MATCH_GOAL": "0123" // match ID
}
}
}

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

{
"request": {
"application": "app_code",
"hwid": "device_hardware_id",
"tags": {
"TEAM_KICKOFF": "222", // team ID
"TEAM_GOAL": "222" // team ID
}
}
}

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

Создание Segments

Anchor link to

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

Чтобы уведомить пользователей о голах, забитых в финале Лиги чемпионов из приведенного выше примера, вызовите /createFilter со следующими параметрами: Имя Segment: 0123_GOAL Условия Segment: #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", // optional. Operator values: 'AND', 'OR'
"application" : "AAAAA-00000"
}
}

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

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

создайте новый Segment

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

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

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

Удаление Segments

Anchor link to

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

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

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

{
"request": {
"auth": "auth_token",
"name": "0123_GOAL",
"conditions": [
["TEAM-GOAL", "IN", ["111", "222"]],
["MATCH-GOAL", "IN", ["0123"]]
],
"operator": "OR", // optional. Values: 'AND', 'OR'
"application": "AAAAA-00000",
"expiration_date": "YYYY-MM-DD" // optional. Segment (Filter) expiry
}
}
Помогла эта страница?