一般的なPUSH配信ASPはセグメント検索が弱かったり、使いにくかったりします。
自サーバーで配信部分まで構築するのは現実的ではないため、配信部分は外部サービスを使った方が開発工数も抑えられ、安定感も向上します。
API対応しているASPもありますが、APIが利用できるプランを選択すると料金が高額になったりします。
そこでオススメししたのがAmazon SNSです!
他のASPにある開封率集計、A/Bテストなどはありません(自前でやる必要があります)が、圧倒的なのは低コストであることです。
100万通配信しても$0.5となっており、他のASPサービスと比べても雲泥の差となっています。
PUSH配信するのに特化したサービスなので、基本はすべてAPIで実装するため、自社システムとの相性は抜群だと思います。
信頼性や配信速度なども他のASPと遜色はありません。
アプリ側にSDKの導入も不要です。
今回はCMSでユーザー管理をしていて、PUSH配信予約を使いやすいようにカスタマイズして使いたい、ASPでは実現不可能なセグメント検索をやりたい、ついでにコストも抑えたい、という場合の構築方法を解説します。
前提条件など
DBによるユーザー管理をしていて、iOS・Androidに全配信やセグメント配信でPUSH通知を送る場合のPHPでのやり方です。
ほとんどサーバー側の説明です。
アプリ側にはSDKは使用せず、直接SNSにエンドポイントは登録しません。
代わりにPUSH通知トークン登録用APIを用意します。
アプリ側の処理はトークンを付与してAPIにリクエストするだけで、
サーバーからSNSにエンドポイントを登録します。
事前準備
APNsの証明書とGCMのAPI KEYを準備してください。
また、SNS のAPIを利用するため、アクセスキーIDとシークレットアクセスキーをAWSから取得しておいてください。
取得方法がわからなければググってくださいw
Amazon SNSでの設定
プラットフォームアプリケーションの作成
iOS、Androidそれぞれで作成します。
開発用と本番用も別々のアプリケーションになります。
iOS
・アプリケーション名
アプリ名やiOSや開発か本番など、わかりやすい名前を付けます。
・プッシュ通知プラットフォーム
今回は開発環境なので、"Apple Development"を選択します。
本番環境の場合は、"Apple Production"を選択してください。
・プッシュ通知タイプ
デフォルトの"iOS プッシュ証明書"のままでOKです!
・*p12 ファイルの選択
用意してあるAPNsのp12ファイルを選択します。
・パスワードの入力
パスワードを入力して、"認証情報をファイルから読み込み"ボタンをクリックします。
下にある証明書とプライベートキーに自動入力されればOKです。
Android
・アプリケーション名
アプリ名やAndroidや開発か本番など、わかりやすい名前を付けます。
・プッシュ通知プラットフォーム
"Google Gloud Messaging(GCM)"を選択します。
iOSのように開発と本番で分かれていません。
・APIキー
事前に取得したAPIキーを入れます。
作成が完了すると"アプリケーション ARN"が発行され、エンドポイントの追加やエンドポイント一覧取得に必要となります。
トピックの作成
iOS、Androidそれぞれの全配信用のトピックを作成します。
・アプリケーション名
アプリ名やOSや全配信用のALLや開発か本番など、わかりやすい名前を付けます。
・プッシュ通知プラットフォーム
未入力のままでOK!
アプリケーションと同様に今度は"トピック ARN"が発行されます。
トピックにエンドポイントをサブスクライブしたり、トピックに登録されているエンドポイントに一斉PUSH配信するために必要となります。