Отправка 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, единственное число для ключей свойств — и охватите основной набор коммерческих событий:

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

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

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

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

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

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

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

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

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

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

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