Google Play ConsoleでリアルタイムデベロッパーNotification(RTDN)を有効にする
Google Playは、リアルタイムデベロッパーNotificationを通じて、更新・キャンセル・返金・支払い問題をAdaptyに報告します。これらのイベントはアプリが閉じている間に発生するため、Adapty SDKでは検知できません。
始める前に
Google Play ストアの連携を設定する必要があります。Adapty はキーファイルからトピック名を生成するため、アップロードが完了するまでコピーするものはありません。
通知を有効にする
-
Adapty ダッシュボードの App settings > Android SDK を開き、Google Play RTDN topic name の下にあるトピック名をコピーします。これは
projects/で始まります。
-
Google Play Console を開き、アプリを選択して Monetize with Play > Monetization setup に移動します。
-
Google Play Billing セクションで、Enable real-time notifications チェックボックスをオンにします。
-
トピック名を Topic name に貼り付けます。
-
Save changes をクリックします。
接続を確認する
-
Monetization setup ページで、Topic name フィールドの下にある Send test notification ボタンをクリックします。
-
Adapty の App settings > Android SDK に戻ります。Adapty が通知を受信すると、Google Play RTDN topic name セクションのステータスタグが Active になります。
Noteテスト通知は接続の確認のみを行います。購入イベントは作成されないため、テスト後も Event Feed は空のままです。実際のトランザクションが発生した際にイベントが表示されます。
Google のイベントをそのまま転送する
Adapty は Google からの通知をデコードして独自のイベントに変換し、プロファイルやプロダクトと紐付け、収益情報も付加します。Google のオリジナルメッセージもそのまま受け取りたい場合は、App settings > Android SDK の URL for forwarding raw Google events to your webhook にエンドポイントを追加してください。
Adapty は、Google から受信したメッセージをそのまま Pub/Sub に投稿します。解析前の状態で、base64 エンコードされており、Google のフィールド名と数値通知タイプを使用し、Adapty プロファイルではなくトークンで購入を識別します。Google は、RTDN リファレンスにてフォーマットを説明しています。
RTDNのトラブルシューティング
トピック名が表示されていない
RTDNの設定はAdaptyからトピック名をコピーするところから始まります。トピック名が表示されていない場合は先に進めません。Play ConsoleのTopic nameは、Google PlayがイベントをどこへSendするかを知るための情報であり、そのトピック名はAdaptyからしか取得できません。
Adapty はキーファイルを保存すると、Cloud プロジェクトにトピックを作成します。有効な名前は projects/ で始まり、projects/your-project-id/topics/adapty-prod-3f7a1c2e-9b4d-4e8f-a1b2-c3d4e5f60718 のような形式です。作成に失敗した場合、セクションには名前の代わりに短いメッセージと Recreate Pub/Sub topic ボタンが表示され、何が問題だったかを確認できます。
| 表示内容 | 意味 | 対処方法 |
|---|---|---|
| To set the Google Play RTDN topic name first upload a valid service account key file above. | このアプリのキーファイルが Adapty に登録されていない | キーファイルをアップロードする |
| Enable Pub/Sub API | そのクラウドプロジェクトで Cloud Pub/Sub API が無効になっている | Adapty に表示されるリンクをクリックし、Recreate Pub/Sub topic をクリックする |
| Grant permissions | サービスアカウントにそのプロジェクトの Pub/Sub Admin ロールが付与されていない | IAM & Admin > IAM でサービスアカウントを編集し、Pub/Sub > Pub/Sub Admin を追加してから Recreate Pub/Sub topic をクリックする |
トピックが存在しない間は、Play Consoleに貼り付けるものがないため、Google PlayはイベントをAdaptyに送信せず、更新・キャンセル・返金の情報が記録されません。
Recreate Pub/Sub topic は、すでにアップロード済みのキーファイルを使って設定を再実行するため、再度アップロードする必要はありません。
トピックの再作成に失敗する
Google Play がトピックへパブリッシュするには権限が必要なため、Adapty は google-play-developer-notifications@system.gserviceaccount.com にその権限を付与します。このアカウントは Google に属するものであり、あなたの会社のものではありません。
多くの企業では、自社ドメインのアカウントにのみアクセスを許可するよう Google Cloud を設定しています。このような会社全体のルールは組織ポリシーと呼ばれており、そのうちの 2 つが外部アカウントへの権限付与を拒否するため、トピックが作成されません。
-
Google Cloud Console を開き、キーファイルの元となったプロジェクトを選択します。
-
IAM & Admin > Organization Policies に移動します。
-
Domain restricted contacts ポリシーを見つけ、その Actions メニューを開き、Edit policy をクリックします。
-
Override parent’s policy を選択し、Policy enforcement を Replace に設定して、Add a rule をクリックします。
-
Policy values で Allow All を選択し、Set policy をクリックします。
-
Domain restricted sharing ポリシーに対して同じ手順を繰り返します。
-
Adapty でトピックを再作成します。
トピックが作成されたら、両方のポリシーをすぐに Inherit parent’s policy に戻してください。Allow All の状態では、このプロジェクトはGoogleの通知サービスだけでなく、ドメイン外の任意のGoogleアカウントからのアクセス付与や共有を受け入れてしまいます。
次のステップ
アプリが使用する各フレームワーク向けに Adapty SDK をインストールしてください。インストールするまで、アプリはペイウォールを表示したり、購入情報を Adapty に報告したりすることができません。