WebとモバイルのサブスクリプションをSync Purchasesで同期する

ユーザーがウェブサイトでプロダクトを購入できる場合、モバイルアプリとのアクセスレベルを自動的に同期できます。

このガイドでは、Adapty の API と SDK を使ってその方法を説明します。

ユースケースの例

例えば、アプリでユーザーがモバイルとウェブの両方でフリーミアムプランにサインアップできるとします。ウェブサイト上で Stripe や Chargebee を使って Premium プランへのアップグレードを許可している場合、ユーザーがウェブでサブスクリプションを購入したら、再ログインや待機なしにモバイルアプリでも即座に Premium アクセスを利用できるようにしたいはずです。

それを Adapty で自動化できます。

ステップ 1. ユーザーを識別する

Adapty はプラットフォーム間でユーザーを識別するために customer_user_id を使用します。

この ID は一度だけ作成し、モバイル SDK とウェブバックエンドの両方に渡してください。

ウェブからのサインアップ

ユーザーがウェブサイトでサインアップした際、サーバーサイド API を使って Adapty にプロファイルを作成する必要があります。

メソッドのリファレンスはこちらをご覧ください。

curl --request POST \
  --url https://api.adapty.io/api/v2/server-side-api/profile/ \
  --header 'Accept: application/json' \
  --header 'Authorization: Api-Key YOUR_SECRET_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'adapty-customer-user-id: YOUR_CUSTOMER_USER_ID'

アプリからのサインアップ

ユーザーがアプリから初めてサインアップする場合、SDK のアクティベーション時に customer user ID を渡すか、サインアップ前に Adapty SDK をアクティベートしている場合は identify メソッドを使って新しいプロファイルを作成し、customer user ID を割り当てます。

SDK のアクティベーション後にユーザーを識別する場合、SDK はプロファイルなしでは動作できないため、まず匿名プロファイルが作成されます。その後、ユーザーを識別して新しい customer user ID を割り当てると、新しいプロファイルが作成されます。

この動作は完全に正常であり、分析の精度には影響しません。詳しくはこちらをご覧ください。

ステップ 2. API でサブスクリプションのステータスを確認する

ユーザーがウェブサイトにログインしたら、API を使って Adapty プロファイルを取得します。

アクティブなサブスクリプションがない場合は、ペイウォールを表示できます。

メソッドのリファレンスはこちらをご覧ください。

curl --request GET \
  --url https://api.adapty.io/api/v2/server-side-api/profile/ \
  --header 'Accept: application/json' \
  --header 'Authorization: Api-Key YOUR_SECRET_API_KEY' \
  --header 'adapty-customer-user-id: YOUR_USER_ID' \

ステップ 3. ウェブサイトにペイウォールを表示する

フリーミアムユーザー向けにウェブサイトでペイウォールを表示します。 決済プロバイダーは任意のものが使用できます(Stripe、Chargebee、LemonSqueezy など)。

ステップ 4. Adapty のサブスクリプションステータスを更新する

ウェブサイトでの支払いが完了したら、Adapty API を呼び出して、ユーザーが購入したプロダクトに応じてアクセスレベルを更新します。

メソッドのリファレンスはこちらをご覧ください。

curl --request POST \
  --url https://api.adapty.io/api/v2/server-side-api/purchase/profile/grant/access-level/ \
  --header 'Accept: application/json' \
  --header 'Authorization: Api-Key YOUR_SECRET_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'adapty-customer-user-id: YOUR_USER_ID' \
  --data '{
  "access_level_id": "YOUR_ACCESS_LEVEL"
}'

ステップ 5. アプリでステータスを同期する

ユーザーがモバイルアプリを開いたら、更新されたプロファイルを取得して有料機能を解放します。

プロファイルを手動で取得するか、自動で同期する必要があります。その後、プロファイルからアクセスレベルを取得します。

以下では、プロファイルを取得してそのステータスを確認する方法を示します。詳細はこちらをご覧ください。