Настройка высокоскоростной доставки
В Wavesend аудитории пользователей определяются с помощью Segments.
Для стандартных push-кампаний Segment компилируется после отправки запроса /createMessage. Это означает, что возможна небольшая задержка перед отправкой сообщения, особенно если Segment имеет сложную структуру.
При высокоскоростной доставке Segments предварительно компилируются каждые 10 минут. Это позволяет поддерживать их в актуальном состоянии и готовыми к использованию, поэтому сообщения можно отправлять мгновенно, не дожидаясь компиляции Segment.
Высокоскоростная доставка особенно полезна, когда время имеет решающее значение. Например, спортивные организации, такие как УЕФА и ФИБА, могут использовать ее для отправки обновлений в реальном времени, где важна каждая секунда.
В этом руководстве объясняется, как настроить высокоскоростную доставку на примере спортивного приложения. Вы узнаете, как создавать Segments аудитории для уведомления пользователей о предстоящих матчах и событиях в прямом эфире.
Зачем нужна высокоскоростная доставка
Section titled “Зачем нужна высокоскоростная доставка”Предварительные условия для использования высокоскоростной доставки спортивными организациями следующие:
- Все матчи запланированы заранее, поэтому вы знаете, когда создавать соответствующие
Segmentsи можете предварительно компилироватьSegmentsаудитории - каждому матчу присваивается уникальный ID. Например, ID матча для финала Лиги чемпионов — 0123
- каждой команде присваивается уникальный ID. Например, ID «Ювентуса» — 111, ID «Реал Мадрид» — 222 и т.д.
- существует набор событий в прямом эфире, о которых вы хотите уведомлять пользователей (голы, составы команд, начало матча и т.д.)
Настройка
Section titled “Настройка”Все Segments для высокоскоростной доставки должны быть созданы заранее — в идеале, до начала матча в рассматриваемом примере. Wavesend применяет условия Segment к базе пользователей приложения и предварительно компилирует Segments каждые 10 минут (этот интервал можно настроить).
Когда вы отправляете API-запрос /createMessage с содержимым Push и названием Segment, Wavesend уже имеет предварительно скомпилированный список получателей, что позволяет мгновенно отправить push-уведомление.
Создайте Tags
Section titled “Создайте Tags”Сначала создайте набор Tags для применения и установите значения Tag для устройств пользователей.
Создайте Tags типа СПИСОК (LIST), соответствующие событиям матча в прямом эфире, таким как kickoff, goal, red card, и т.д.
Например: MATCH-KICKOFF, MATCH-GOAL, MATCH-RED_CARD

Создайте такой же набор Tags, описывающий события матча в прямом эфире для команд.
Например:
TEAM-KICKOFF, TEAM-GOAL, TEAM-RED_CARD
Подписываясь на эти Tags, пользователи приложения могут выбирать, какие уведомления они хотели бы получать:
- уведомления о конкретном матче (например, матч «Ювентус» — «Реал Мадрид»);
- уведомления о матчах любимой команды (например, только о матчах «Ювентуса»);
- уведомления о событиях, происходящих во время матча (например, только о голах в матче «Ювентус» — «Реал Мадрид»);
- уведомления о конкретных событиях любимой команды (например, о голах и составах команд в матчах «Ювентуса»).
Установите Tags
Section titled “Установите Tags”Теперь вы можете заполнить ранее указанные значения Tag с помощью 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 команды } }}Этот пользователь будет получать уведомления о начале матча и голах всякий раз, когда играет «Реал Мадрид».
Создайте Segments
Section titled “Создайте Segments”Теперь вы можете создавать 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", // необязательно. Значения оператора: 'AND', 'OR' "application" : "AAAAA-00000" }}Этот запрос скомпилирует Segment пользователей, подписанных на обновления о голах в финале Лиги чемпионов (ID матча=0123) ИЛИ пользователей, которые следят за «Ювентусом» или «Реал Мадрид» (ID команды=111,222).
Чтобы настроить высокоскоростную доставку в вашем Control Panel Wavesend, создайте новый Segment с соответствующими значениями Tag и свяжите его с приложением, в которое вы собираетесь отправлять Push. Segments, специфичные для приложения, предварительно компилируются каждые 10 минут, чтобы Segments аудитории всегда были актуальными.

Когда происходит событие матча (забит гол, начало матча, красная карточка и т.д.), вызовите /createMessage, содержащий контент push-уведомления и название Segment:
{ "request": { "application": "AAAAA_00000", "auth": "auth_token", "notifications": [ { "content": "12’ Гол «Ювентуса»! «Ювентус» 1 – 0 «Реал Мадрид»", "filter": "0123_GOAL", "send_date": "now" } ] }}Как только мы получаем вызов /createMessage, у нас уже есть предварительно скомпилированный список устройств, которые соответствуют критериям Segment, и мы немедленно отправляем уведомление на шлюзы APN и FCM.
Удалите Segments
Section titled “Удалите Segments”После окончания матча все соответствующие 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", // необязательно. Значения: 'AND', 'OR' "application": "AAAAA-00000", "expiration_date": "YYYY-MM-DD" // необязательно. Срок действия Segment (Фильтра) }}