Настройка высокоскоростной доставки
Обзор
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" // опционально. Срок действия Сегмента (Фильтра) }}