iOSプッシュ通知SDKは2つの役割を果たします。アプリとApple Push Notificationサービス間の配管処理を処理し、その配管をキャンペーンプラットフォームに接続してマーケティングチームが実際に使用できるようにします。このガイドでは、両方について説明します。実際にデプロイするコードを使用した統合手順と、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は2つのモジュールとして提供されます。アプリターゲット用の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:App Groupを設定する
アプリターゲットとすべての通知拡張ターゲットに同じグループIDを使用して**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はネイティブプロンプトを1回だけ許可します。権限プライミングガイドでは、それを保護するソフトアスクパターンについて説明しています。
iOSでリッチアプリプッシュ通知を送信する方法
画像、アクションボタン、カスタムサウンドには、通知が表示される前に各通知をインターセプトしてメディアを添付する小さなターゲットであるNotification Service Extensionが必要です。Xcodeでターゲットを追加し、PushEngageExtensionをリンクして、2つのライフサイクルコールを転送します。
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を入手した今、何をすべきか
統合は始まりであり、ゴールではありません。最も速く成果が出るシーケンスは、プライムされたパーミッションフローでオプトイン率を保護し、カート放棄シーケンス(コマースアプリで最もROIの高いキャンペーン)をリリースし、目標追跡を追加してすべてのキャンペーンが開封数ではなく収益を報告するようにし、次にライフサイクルを構築します。フロントエンドでオンボーディングシリーズ、バックエンドでウィンバックです。アプリプッシュマーケティングガイドは、その戦略レイヤーをエンドツーエンドでカバーし、セットアップドキュメントはすべてのダッシュボード画面を案内します。すべての有料プランには14日間の返金保証が付いています。また、SDKはGitHubでMITライセンスされているため、出荷されるものを正確に確認できます。