iOS向けプッシュ通知の設定

iOS向けプッシュ通知の設定

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

PageSenseでは、ダッシュボードからアプリにプッシュ通知を送信できます。アプリに初めてプッシュ通知を送信するには、次の手順を実行します。リモートプッシュ通知をテストするには、実機のiOSデバイスを接続する必要があります。リモートプッシュ通知はシミュレーターでは動作しません。

手順1:プッシュ通知の設定

PageSenseのダッシュボードからiOSアプリにプッシュ通知を送信するには、まずApple Developerアカウントのキーまたは証明書をアップロードする必要があります。プッシュ通知を設定する方法は2つあります。

.p8ファイルを取得してアップロードするには(推奨)
  1. Apple Developerアカウントにサインインし、[証明書、IDとプロファイル]に移動します。















  1. [キー]セクションに移動し、[追加]ボタン(+)

    をクリックして新規キーを追加します。












  1. キーに一意の名前を付け、[Appleプッシュ通知サービス(APNs)]のチェックボックスを選択します。[続ける]をクリックし、次に[確定]


    をクリックします。

  1. キーIDを控えて保存します。キーを生成して保存するには、[ダウンロード]
    をクリックします。
    Notesメモ:キーは安全な場所に保存してください。キーをダウンロードできるのは1回のみです。認証キーファイルの名前は変更しないでください。手順6に示すように、そのままPageSenseのダッシュボードにアップロードしてください。

  2. 次に、PageSenseのダッシュボードで、[設定]→[チャネル]→[モバイルプッシュ]に移動します。[iOS]タブを選択し、次の画像のように、[認証形式]で[プロバイダー認証トークン(認証キー)]を選択します。



  3. [認証キーをアップロード]する選択肢が表示されます。Apple Developerアカウントの.p8キーをアップロードし、[チームID][バンドルID]を入力します。

  4. チームIDはApple Developerアカウントで確認できます。[メンバーシップ]タブに移動して、チームIDを確認します。アプリのバンドルIDはXcodeで確認できます。プッシュ通知の送信に適したモードを選択し、[保存]をクリックします。

次の理由から、.p12証明書ではなくAPNs認証キーを作成してアップロードすることをお勧めします。

i)プッシュ証明書を毎年再生成する必要がありません。

ii)1つの認証キーをすべてのアプリで使用できるため、複数の証明書を管理する手間を省けます。

.p12証明書を取得してアップロードするには

.p8ファイルを正常に設定済みの場合、この手順を省略して直接手順2に進むことができます。

また、Appleの従来の認証方式(.p12 SSL証明書)を使用することもできます。これらの証明書は毎年自動的に期限切れになるため、再生成して再度アップロードする必要があります。
  1. Apple Developerアカウントにログインし、[プログラムリソース]タブに移動して、[証明書、識別子とプロファイル]を選択します。

  1. [証明書]タブを選択し、[+]記号を使用して新規証明書を追加します。



  2. [Appleプッシュ通知サービスSSL][サービス]で選択し、[続ける]をクリックします。


  3. ドロップダウンからプロジェクトの[アプリID]を選択します。

  4. Appleから証明書署名要求のアップロードを求められます。Macでキーチェーンアクセスを開き、[証明書アシスタント]に移動します。[認証局に証明書を要求]を選択します。



    この選択肢を選択すると、証明書アシスタントが表示されます。[要求の処理]を[ディスクに保存]に設定し、メールアドレスは未入力のままにします。[続ける]をクリックします。

  5. 次に、アップロードを求められた証明書をApple Developerアカウントにアップロードします。

  6. ダウンロードした生成済みの証明書を、キーチェーンアクセスアプリケーションで開きます。

  7. キーチェーンアクセス[自分の証明書]をクリックし、プッシュ証明書を探します。


  8. 対象の証明書を選択して右クリックし、エクスポート形式として.p12ファイルを選択し、一時的なパスワードを設定します。(証明書をPageSenseダッシュボードにアップロードする際に必要です)。



  9. ダッシュボードで[設定の管理]→[設定]に移動し、証明書を[Appleプッシュ証明書]の欄にアップロードします。パスフレーズには一時的なパスワードを入力します。


    Info情報:配布用プロビジョニングプロファイルを使用するアプリでは、開発用または本番用のプッシュ証明書をダッシュボードにアップロードできます。ただし、同時に有効にできるプッシュ証明書は1つのみです。
    アプリをApp Storeで公開した後、本番環境でプッシュ通知をテストする場合は、開発環境用に別のアプリグループまたはアプリを設定することをお勧めします。

手順2:プッシュ通知機能の有効化

Xcodeのプロジェクトの設定で、[ターゲット]を選択した状態で、[署名と機能]タブをクリックし、[+機能]ボタンをクリックして追加します。[フィルター]項目に「push」と入力し、[プッシュ通知]を選択します。これにより、プロジェクトでプッシュ通知機能が有効になります。

手順3:プッシュ通知の登録

1. まず、User NotificationsをApp Delegateにインポートします。プッシュ通知の連携コードは、App Delegateファイルに記述し、メインスレッドで実行する必要があります。PageSense SDKからプッシュ通知を送信するように設定するには、iOSへの連携までの手順を、クイックスタートガイドに沿ってすべて完了しておく必要があります。 アプリでプッシュ通知を設定するには、 UNUserNotificationCenterDelegateAppDelegateに実装します。
2. デバイスをAPNsに登録するには、次のコードをApp Delegateのapplication:didFinishLaunchingWithOptions:
デリゲートメソッドに追加します。
  1. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  2.      // Override point for customization after application launch.
  3. PageSense.integrate()
  4. UNUserNotificationCenter.current().delegate = self
  5. registerForPushNotifications()
  6. return true
  7. }
  8. func registerForPushNotifications() {
  9. UNUserNotificationCenter.current().requestAuthorization(options: [
  10. .badge, .sound, .alert
  11. ]) { granted, _ in
  12. guard granted else { return }
  13. DispatchQueue.main.async {
  14. UIApplication.shared.registerForRemoteNotifications()
  15. }
  16. }
  17. }
  18. func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
  19. PageSense.setPushToken(deviceToken: deviceToken)
  20. }
これは、iOSアプリにプッシュ通知を送信するために必須の手順です。アプリがこの承認を初めて要求すると、要求を許可するか拒否するかを確認するメッセージがユーザーに表示され、その回答が記録されます。

プッシュインプレッション

ユーザーのiOSデバイスに到達済みのプッシュ通知について、インプレッションを送信して記録できるようになります。iOSでプッシュインプレッションを送信するには、通知サービス拡張機能を有効にする必要があります。




通知サービス拡張機能は、アプリバンドルに埋め込まれる独立したバイナリです。新しいプッシュ通知を表示する前に、システムが通知サービス拡張機能を呼び出し、アプリの通知表示済みメソッドを呼び出せるようにします。通知サービスファイルのdidReceive関数に、次のコードを記述します。

  1. override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
  2. self.contentHandler = contentHandler
  3. bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

  4. if let bestAttemptContent = bestAttemptContent {
  5.            // Modify the notification content here...
  6. bestAttemptContent.title = '\(bestAttemptContent.title) [modified]'
  7.             
  8. contentHandler(bestAttemptContent)
  9.             
  10. PageSense.trackPushNotificationReceived(notificationContent: request.content)
  11. }
  12. }

このドキュメントは、各手順を順に進められるように構成されています。さらにサポートが必要な場合や質問がある場合は、support@zohopagesense.com - までお気軽にお問い合わせください。いつでもサポートいたします。