こんにちは!ニフティライフスタイルでエンジニアをしている長谷川(@koga_wiwi)です。
2019/9/5から9/7にかけて行われた「iOSDC Japan 2019」にて、Amazon PinpointについてLT登壇をしてまいりました。
今回はその内容について、一部補足を加えながらご紹介します。
発表内容
Amazon Pinpoint でユーザーに合わせたプッシュ通知を実現する
本トークの中で触れられなかった内容
ユーザーとエンドポイント
トーク中で「Pinpoint内のデータベースに属性情報を保存する」という表現をしましたが、Pinpoint では配信対象について「ユーザー」と「エンドポイント」という2つの概念が出てきます。
ユーザーとエンドポイント(= 連絡先)は1対多の関係になっており、複数の連絡先情報を1ユーザーとして紐付けて管理ができるようになっています。
電話帳アプリでも一人に対して「電話番号」「メールアドレス」「SNSアカウント」などのように複数の連絡先を登録できるのが普通かと思いますが、そのイメージです。
属性情報は、ユーザーに付与することも、エンドポイントに付与することも可能です。ただし、個数に制限がありますので注意してください。また、ユーザー管理を使うには、エンドポイントに User.UserId
属性を付与する必要があります。ID自体は自由に設定が可能なので、認証システムなどで払い出したユーザーIDを登録すると良いでしょう。
カスタムフィルターとカスタムチャネル
Pinpoint では、iOSやAndroidのプッシュ通知のほか、SMS、メールなどのコミュニケーション手段が用意されていますが、それとは別にカスタムチャネル機能を使うと、送信処理の部分をカスタマイズすることが可能です。
例えば、LINEやFacebookメッセンジャーのIDなどをPinpointに格納しておき、これらのAPIを使った送信処理をLambdaで実装することで、Pinpointからこれらのアプリへメッセージを送信することも可能になっています。
機能名や、設定時にCLI経由で渡すパラメータなどがカスタムフィルターと似ていて紛らわしいのですが、こちらもぜひ活用してみてください。(なお、こちらの機能も執筆時点ではパブリックベータの機能です)
そのほかの機能
基本的な送信のほか、送信予約機能や、コンテンツ・送信時間を分けてのA/Bテストなど など、基本的な機能は揃っているように感じます。
送信数や開封率についてはPinpointのダッシュボード上で確認できるほか、送信イベントや開封イベント、メール中のリンククリックなど、Pinpointで発生したイベントをKinesisへストリーミングすることができるようになっており、統計や機械学習などを用いてより細かい分析を行うことが可能です。
さいごに
レギュラートーク、LTともに毎年面白いトークが集まるiOSDCですが、今年発表させていただいたLT枠はとても面白いトークが多く、私としては力不足を実感したLTでした。
もっと精進して、今後もみなさんにより役立ててもらえる、またより楽しんでもらえる発表ができるよう、日々の業務をより一層頑張っていきたいと思います。
なおスライド中でも一瞬だけご紹介しましたが、ニフティライフスタイルでは現在アプリエンジニアを募集中です。
一緒に働いてみたい方、興味のある方は、個人Twitter宛てでもかまいませんので、ぜひお声がけいただけると嬉しいです!