PushEngage iOS SDK 1.0が登場しました。ウェブサイトと並行してモバイルアプリを運営している場合、トリガーキャンペーン、オーディエンスセグメンテーション、目標追跡、収益アトリビューションといったPushEngageのリテンションスタック全体を、午後にインストールできるネイティブSwift SDKを使用してユーザーのロック画面に配信できるようになりました。
これは、2023年にモバイルアプリプッシュをローンチして以来、最大のiOSリリースです。バージョン1.0は、SDKのアーキテクチャの根本的な見直し、アプリがPushEngageにサブスクライバーについて伝えられることの大幅な拡張、そして完全な自動テストスイートを追加した本番環境対応の強化です。以下にその内容を示します。
iOS SDK 1.0の新機能
よりクリーンな2モジュールアーキテクチャ
SDKは現在2つのモジュールに分割されています。PushEngageは、パーミッション処理、サブスクリプション管理、キャンペーン、分析など、アプリターゲットに必要なすべてを含みます。PushEngageExtensionは、リッチメディアのレンダリングと配信の追跡を行う通知サービスおよびコンテンツ拡張ターゲット向けの軽量モジュールです。拡張ターゲットはSDK全体を読み込む必要がなくなり、共有状態(サブスクライバーID、設定、ロギング)はApp Groupコンテナを介してアプリとその拡張機能間で流れます。
identifyとlogoutによるサブスクライバーID
最大12個の事前定義されたサブスクライバーフィールド(名前、メールアドレス、電話番号、プロフィールID、場所など)を、単一のidentify呼び出しでデバイスサブスクリプションにアタッチできるようになりました。ユーザーがサインアウトすると、logoutは個人フィールドをクリアし、匿名サブスクリプションはそのまま維持されます。変更のないデータで繰り返される呼び出しはネットワーク往復なしでローカルで解決されるため、起動ごとに安全にidentifyを呼び出すことができます。
trackEventによるカスタムイベントトラッキング
新しいtrackEvent APIは、型付けされたプロパティとオプションのサブスクライバーアトリビューションを使用して、カスタム分析イベント(カート追加、レベル完了、閲覧商品など)をアプリからPushEngageに直接送信します。これにより、トリガーキャンペーンと組み合わせることで、新しいキャンペーンごとにエンジニアリングチケットを必要とせずに、あらゆるアプリ内行動が通知ジャーニーを開始できるようになります。
React NativeおよびFlutterチーム向け
バージョン1.0では、次世代のFlutterおよびReact Native SDKの基盤となる、ファーストクラスのラッパーIDが追加されました。クロスプラットフォームチームは、Swiftチームと同じネイティブ配信パスを利用でき、PushEngageダッシュボードは各サブスクライバーがどのスタックから来たのかを正確に把握できます。
本番環境向けに構築
- iOS 12以上、Xcode 15以上、Swift 5.9 — 完全なObjective-Cサポートと両言語での完全なサンプルアプリ付き
- Swift Package ManagerおよびCocoaPods — ソースのみの配布、ベンダー化する事前ビルド済みバイナリなし
- 完全自動化されたテストスイート — ネットワーク、通知ライフサイクル、サブスクライバーの状態、ペイロード解析をカバーする約60の新しいテストファイル
- MITライセンスでGitHubで公開中 — 出荷前にすべてのコードを確認できます
開始は4行で完了します
GitHubからパッケージを追加し、PushEngageをアプリターゲットにリンクして、AppDelegateで初期化します。
import PushEngage
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
PushEngage.setAppID(id: "YOUR_APP_ID")
PushEngage.setInitialInfo(for: application, with: launchOptions)
return true
}
// Wherever onboarding makes sense:
PushEngage.requestNotificationPermission { granted, error in
if granted { print("Subscribed") }
}
そこから、プッシュエンゲージダッシュボードのすべてのキャンペーンタイプ(ドリップシリーズ、カートリカバリー、価格変動アラート、A/Bテスト)は、Webプッシュの場合と同じようにアプリサブスクライバーにも機能します。マーケティングチームはダッシュボードからキャンペーンを実行します。エンジニアは「プッシュを送信してほしい」というチケットに二度と対応する必要がなくなります。
0.1.xからのアップグレード
アプリターゲットのコードは変更されません。通知拡張ターゲットには3つの小さな変更が必要です。
- 依存関係 — 拡張ターゲットは、
PushEngageの代わりにPushEngageExtensionポッドまたはSPMプロダクトを使用するようになります - インポート — 拡張コードの
import PushEngageがimport PushEngageExtensionになります - 呼び出しサイト — クラスプレフィックスが
PushEngageからPushEngageExtensionに変更されます。メソッド名は同じままです
CocoaPodsアップグレーダーは、古い単一モジュールフレームワークがビルドキャッシュから完全にクリアされるように、一度pod deintegrate && pod installを実行する必要があります。完全な移行ガイドはGitHub READMEにあります。
リテンションにとってこれが重要な理由
アプリのインストールは、顧客があなたに与えることができる最も強力なオプトインシグナルであり、ロック画面は彼らが所有する最も注意を引くサーフェスです。アプリを持つほとんどのブランドは、それを使用せずにそのアセットを眠らせています。インストールベースは成長し続けていますが、通知戦略は「それに取り組むべきだ」という段階にとどまっています。1.0 SDKはエンジニアリングの言い訳を取り除きます。統合は午後の作業で、キャンペーンはダッシュボード駆動で、価格はアクティブなサブスクライバーのみに基づいてスケーリングされるため、大規模な休眠中のインストールベースはコストになりません。
配信のみのセットアップからの移行を評価している場合は、PushEngageとFirebase Cloud Messagingの比較で、マーケティングレイヤーが生の配信の上に何を追加するかを説明しています。まず戦略的な全体像を知りたい場合は、アプリプッシュマーケティングガイドから始めてください。
今日から始めましょう
SDKはGitHub、CocoaPods、およびSwift Package Managerで利用可能です。ステップバイステップのセットアップガイドでは、証明書、App Groups、および最初のキャンペーンについて説明します。すべての有料プランには14日間の返金保証が付いています。すでにPushEngageのお客様は、アプリプッシュがダッシュボードですぐに利用可能です。