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

RevenueCatのJSONエラーを直す
──Google Play連携を再確認

illegal parameters service_account_key_details や「Could not check」で止まったときに、Google Cloud → Play Console → RevenueCatの順で確認する手順です。2026年8月に現行公式ドキュメントと照合し、必要なAPI・Cloud側ロール・Play Console権限を更新しました。Publishedになっても購入できないOfferingの配線まで扱います。

この記事で手に入るもの

「Could not check」をPublished(緑)に変える4ステップの完全手順。API有効化で迷うポイント、付与する権限の取捨選択、Illegal parameters エラーの原因まで、つまずく場所を全部つぶします。そして緑になっても買えない時のOfferingひもづけと、PRODUCT_NOT_FOUND / BILLING_UNAVAILABLE の対処まで。

QUICK FIX — SEARCHED ERROR

illegal parameters service_account_key_details の最短確認

Quick answer: Enable the Google Play Android Developer API, Google Play Developer Reporting API, and Cloud Pub/Sub API in the same Google Cloud project. Grant Pub/Sub Editor and Monitoring Viewer to the service account, verify the three Play Console permissions, then regenerate and re-upload the JSON key. RevenueCat notes that credential validation may take up to 36 hours.

  1. 同じCloudプロジェクトで3 APIが有効か確認する。
  2. サービスアカウントへPub/Sub EditorとMonitoring Viewerを付ける。
  3. Play Consoleで閲覧・財務・注文/定期購入の3権限を確認する。
  4. 変更後のJSONキーを再生成・再アップロードし、最大36時間の反映待ちを切り分ける。

2026-08-01確認: RevenueCat公式 Google Play service credentials。エラー文言と解決順は本記事の実運用記録、現在の必須設定と反映時間は公式手順を基準にしています。

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を3つ有効化 / サービスアカウント発行
Google Play Console
  ↓ そのサービスアカウントに権限を付与
RevenueCat
  ↓ サービスアカウントのJSONを登録
  → Google Playの商品情報を取得できるようになる

03 — 手順1 / 2

Google Cloud Console で土台をつくる

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

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

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

Google Play Android Developer API

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

Google Play Developer Reporting API

現行のRevenueCat公式チェックリストでAndroid Developer APIと併せて有効化対象になっています。同じCloudプロジェクトで「Google Play Developer Reporting API」を有効にします。

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と管理」→「サービスアカウント」を開きます。

2026年8月の訂正。旧手順ではCloud側ロールを省略できるとしていましたが、現行のRevenueCat公式手順はPub/Sub Editor(またはAdmin)とMonitoring Viewerを指定しています。Play Console側の3権限とは別なので、両方を設定します。ロールを変更した場合は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)を開きます。

資格情報は作成直後に有効にならず、RevenueCat公式では最大36時間かかる場合があります。すぐに再作成を繰り返す前に、API・ロール・権限・JSONの一致を確認して反映待ちを切り分けます。

今回の実運用で詰まった箇所。illegal parameters service_account_key_details が出たときは、同じCloudプロジェクトの3 API、Cloud側2ロール、Play Console側3権限、アップロードしたJSONのproject_id/client_emailを順に確認します。設定直後はRevenueCat公式上、検証に最大36時間かかるため、「設定ミス」と「反映待ち」を分けて判断します。


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 / Developer Reporting / Cloud Pub/Sub の3 APIを有効化
2Google Cloud ConsoleサービスアカウントへPub/Sub Editor・Monitoring Viewerを付け、JSONキーを取得
3Google Play Consoleサービスアカウントを招待・3つの権限を付与
4RevenueCatJSONをアップロードして保存

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

この記録の作り方

運営・検証: meclGG(FLOW)

個人開発とAI運用の実作業で残った画面・エラー・進行ログを基に構成しています。AIは調査、構成、機械検品に利用し、結果・限界・公開内容は運営者が確認しています。

初回公開: 2026-06-22 / 検証更新: 2026-08-01

Google Play公開までの実録

素材作成、課金連携、12人×14日のクローズドテストを、実際に詰まった順で確認できます。