SDK push-уведомлений для iOS выполняет две задачи: он обрабатывает взаимодействие между вашим приложением и службой push-уведомлений Apple, а также подключает это взаимодействие к платформе кампаний, чтобы ваша маркетинговая команда могла им пользоваться. Это руководство охватывает обе стороны — реальные шаги интеграции с кодом, который вы будете использовать, и то, что становится возможным на панели управления после установки SDK. Оно отражает PushEngage iOS SDK 1.0, текущий релиз.
Зачем использовать SDK push-уведомлений для iOS в вашем приложении
Вы можете напрямую общаться с APNs — зарегистрировать токен устройства, создать отправитель, самостоятельно обрабатывать обратные вызовы доставки. То, что вы получаете от необработанных APNs, — это доставка; то, чего вы не получаете, — это все, что нужно маркетингу: сегментация, запланированные и триггерные кампании, A/B-тестирование, аналитика и атрибуция доходов. SDK, такой как PushEngage, один раз подключает ваше приложение к этому уровню, поэтому кампании создаются на панели управления, а не в проекте Xcode. Практический результат: после недели интеграции push-кампании перестают быть задачами для инженеров.
Как установить SDK push-уведомлений PushEngage для iOS
Вам понадобится iOS 12+, Xcode 15+, ключ APNs, загруженный на вашу панель управления PushEngage, и примерно полдня. SDK поставляется в виде двух модулей: PushEngage для вашей целевой платформы приложения и PushEngageExtension для целевых платформ расширений уведомлений.
Шаг 1: Добавьте пакет
В Xcode перейдите в File → Add Package Dependencies и введите URL репозитория — или используйте CocoaPods:
# Swift Package Manager
https://github.com/awesomemotive/pushengage-ios-sdk
# CocoaPods
target 'YourApp' do
pod 'PushEngage', '~> 1.0.0'
end
target 'YourNotificationServiceExtension' do
pod 'PushEngageExtension', '~> 1.0.0'
end
Шаг 2: Настройте группу приложений
Добавьте возможность App Groups в вашу целевую платформу приложения и в каждую целевую платформу расширения уведомлений, используя один и тот же идентификатор группы, и объявите его в Info.plist каждого целевого объекта:
<key>PushEngage_App_Group_Key</key>
<string>group.com.yourcompany.yourapp</string>
Приложение и его расширения совместно используют состояние подписчика через этот контейнер. Пропуск этого шага — самая распространенная ошибка при интеграции; без него ваши расширения каждый раз при доставке запускаются пустыми.
Шаг 3: Инициализируйте и запросите разрешение
import PushEngage
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
PushEngage.setAppID(id: "YOUR_APP_ID")
PushEngage.setInitialInfo(for: application, with: launchOptions)
return true
}
}
// Later, at a value moment — not on first launch:
PushEngage.requestNotificationPermission { granted, error in
if granted { /* subscribed */ }
}
Место, где вы размещаете этот вызов разрешения, важнее всего остального в этом руководстве — iOS предоставляет вам ровно один нативный запрос. Руководство по предварительному запросу разрешения охватывает шаблон мягкого запроса, который его защищает.
Как отправлять rich push-уведомления для iOS
Изображения, кнопки действий и пользовательские звуки требуют расширения службы уведомлений — небольшой целевой платформы, которая перехватывает каждое уведомление и добавляет медиафайлы перед отображением. Добавьте целевую платформу в Xcode, свяжите с ней PushEngageExtension и передайте два вызова жизненного цикла:
import PushEngageExtension
class NotificationService: UNNotificationServiceExtension {
override func didReceive(_ request: UNNotificationRequest,
withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
PushEngageExtension.didReceiveNotificationExtensionRequest(request,
bestContentHandler: contentHandler)
}
override func serviceExtensionTimeWillExpire() {
// hand back the best content prepared so far
}
}
Оттуда расширенные медиафайлы являются функцией панели управления: ваша маркетинговая команда прикрепляет изображение продукта или главное изображение при создании кампании, а расширение отображает его. Больше никаких изменений в приложении для каждой кампании.
Как создавать персонализированные push-уведомления для iOS
Персонализация работает на основе данных, которые SDK знает о каждом подписчике. Идентифицируйте своего пользователя и прикрепляйте атрибуты, и каждая кампания сможет сегментировать и использовать шаблоны на их основе:
// Identify the signed-in user (12 predefined fields supported)
PushEngage.identify(fields: [
"first_name": "Priya",
"email": "[email protected]",
"profile_id": "user-42",
"city": "Austin"
]) { success, error in }
// Attach custom attributes for segmentation
PushEngage.addSubscriberAttributes([
"favorite_category": "outerwear",
"loyalty_tier": "gold"
]) { success, error in }
// On sign-out, clear PII but keep the anonymous subscription
PushEngage.logout(fieldNames: nil) { success, error in }
Повторные вызовы identify с неизмененными данными локально сокращают путь, поэтому вызов на каждом запуске безопасен. Как только атрибуты будут переданы, сегментация происходит на панели управления — «покупатели верхней одежды премиум-класса в Техасе» становятся сохраненной аудиторией, а не SQL-запросом.
Как добавить глубокую ссылку в push-уведомления iOS
Каждое нажатие на кампанию должно приводить к обещанному экрану. Установите обработчик открытия уведомления один раз, маршрутизируйте по глубокой ссылке, которую он несет:
PushEngage.setNotificationOpenHandler { result in
// actionID is nil when the SDK already opened the URL itself
guard let deepLink = result.notificationAction.actionID else { return }
DispatchQueue.main.async {
router.navigate(to: deepLink) // e.g. myapp://cart
}
}
Маркетолог вставляет глубокую ссылку в форму кампании; ваш обработчик выполняет маршрутизацию. Полные шаблоны — включая универсальные ссылки и опцию автоматического открытия — находятся в руководстве по глубоким ссылкам.
Как запускать кампании на основе событий приложения
Вызов trackEvent в SDK версии 1.0 превращает любое внутриигровое действие в триггер кампании — брошенную корзину, завершенный шаг онбординга, просмотренную категорию:
PushEngage.trackEvent(name: "cart_updated",
properties: ["cart_value": 89.50, "item_count": 2],
profileId: currentUserId,
provider: nil, eventType: nil) { _, _ in }
Инструментируйте событие один раз; маркетинг создает и итерирует кампании на его основе бесконечно. Руководство по кампаниям, запускаемым событиями, содержит полную таксономию и настройку корзины, онбординга и возврата клиентов.
Что делать после установки SDK для push-уведомлений iOS
Интеграция — это начало, а не финишная прямая. Последовательность, которая окупается быстрее всего: защитите свой процент согласия с помощью продуманного потока разрешений, запустите последовательность брошенных корзин (кампания с самой высокой рентабельностью для коммерческих приложений), добавьте отслеживание целей, чтобы каждая кампания сообщала о доходах вместо открытий, а затем постройте жизненный цикл — серию онбординга на фронтенде, возврат клиентов на бэкенде. Руководство по маркетингу push-уведомлений в приложениях охватывает этот слой стратегии от начала до конца, а документация по настройке проведет вас по каждому экрану панели управления. На каждый платный план действует 14-дневная гарантия возврата денег — а SDK имеет лицензию MIT на GitHub, поэтому вы можете точно видеть, что вы устанавливаете.