Отправка push-уведомлений на основе событий приложения

Как отправлять push-уведомления на основе событий приложения на iOS

Мы уже обосновали стратегическую необходимость в другом месте: эра массовых рассылок прошла, и уведомления, запускаемые поведением, — это то, что платформы поощряют, а подписчики терпят. Это руководство — вторая его часть: как фактически запускать push-уведомления на основе событий приложения на iOS, от инструментария до передачи маркетинговой команде. Оно написано для разработчика, который выполняет настройку, с кодом, который вы будете использовать, и соглашениями, которые обеспечат его поддержку.

Архитектура в одном абзаце

Ваше приложение генерирует именованные события с типизированными свойствами. PushEngage сопоставляет эти события с правилами триггеров, настроенными на панели управления, и кампании отправляются — немедленно, с задержкой или как многошаговая последовательность с условиями выхода. Суть в разделении труда: инжиниринг настраивает каждое событие один раз; маркетинг создает, редактирует и отменяет кампании, связанные с этими событиями, навсегда, без повторного создания сборки. Ваша инструментация — это API для вашей маркетинговой команды.

trackEvent: универсальный сигнал

SDK для iOS 1.0 представил trackEvent — рабочую лошадку для пользовательских поведенческих сигналов:

PushEngage.trackEvent(name: "product_viewed",
                      properties: [
                        "sku": "WCJ-1042",
                        "category": "outerwear",
                        "price": 189.00,
                        "in_stock": true
                      ],
                      profileId: currentUserId,   // ties the event to an identified subscriber
                      provider: nil,
                      eventType: nil) { success, error in
    if !success { log(error) }
}

Три правила, которые применяет SDK, поэтому проектируйте с учетом их с самого начала:

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

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

sendTriggerEvent: настройка классических триггерных кампаний

Для кампаний, созданных в конструкторе триггеров на панели управления — брошенная корзина, брошенный просмотр, пользовательские сценарии — приложение вызывает sendTriggerEvent с именами кампании и события, настроенными маркетологом, плюс токены данных, которые будет отображать шаблон уведомления:

let trigger = TriggerCampaign(campaignName: "cart_abandonment",
                              eventName: "add_to_cart",
                              data: [
                                "productname": "Waxed Canvas Jacket",
                                "price": "$189",
                                "cartlink": "myapp://cart"
                              ])

PushEngage.sendTriggerEvent(triggerCampaign: trigger) { success, error in
    // background queue — dispatch before UI work
}

Токены data вставляются в текст уведомления — так «Ваша куртка из вощеного холста ждет вас» персонализируется без вмешательства маркетолога в код. Мы рассмотрели полную последовательность восстановления корзины в руководстве по брошенным корзинам для мобильных приложений; этот вызов является ее движущей силой.

addAlert: снижение цен и наличие товара — встроенные функции

Два наиболее востребованных коммерческих триггера даже не требуют пользовательских кампаний — они являются первоклассными гражданами SDK. Когда пользователь отслеживает товар, зарегистрируйте оповещение:

let alert = TriggerAlert(type: .priceDrop,        // or .inventory
                         productId: "WCJ-1042",
                         link: "myapp://product/WCJ-1042",
                         price: 189.00,
                         data: ["size": "M"])

PushEngage.addAlert(triggerAlert: alert) { success, error in }

PushEngage обрабатывает отслеживание, сопоставление и отправку при снижении цены или возвращении товара на склад. Если вы читали наше руководство по уведомлениям о снижении цен, то это регистрация на стороне приложения, которая запускает эти кампании.

Масштабируемая таксономия событий

Долг за инструментарий реален: спустя шесть месяцев никто не помнит, является ли событие addToCart, cart_add или CartUpdated. Выбирайте соглашения с первого дня — имена в стиле snake_case, порядок object_action, единственное число для ключей свойств — и охватите основной набор коммерческих событий:

СобытиеКлючевые свойстваКампании, которые оно запускает
просмотр товараsku, категория, ценаОтмена просмотра товара, персонализация
товар сохраненsku, ценаСнижение цены, наличие товара, триггеры возврата
корзина обновленасумма корзины, количество товаров, основной товарОтказ от корзины
покупка завершенасумма заказа, количество товаровУсловия выхода, после покупки, цели
выполнен поискзапрос, количество результатовВосстановление после нулевых результатов, сегменты интересов
шаг онбордингашаг, завершеноРазветвление серии онбординга

Шесть событий, проинструментированных один раз, запускают серию онбординга, восстановление корзины, триггеры возврата и каждый сегмент, который ваш отдел маркетинга запросит в этом году.

Протестируйте цикл, прежде чем передавать его

Установите PushEngage.enableLogging = true в отладочных сборках и наблюдайте, как события покидают устройство. Запустите каждое событие из тестовой сборки, убедитесь, что оно появляется в представлении событий на панели управления, и отправьте одну сквозную тестовую кампанию для каждого триггера. Приложения с примерами в репозитории SDK включают рабочий экран триггеров, из которого вы можете позаимствовать поток. Пятнадцать минут проверки здесь сэкономят вам расследование «почему кампания не сработала» позже — которое обычно является опечаткой в названии события с одной стороны контракта.

Передача: что маркетинг будет контролировать дальше

Как только события начнут поступать, ваша часть работы выполнена. Маркетинг создает правила триггеров, пишет тексты, устанавливает задержки и условия выхода, проводит A/B-тестирование вариантов и прикрепляет отслеживание целей для атрибуции доходов — все это в панели управления, без необходимости создавать заявку. Опубликуйте таблицу таксономии событий в вики вашей команды как контракт между двумя сторонами. Затем наблюдайте, как очередь запросов на «можете ли вы отправить push-уведомление» тихо уходит к нулю — что и было целью с самого начала. Что касается стратегии, которой должны следовать эти кампании, передайте вашей маркетинговой команде руководство по маркетингу push-уведомлений в приложении.

Добавить комментарий

Мы рады, что вы решили оставить комментарий. Пожалуйста, помните, что все комментарии модерируются в соответствии с нашей политикой конфиденциальности, а все ссылки являются nofollow. НЕ используйте ключевые слова в поле имени. Давайте вести личный и содержательный разговор.

Вовлекайте и удерживайте посетителей после того, как они покинули ваш веб-сайт

Увеличьте ценность каждого посещения веб-сайта с помощью push-уведомлений, которые трудно пропустить.

  • Бесплатный тариф навсегда
  • Простая настройка
  • Поддержка 5 звезд