Revenuecat設定編【Flutter×Revenuecat】サブスクリプションを構築する
私が先日リリースした筋トレ習慣化アプリ(Fitness Slave)で、アプリ内課金によるサブスクリプション機能を実装しました。
◆iOS
◆Android
Revenuecatのシリーズ記事です。
- iOSの各種設定
- Androidの各種設定
- Revenuecatでの設定
- Flutterアプリ内でのコード実装
今回は「3.Revenuecatでの設定」編です。
それぞれの記事はこちら
Revenuecatでの設定
revenuecatのコンソールで、各種設定をしていきます。
まずはユーザー登録をして、コンソールを開きます。
やることとしては、大まかに以下となります。
- Projectを作る
- Projectの中にiosアプリを登録する
- Projectの中にAndoroidアプリを登録する
- Productsの登録
- Offeringsの登録
- Entitlementsの登録
Projectを作る
コンソールの上部の+ボタンを押して、プロジェクトを設定します。
Projectの中にiosアプリを登録する
Appsの右上の「New」からiosを登録します。
各項目を入力していきます。
- App name入力
- App Bundle ID入力
- App Store Connect App-Specific Shared Secret入力(AppStoreConnectで作成した、共有シークレットの文字列です)
- In-App Purchase Key Configurationのアップロード(AppStoreConnectで作成したp8キーファイルです)
- Apple Small Business Program(ここには開始日を入れます)
*通常、利益の30%をAppleに持っていかれますが、このプログラムに登録しておくと15%になるのでぜひ登録しましょう。
https://developer.apple.com/app-store/small-business-program/
私の場合は、こんな感じになっています。
なお、下部にある「Public API Key」は後ほど、Flutterでの実装で使用します。
Projectの中にAndroidアプリを登録する
先ほどと同じ要領で、Andorioidの登録です。
- App nameを入力
- Google Play package を入力(com.などで始まる、アンドロイドアプリのパッケージ名です)
- サービスアカウントファイルをアップロード(Google Cloud Platform でダウンロードしてきたファイルです)
入力したら、「SAVE CHANGES」を押して一旦保存します。
- SDK Support in Offering Setup ここは、標準のSDK v6+ and backwards compatible
のままでOK - Google Developer Notifications では、「CONNECT TO GOOGLE」ボタンを押してPlayStoreConsoleと接続させます
ここでも、下の方に「Public API Key」があります。
こちらも後ほど、Flutterでの実装で使用します。
私の場合は、こんな感じになっています。
Revenuecat独特の考え方
Revenuecatでは、商品を登録する際に前提となる考え方があるので、それをまずはご紹介します。
- Products
- packages
- Offerings
- Entitlements
この3つです。
Products
Productsは、アイテムそのものです。
今回で言えば、iosと、Androidの、「サブスク商品」がそれに該当します。
Packages、Offerings
Offeringsは、Productsを入れる箱のようなものと理解しています。
後ほどご紹介しますが、ProductsをPackagesの中に入れ、さらにOfferingsの中に、入れてユーザーに提供します。マトリョーシカみたいになっています。
Revenuecat公式ドキュメントにある図がこれです。
- Entitlements
こちらは上記2つとは毛色が異なり、「アイテムの保有状況(アイテムが購入済みで、アクティブになっているかどうか)」を確認するための設定項目です。
アプリ内でサブスクを買った人とそれ以外で機能を分けたい場合などに使います。
例えば、アプリからRevenuecatにサブスクのEntitlementsがアクティブかどうかを確認して、レスポンス(true,false)を返してくれます。
Productsの登録
ダッシュボードの「Products」から追加していきます。
そうすると、「Identifier」を登録することができます。
AppStoreConnectで設定した製品IDを登録して、「CREATE PRODUCT」ボタンを押します。
AppStoreConnectで設定した製品IDは以下の部分です。
Androidの方も同様に登録していきます。
Androidの登録画面では、「Subscription」と「One time purchase」と項目がラジオボタンで分かれていますが、今回は「Subscription」に登録をします。
- Subscription
- Base plan Id
上記2点を入力します。
GooglePlayConsoleの以下の部分を入力します。
Offeringの登録
Productsの登録と同様に、Offeringの登録をします。
そうすると、「Identifier」「Description」を入力するように求められます。
Flutterのアプリ側からOfferingを呼び出すときに使う名前です。私の場合は、「Monthly_subscription」という名前にしましたが、サブスクアイテムが複数ある場合はもう少し具体的な名前でもいいかもしれません。
*なお、「Identifier」は後で変えらえません
このまま「ADD」でOfferingを作成します。
そうすると、以下のように追加されていると思いますので、赤枠をクリックします。
そして、以下の画面でPackageを登録します。
「Identifier」で今回登録するアイテムの期間を選択します。年間だったら「Annual」、月間だったら「Monthly」。もしサブスクじゃなくて、一回買い切りの商品販売だったら、「Lifetime」になります。
さらに、このPackageの中に、先ほど設定したProductを入れます。赤枠をクリック。
「Attach」でアイテムを登録します。
Attach products to packageの画面で、先ほど登録したProductが選択できると思うので、選択して登録します。
Entitlementsの登録
Product,Offerings同様、登録します。
- Identifier (Flutterアプリ側から呼び出す名前です)
- Description
上記2点を入力して「ADD」。
赤枠をクリック。
「Attach」で、登録したProductが選択できますので、ios、Android共に選択して登録を完了します。
Discussion