RevGlanceドキュメント

Google Play

Play Console のレポートと Play Developer API を読み取るサービスアカウントで Google Play を接続します。

RevGlance は Play Console の Cloud Storage バケットにある月次の sales レポートと earnings レポートを読み込み、請求期間と返金、さらにリアルタイム通知があればトライアルと解約について、Play Developer API に問い合わせます。

接続

  1. Google Cloud のプロジェクトで service account を作成し、JSON キーを追加してダウンロードします。そのプロジェクトで Google Play Android Developer API を有効にします。
  2. Play Console で Users and permissions を開き、サービスアカウントのメールアドレスを招待して、アプリに対する View financial data 権限を付与します。
  3. Download reports › Financial からレポートのバケットをコピーします。Cloud Storage URI の pubsite_prod_rev_… の部分です。
  4. バケット、アプリのパッケージ名(com.example.app)、JSON キー全体を入力し、Google Playを接続を選びます。新しい招待がレポートに反映されるまで最大 1 日かかることがあります。

フォームで入力する項目

項目形式の例
レポートバケットpubsite_prod_rev_01234567890987654321
パッケージ名com.example.app
サービスアカウントJSON暗号化して保存{ "type": "service_account", … }

サービスアカウントは、Cloud Storage(devstorage.read_only)と Android Publisher API への読み取り専用アクセスでサインインします。

Webhook を追加する

リアルタイム通知がないと、トライアルは見えず、解約は更新が 3 日遅れた時点でようやく表示されます。通知があれば、RevGlance は各サブスクリプションの購入トークンを把握し、Play にその現在の状態を問い合わせます。

  1. RevGlance で 設定 › ソース を開き、Google Play ソースのメニューを開いて Webhook を選びます。長いランダムなシークレットを署名シークレットに保存します。
  2. Google Cloud で Pub/Sub トピックを作成し、Play Console の Monetization setup ページの説明に従って、Google Play がそのトピックにパブリッシュできるようにします。
  3. トピックに push サブスクリプションを追加します。エンドポイントは、Webhook URL の末尾に ?token= とシークレットを付けたものです。
  4. Play Console で Monetization setup を開き、トピックを入力してテスト通知を送信します。RevGlance はテスト通知やほかのアプリ宛ての通知を受け取り確認しますが、処理はしません。

想定しておくこと

  • レポートは遅れて届きます。 Google は販売の 3〜7 日後にレポートを掲載します。先に sales が届き、後から earnings が Google から実際に支払われた金額で置き換えます。
  • 顧客は匿名です。 Play は購入者の名前を提供しません。1 つのサブスクリプションの注文は共通の ID ルート(GPA.1234…)を持ち、それが 1 人の匿名顧客になります。単発の購入には顧客がありません。
  • API 経由の返金は 30 日前までさかのぼります。それより古い返金は earnings レポートで届きます。

Google Play の集計方法

  • Googleのレポートは3~7日遅れで公開されます。まず売上が届き、後でGoogleの手数料差し引き後の実際の支払額で収益に置き換わります。請求は税抜きで計上します。
  • 返金は一部返金も含め、各行を保持します。1件の注文に対する2回の一部返金が2つの月次レポートにまたがると重複し、1件が漏れることがあります。Googleはレポートで返金をマイナスで記載するか明示していないため、返金額として読み取ります。
  • Play APIによる返金は過去30日分のみ取得できます。それより古いものは収益レポートで届きます。
  • リアルタイム通知がない場合、解約は更新の3日遅れとしてのみ表示され、レポートがその日をカバーした時点で計上されます。
  • テスト購入は除外されます。保留中のサブスクリプションは数え続け、一時停止中のものは再開するまで解約として数えます。
  • MRRは最新の注文の税引き前の額です。お試しオファーはオファー価格で計上し、その後の通常価格は拡大として表示されます。
  • 失敗した請求は報告されないため、その数値は0のままです。