iOS 推送通知 SDK 可完成两项工作:它负责处理您的应用与 Apple 推送通知服务之间的通信管道,并将该管道连接到营销活动平台,以便您的营销团队能够实际使用它。本指南涵盖这两方面 — 实际的集成步骤以及您将要交付的代码,以及 SDK 集成后在仪表板中可能实现的功能。它反映了 PushEngage iOS SDK 1.0,这是当前版本。
为什么要在您的应用中使用 iOS 推送通知 SDK
您可以直接与 APNs 通信 — 注册设备令牌,构建发送器,自行处理交付回调。您从原始 APNs 获得的是交付;您无法获得的是营销所需的一切:细分、计划和触发的营销活动、A/B 测试、分析和收入归因。像 PushEngage 这样的 SDK 会将您的应用连接到该层一次,因此营销活动的创建是在仪表板中完成,而不是在 Xcode 项目中。实际结果是:集成一周后,推送营销活动将不再是工程工单。
如何安装 PushEngage iOS 推送通知 SDK
您需要 iOS 12+、Xcode 15+、一个 已上传到您的 PushEngage 仪表板的 APNs 密钥,以及大约一个下午的时间。SDK 包含两个模块:用于您的应用目标的 PushEngage 和用于通知扩展目标的 PushEngageExtension。
步骤 1:添加软件包
在 Xcode 中,转到 文件 → 添加软件包依赖项 并输入存储库 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:配置应用组
将 应用组 功能添加到您的应用目标和每个通知扩展目标,使用相同的组 ID,并在每个目标的 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 只会向您显示一次原生提示。 权限预热指南 涵盖了保护它的软询问模式。
如何为 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
}
}
从那里开始,富媒体就成为一个仪表板功能:您的营销团队在构建广告系列时会附加产品图片或主图,扩展程序会渲染它。每个广告系列无需进一步的应用更改。
如何创建个性化的 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 请求。
如何在 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
}
}
营销人员将深度链接粘贴到广告系列表单中;您的处理程序会进行路由。完整的模式——包括通用链接和自动打开选项——都在深度链接指南中。
如何从应用事件触发广告系列
1.0 SDK 的 trackEvent 调用将任何应用内行为转化为广告系列触发器——例如,废弃的购物车、完成的入门步骤、浏览的类别:
PushEngage.trackEvent(name: "cart_updated",
properties: ["cart_value": 89.50, "item_count": 2],
profileId: currentUserId,
provider: nil, eventType: nil) { _, _ in }
一次性配置事件;营销人员可以针对该事件无限期地构建和迭代广告系列。事件触发广告系列指南包含完整的分类法以及购物车、入门和挽回客户的接线说明。
现在您有了 iOS 推送通知 SDK,接下来该做什么?
集成是开始,而不是终点。回报最快的顺序:通过优先的权限流程保护您的选择加入率,发布购物车放弃序列(电商应用中投资回报率最高的广告系列),添加目标跟踪以便每个广告系列报告收入而非打开次数,然后构建生命周期——前端的入门系列,后端的挽回客户系列。应用推送营销指南涵盖了端到端的策略层,而设置文档则引导您完成每个仪表板屏幕。所有付费套餐均提供 14 天退款保证——SDK 在 GitHub 上采用 MIT 许可,因此您可以确切地了解您正在发布的内容。