web-dev-qa-db-ja.com

Amazon Simple Notification Service(SNS)を使用して数百万のプッシュ通知のバッチを送信する方法

多くの会社のように、私が働いている会社はAppleのAPNSの使用に慣れていません:公式ライブラリがない、ランダムにカットオフされるストリームなど...同じことがAndroidのプッシュシステムにも当てはまります:小さなバッチに限定され、 AppleのAPNS ...そのため、私たちは代替手段を探しています。Amazonが何百万ものプッシュ通知をほぼ無料で送信できると主張したとき、SNSが完璧なソリューションになると考えました。

問題は、対処するデバイスが100万を超えることが多く、プッシュキャンペーンが同じデバイスをターゲットにすることはめったにないことです。私たちが掘り下げた限り、唯一の解決策は、エンドポイントを一度に1つずつ作成するメソッドのみを提供するAWSAPIを使用することです。いくつかのテストの結果、1 000 000のエンドポイントを作成するには、約15時間(約17コール/秒)かかることがわかったため、これは私たちにとって大きな問題です。

すべてのエンドポイントが作成された後でも、すべてのプッシュを一度に送信するには、エンドポイントをトピックに追加する必要があります。また、これは一度に1つのエンドポイントで実行する必要があります(つまり、さらに15時間)。イベント呼び出しをマルチスレッド化して、たとえば30スレッドにした場合でも、1時間かかります。

それで、私たちが見逃したことがあるかどうか誰かが私たちに言うことができますか? Amazonは、1つのプッシュキャンペーンを作成するために、30時間の間にWebサービスを氾濫させることを本当に期待していますか?準備に数時間かかる場合、どのようにして1秒間に100万プッシュを送信するふりをすることができますか?彼らはSNS用のバッチAPIに取り組んでいますか?トークンを含むAmazonDBをプラグインしてSNSトピックにフィードすることは可能ですか?

20
pimpreneil

Amazonは、CSVインポーターを含むエンドポイント/トークンを追加するいくつかの方法を提供しているようです(ただし、一度に2MBのcsvファイルに制限されています)。また、APIとサンプルJavaトークンの一括アップロード用のアプリケーション( リンク )も提供します。

トピックのサブスクリプションポイントは、Amazon SNSの従業員によって対処されます ここ 、残念ながら、これに使用できるバッチAPIがないことを本質的に説明しています。

カスタムセグメント/トピックを頻繁に作成することになると、ニーズをより適切に満たす可能性のあるサードパーティのプッシュ通知プロバイダーが他にもいくつかあります。

  1. OneSignal (開示:私はこの会社を経営しています)
  2. MixPanel
  3. 解析
5
Gdeglin