Apple Push NotificationのFeedbackサービス

iPhoneなどにPushを送るApple Push NotificationのFeedbackサービスというものがある。アプリを出してしばらく経つと機種変とかアンインストールなどでPushが届かない端末が出て来る。不達になった場合Apple側にデバイストークンが通知され一定の基準に達するとFeedbackサービスで不達デバイストークンとして返ってくるリストに加えられる。

というわけなのだがFeedbackサービスはバイナリインターフェイスなのでデバッグが難しい…というか毎回別の値が返ってくるので意味がわからない。なう。

APNSのFeedbackサービスはPDF1ページしか説明が無くて情報不足。運用についてはhttps://code.google.com/p/javapns/wiki/FeedbackServiceの方が詳しい。

追加で書かれているのは

  • Push送信時にもエラーレスポンスパケットが出ると思うけどっそっちと併用して判断してね
  • エラーレスポンスパケットが出ると思うけどっそっちと併用して判断してね
  • Feedbackサービスの場合アプリがアンインストールされた時にApple側に通知が来るよ(ということは機種変による不達は別の方法で検知が必要)
  • インターネッツ上の情報を総合すると最低1個以上Push設定されたアプリが残ってないとAppleにアンインストール通知が来ないよ(なんだそりゃ。バグ?)

Windows Azureモバイル サービスのiOSサポート – プッシュ通知サポートを追加 | S/N Ratio (by SATO Naoki)でも同様のことが書かれている。Feedbackサービスはアンインストール通知を集めている、ということね。

PNS (プッシュ通知サービス) を扱う際に重要な点は、期限切れのデバイス トークンやチャネルのフィードバックの扱いです。通常、アプリケーションが特定のデバイスからアンインストールされ、もはや通知を受け取れない際に、これが起こります。Windows Notification Services (WNS) では、HTTPサーバーから即座にレスポンスを取得します。アップルの通知サービスは少し異なる形で動作し、期限切れのトークンの一覧をポーリングするために接続できる追加のエンドポイントを提供します。