スキップしてコンテンツを表示

アンインストールしたiOSアプリへのSNS PUSH通知の配信失敗が判定できない

0

■前提 Amazon SNSを利用してiOS/Androidアプリに対してPUSH配信を行っています。 PUSH配信は配信の都度AWS SNSのトピックを作成し、そこにサブスクリプションを登録し配信しています。 以下に記載する【配信失敗判定方法】で配信失敗しているendpoint_arnを取得し、 次回のPUSH配信に含めないように制御しています。

【配信失敗判定方法】(2パタン) 判定方法1.SQSを利用して判定  以下の2種類のイベント通知をSNSに購読させ、メッセージをSQSに配信する。   ・直接発行の配信が失敗したときの DeliveryFailure イベント通知   ・EndpointUpdated イベント通知  SQSからメッセージを取得し、以下の条件に一致する場合endpoint_arnが無効(配信失敗)と判定する。   ・メッセージのEventTypeがDeliveryFailure、かつFailureTypeがEndpointDisabled、InvalidPlatformToken、EndpointNotFoundのいずれかの場合   ・メッセージのEventTypeがEndpointUpdatedの場合は、GetEndpointAttributesAPIを使って属性を取得し、Enabledがfalseになっている場合

判定方法2.ListEndpointsByPlatformApplicationAPIを利用して判定  ListEndpointsByPlatformApplicationAPIですべてのendpoint_arnを取得し、Enabledがfalseになっている場合は、endpoint_arnが無効(配信失敗)と判定する。

■質問 1.前提に記載した「判定方法1」と「判定方法2」は判定内容として同じでしょうか。   同じであればどちらか片方の判定だけでも問題ないでしょうか。

2.iOSアプリの場合、アプリをアンインストールして1週間後に該当端末にPUSH配信しても配信失敗判定されません。   (Androidはアプリをアンインストール後にPUSH配信で配信失敗判定されます。)   iOSアプリを再インストールすると1日後くらいにPUSH配信するとは配信失敗判定されます。   iOSアプリをアンインストールするだけの状態でPUSH配信をしても無効と判定する方法はないでしょうか。

質問済み 1年前143ビュー
1回答
0
承認された回答
  1. 判定方法1と判定方法2は、基本的に同じ結果を得ることを目的としていますが、アプローチが異なります。

判定方法1は、イベントベースでリアルタイムに失敗を検知し、さらにEndpointUpdatedイベントを使用して最新の状態を確認します。一方、判定方法2は、定期的にすべてのエンドポイントの状態を一括で確認します。

どちらか一方だけでも基本的な判定は可能ですが、それぞれに長所があります:

  • 判定方法1は、リアルタイム性が高く、イベント発生時にすぐに対応できます。
  • 判定方法2は、すべてのエンドポイントの状態を定期的に確認できるため、見落としが少なくなります。

理想的には、両方の方法を組み合わせて使用することで、より確実な判定が可能になります。

  1. iOSアプリのアンインストール後のPUSH通知の失敗判定は、Androidと比べて難しい課題です。これは、Apple Push Notification service (APNs)の仕様によるものです。

残念ながら、iOSアプリがアンインストールされただけの状態で確実にPUSH配信の無効を判定する直接的な方法はありません。しかし、以下のアプローチを検討することで、ある程度の改善が可能かもしれません:

a. 定期的なテスト通知の送信: 小さなペイロードのテスト通知を定期的に送信し、デバイスの状態を確認します。これにより、アンインストールされたアプリを早期に検出できる可能性があります。

b. アプリケーションレベルでの対策: アプリ起動時やバックグラウンド更新時に、デバイストークンをサーバーに送信し、最後の確認日時を記録します。長期間更新がないエンドポイントは、アンインストールされた可能性が高いと判断できます。

c. ユーザーエンゲージメントの監視: アプリの使用状況やサーバーとの通信頻度を監視し、長期間アクティビティがないユーザーのエンドポイントを無効と判断する方法も考えられます。

d. APNsのフィードバックサービスの活用: APNsは、デバイストークンが無効になった場合にフィードバックを提供します。このサービスを定期的にチェックすることで、無効になったトークンを特定できる可能性があります。

これらの方法を組み合わせることで、iOSアプリのアンインストール後のPUSH通知の失敗判定の精度を向上させることができるかもしれません。ただし、完全な解決策ではないことに注意してください。
Sources
Sending mobile push notifications with Amazon SNS - Amazon Simple Notification Service
Amazon Simple Notification Service (SNS) FAQs | Messaging Service | AWS

回答済み 1年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。