Google Playアプリに課金を入れたものの、RevenueCatの設定方法がよくわからない、商品が「Could not check」のまま緑にならない──。ネットに情報が少ないこの詰まりを、Google Cloud → Play Console → RevenueCat の3点連携で完全に解決する手順をまとめました。さらに、緑(Published)になっても購入ボタンが動かない「もう一つのひもづけ」まで踏み込みます。
「Could not check」をPublished(緑)に変える4ステップの完全手順。API有効化で迷うポイント、付与する権限の取捨選択、Illegal parameters エラーの原因まで、つまずく場所を全部つぶします。そして緑になっても買えない時のOfferingひもづけと、PRODUCT_NOT_FOUND / BILLING_UNAVAILABLE の対処まで。
「Could not check」はエラーではなく、権限がまだつながっていないだけ。やることを先に並べておきます。上から順にこなせば必ず緑になります。
この状態でもクローズドテストは進められます。ただしリリース前には必ず緑(Published)にしておく必要があります。後回しにすると本番直前で焦るので、テスト段階で片付けておくのが吉。
解決の本質はシンプルで、3つのサービスをつなぐ配線作業です。どこか1本でも欠けると「Could not check」が消えません。まず全体像を頭に入れてから手を動かすと迷いません。
Google Cloud Console
↓ APIを2つ有効化 / サービスアカウント発行
Google Play Console
↓ そのサービスアカウントに権限を付与
RevenueCat
↓ サービスアカウントのJSONを登録
→ Google Playの商品情報を取得できるようになる
Play Consoleと同じGoogleアカウントでログインして作業します。
左メニューの「APIとサービス」→「ライブラリ」を開き、次の2つを検索して有効化します。
検索欄に「Android Developer」と入力すると見つかります。クリックして「有効にする」。
検索欄に「Pub/Sub」と入力すると複数出てきます。選ぶのは Cloud Pub/Sub API(説明文が "reliable, many-to-many, asynchronous messaging" のもの)。「Pub/Sub Lite API」や「Subscribe with Google」ではありません。
左メニュー「IAMと管理」→「サービスアカウント」を開きます。
revenuecat-play)→「作成して続行」迷いやすいポイント。ここでロールや権限の付与を求められますが、何も設定せずに進んで構いません。RevenueCatに必要な権限は、次のPlay Console側で付けます。ダウンロードしたJSONは後で使うので大切に保管してください。
Google Play Console を開き、左メニュー「ユーザーと権限」→右上「新しいユーザーを招待」へ。
メールアドレス欄に、手順2で作ったサービスアカウントのメールアドレスを入力します。形式は xxxxx@プロジェクトID.iam.gserviceaccount.com。ダウンロードしたJSONをメモ帳で開くと client_email フィールドに書いてあります。
「アプリを選択」で対象アプリを選び、付与する権限は次の3つだけにチェックします。
権限の一覧は項目が多くて迷いますが、RevenueCatに必要なのは上の3つだけ。それ以外はチェック不要です。最後に「ユーザーを招待」をクリック。
RevenueCatダッシュボード(app.revenuecat.com)を開きます。
よくあるエラー。Illegal parameters service_account_key_details が出たら、手順1のAPI有効化が完了していない可能性大。特に Cloud Pub/Sub API が有効になっているか確認してから、もう一度Saveを試してください。
ここが一番見落とされる罠です。Store Statusが緑(Published)になっても、それだけでは購入ボタンは動きません。「商品とOfferingのひもづけ」というもう一段の配線が要ります。
アプリ側でこんなエラーが出ていたら、まさにこれ。
// getOfferings が空で返る
ConfigurationError: there are no Play Store products
registered in the RevenueCat dashboard for your offerings.
JSON連携(=Store Status緑)は、RevenueCatがPlayの商品を読める状態にしただけ。購入を動かすには、その商品を Offering の中に置く必要があります。緑=ゴールではなく、ここからがもう一歩。
no_ads)に商品を紐付ける商品ページの "Associated Offerings" が空なら黄信号。Product詳細を開いて Associated Offerings に何も無ければ、まだどの Offering にも入っていない=購入は動きません。Offeringのパッケージで商品を選び直してください。
| 症状 | 原因 | 対処 |
|---|---|---|
| PRODUCT_NOT_FOUND productType='subs' | 一回限りの商品をサブスクとして照会する型ミスマッチ。古い設定が端末にキャッシュされていることも | RevenueCatの商品タイプを確認(Non-consumable)。端末はアプリのデータ消去か再インストールで設定を取り直す |
| BILLING_ UNAVAILABLE | エミュレータ(Playストア無し)や adb / Android Studio から直接入れた版は課金不可 | 実機+内部テストのリンクからPlayストア経由でインストール。ライセンステスター登録も必須 |
| ITEM_ALREADY _OWNED | 非消費型を再購入しようとした(=もう所有している正常状態) | エラー扱いせず復元処理へ。restorePurchases で権利を戻す |
テストの鉄則。課金はエミュレータでは検証できません。「実機 + Playストア経由インストール + ライセンステスター登録」の3点が揃って、初めてテストカードで購入フローが回ります。
RevenueCatの「Product catalog」→「Products」で対象商品を開き、Store Statusが ● Published(緑) になっていればJSON連携は完了。あとは前章のとおり商品をOfferingに入れて、実機でテストすれば購入が動きます。
| 手順 | 場所 | やること |
|---|---|---|
| 1 | Google Cloud Console | Android Developer API と Cloud Pub/Sub API を有効化 |
| 2 | Google Cloud Console | サービスアカウント作成・JSONキーをダウンロード |
| 3 | Google Play Console | サービスアカウントを招待・3つの権限を付与 |
| 4 | RevenueCat | JSONをアップロードして保存 |
「Could not check」や「緑なのに購入できない」で詰まっている方の参考になれば幸いです。JSON連携もOfferingのひもづけも日本語の情報がほとんど出てこなかったので、同じ場所で止まった人がここで抜けられますように。