iOSプッシュ通知SDK

アプリのためのiOSプッシュ通知SDKの使い方(コード付き)

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ライセンスされているため、出荷されるものを正確に確認できます。

コメントを追加

コメントをお寄せいただきありがとうございます。すべてのコメントはプライバシーポリシーに従ってモデレーションされ、すべてのリンクはノーフォローとなりますのでご注意ください。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。

ウェブサイトを離れた後も訪問者をエンゲージし、維持する

見逃せないプッシュ通知で、すべてのウェブ訪問の価値を高めましょう。

  • 永久無料プラン
  • 簡単なセットアップ
  • 5つ星サポート