← AIバイブコーディングTips 一覧へ Google Play / In-App Billing

Google PlayアプリにRevenueCatを連携する手順
──「Could not check」を解決する

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 の対処まで。

01 — やることロードマップ

緑にするまでに、やることはこれだけ

「Could not check」はエラーではなく、権限がまだつながっていないだけ。やることを先に並べておきます。上から順にこなせば必ず緑になります。

1
Google Cloud で API を2つ有効化Android Developer API と Cloud Pub/Sub API
2
サービスアカウントを作成し JSON キーを取得RevenueCat と Google Play をつなぐ鍵になる
3
Play Console で権限を付与そのサービスアカウントに3つの権限を渡す
4
RevenueCat に JSON を登録アップロードして保存すれば連携完了

この状態でもクローズドテストは進められます。ただしリリース前には必ず緑(Published)にしておく必要があります。後回しにすると本番直前で焦るので、テスト段階で片付けておくのが吉。


02 — 全体像

3つのサービスを1本の線でつなぐ

解決の本質はシンプルで、3つのサービスをつなぐ配線作業です。どこか1本でも欠けると「Could not check」が消えません。まず全体像を頭に入れてから手を動かすと迷いません。

Google Cloud Console
  ↓ APIを2つ有効化 / サービスアカウント発行
Google Play Console
  ↓ そのサービスアカウントに権限を付与
RevenueCat
  ↓ サービスアカウントのJSONを登録
  → Google Playの商品情報を取得できるようになる

03 — 手順1 / 2

Google Cloud Console で土台をつくる

Play Consoleと同じGoogleアカウントでログインして作業します。

手順1:APIを2つ有効化する

左メニューの「APIとサービス」→「ライブラリ」を開き、次の2つを検索して有効化します。

Google Play Android Developer API

検索欄に「Android Developer」と入力すると見つかります。クリックして「有効にする」。

Cloud Pub/Sub API

検索欄に「Pub/Sub」と入力すると複数出てきます。選ぶのは Cloud Pub/Sub API(説明文が "reliable, many-to-many, asynchronous messaging" のもの)。「Pub/Sub Lite API」や「Subscribe with Google」ではありません。

手順2:サービスアカウントを作ってJSONキーを取る

左メニュー「IAMと管理」→「サービスアカウント」を開きます。

迷いやすいポイント。ここでロールや権限の付与を求められますが、何も設定せずに進んで構いません。RevenueCatに必要な権限は、次のPlay Console側で付けます。ダウンロードしたJSONは後で使うので大切に保管してください。


04 — 手順3

Play Console で権限を付与する

Google Play Console を開き、左メニュー「ユーザーと権限」→右上「新しいユーザーを招待」へ。

メールアドレス欄に、手順2で作ったサービスアカウントのメールアドレスを入力します。形式は xxxxx@プロジェクトID.iam.gserviceaccount.com。ダウンロードしたJSONをメモ帳で開くと client_email フィールドに書いてあります。

「アプリを選択」で対象アプリを選び、付与する権限は次の3つだけにチェックします。

アプリ情報の閲覧(読み取り専用)商品情報を読むために必要
売上データの表示課金の状態を取得するために必要
注文と定期購入の管理購入・サブスクの検証に必要

権限の一覧は項目が多くて迷いますが、RevenueCatに必要なのは上の3つだけ。それ以外はチェック不要です。最後に「ユーザーを招待」をクリック。


05 — 手順4

RevenueCat に JSON を登録する

RevenueCatダッシュボード(app.revenuecat.com)を開きます。

よくあるエラー。Illegal parameters service_account_key_details が出たら、手順1のAPI有効化が完了していない可能性大。特に Cloud Pub/Sub API が有効になっているか確認してから、もう一度Saveを試してください。


06 — 緑になっても買えない時

もう一つのひもづけ──Store Statusが緑でも購入は動かない

ここが一番見落とされる罠です。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 の中に置く必要があります。緑=ゴールではなく、ここからがもう一歩。

ひもづけの3段構え

1
Product を Entitlement に Attach「広告削除」などの権利(例:no_ads)に商品を紐付ける
2
Product を Offering の Package に入れるOfferings → default → Package の商品欄でPlay商品を選択。ここが「No product」のままだと offering が空になる
3
その Offering を Current にするSDKは current offering を見る。一覧で「Make Default」がグレー=すでにCurrent

商品ページの "Associated Offerings" が空なら黄信号。Product詳細を開いて Associated Offerings に何も無ければ、まだどの Offering にも入っていない=購入は動きません。Offeringのパッケージで商品を選び直してください。

それでも詰まる、3つの落とし穴

症状原因対処
PRODUCT_NOT_FOUND
productType='subs'
一回限りの商品をサブスクとして照会する型ミスマッチ。古い設定が端末にキャッシュされていることもRevenueCatの商品タイプを確認(Non-consumable)。端末はアプリのデータ消去か再インストールで設定を取り直す
BILLING_
UNAVAILABLE
エミュレータ(Playストア無し)や adb / Android Studio から直接入れた版は課金不可実機+内部テストのリンクからPlayストア経由でインストール。ライセンステスター登録も必須
ITEM_ALREADY
_OWNED
非消費型を再購入しようとした(=もう所有している正常状態)エラー扱いせず復元処理へ。restorePurchases で権利を戻す

テストの鉄則。課金はエミュレータでは検証できません。「実機 + Playストア経由インストール + ライセンステスター登録」の3点が揃って、初めてテストカードで購入フローが回ります。


07 — 確認とまとめ

緑は通過点。Offeringにつないで、実機でテストまで

RevenueCatの「Product catalog」→「Products」で対象商品を開き、Store Statusが ● Published(緑) になっていればJSON連携は完了。あとは前章のとおり商品をOfferingに入れて、実機でテストすれば購入が動きます。

手順場所やること
1Google Cloud ConsoleAndroid Developer API と Cloud Pub/Sub API を有効化
2Google Cloud Consoleサービスアカウント作成・JSONキーをダウンロード
3Google Play Consoleサービスアカウントを招待・3つの権限を付与
4RevenueCatJSONをアップロードして保存

「Could not check」や「緑なのに購入できない」で詰まっている方の参考になれば幸いです。JSON連携もOfferingのひもづけも日本語の情報がほとんど出てこなかったので、同じ場所で止まった人がここで抜けられますように。