Amplitude
Amplitude は強力なモバイル解析サービスです。Adaptyと組み合わせることで、イベントをAmplitudeに簡単に送信し、ユーザーの行動を把握して、的確な意思決定を行えます。
Adaptyは、ストアからのサブスクリプションイベントを一箇所で追跡できる完全なデータセットを提供し、Amplitudeアカウントに送信します。これにより、Amplitude上でユーザーの行動と課金履歴を紐付け、プロダクトの意思決定に役立てることができます。
Amplitude 連携のセットアップ方法
Adaptyでは、AppleまたはStripeサンドボックス環境、もしくはGoogleテストアカウントからの本番イベントとテストイベントに対して、それぞれ個別のフローを設定できます。
- 本番イベントには、AmplitudeダッシュボードのプラットフォームごとのAPIキー(iOS、Android、Stripe各固有のキー)を Production フィールドに入力してください。
- テストイベントには、必要に応じて Sandbox フィールドを使用してください。
Amplitude連携をセットアップするには:
- Adapty ダッシュボードで Integrations -> Amplitude を開きます。
-
Amplitude integration をオンに切り替えて有効化します。
-
連携フィールドに入力します:
フィールド 説明 Amplitude iOS/ Android/ Stripe API key iOS / Android / Stripe用のAmplitude API Key をAdaptyに入力します。Amplitudeの Project settings から確認できます。詳しくは Amplitude ドキュメント をご覧ください。まず Sandbox キーでテストを行い、成功したら Production キーに切り替えてください。
-
さらに詳細なカスタマイズのためのオプション設定:
パラメータ 説明 How the revenue data should be sent 総収益を送るか、税金と手数料控除後の収益を送るかを選択します。詳細はストア手数料と税金をご覧ください。 Exclude historical events Adapty SDK インストール以前のイベントを除外するか選択します。データの重複を防ぐことができます。たとえば、ユーザーが1月10日にサブスクリプションを開始し、3月6日にAdapty SDKをインストールした場合、Adaptyは3月6日以降のイベントのみを送信します。 Send User Attributes 言語設定などのユーザー固有の属性を送信するにはこのオプションを選択します。 Always populate user_id Adaptyは自動的に device_idをamplitudeDeviceIdとして送信します。user_idについては、この設定で動作を定義します:- ON:
amplitudeUserIdまたはcustomer_user_idが利用できない場合、Adaptyのprofile_idを送信します。 - OFF:いずれのIDも利用できない場合、
user_idを空のままにします。
- ON:
-
受信したいイベントを選択し、イベント名をマッピングします。
-
Save をクリックして変更を保存します。
Save をクリックすると、AdaptyはAmplitudeへのイベント送信を開始します。
イベントに加えて、AdaptyはサブスクリプションステータスとサブスクリプションのプロダクトIDをAmplitudeユーザープロパティに送信します。
イベントとタグ
認証情報の下に、AdaptyからAmplitudeに送信できるイベントが3つのグループに分かれて表示されています。必要なものをオンにするだけで使えます。Adaptyが提供するイベントの全リストはこちらで確認できます。
Adaptyが提供するデフォルトのイベント名を使用することをお勧めします。ただし、必要に応じてイベント名を変更することも可能です。Adaptyはサーバー間連携を使ってAmplitudeにサブスクリプションイベントを送信するため、Amplitudeダッシュボードですべてのサブスクリプションイベントを確認できます。
SDK の設定
setIntegrationIdentifier() メソッドを使用して amplitude_device_id パラメータを設定します。これは連携のセットアップに必須です。
ユーザー登録がある場合は、amplitude_user_id も合わせて渡すことができます。
サードパーティSDKはユーザーIDを非同期で生成します。Adapty.activate() の実行時にIDがまだ準備できていない場合があります。Customer User ID がこれらのSDKのいずれかから取得される場合は、IDなしで Adapty.activate() を呼び出してください。IDが取得できたら、setIntegrationIdentifier() を呼び出し、次にCUIDで identify() を呼び出してください。
Amplitude イベント構造
AdaptyはHTTP API v2を介してAmplitudeにイベントを送信します。各イベントの構造は次のとおりです:
{
"api_key": "your_amplitude_api_key",
"events": [
{
"partner_id": "adapty",
"event_type": "subscription_renewed",
"time": 1709294400000,
"insert_id": "123e4567-e89b-12d3-a456-426614174000",
"user_id": "user_12345",
"device_id": "device_12345",
"platform": "iOS",
"os_name": "iOS",
"productId": "yearly.premium.6999",
"revenue": 9.99,
"event_properties": {
"vendor_product_id": "yearly.premium.6999",
"original_transaction_id": "GPA.3383...",
"currency": "USD",
"environment": "Production",
"store": "app_store"
},
"user_properties": {
"subscription_state": "subscribed",
"subscription_product": "yearly.premium.6999"
}
}
]
}
各フィールドの説明:
| パラメータ | 型 | 説明 |
|---|---|---|
api_key | String | Amplitude API キー。 |
events | Array | イベントオブジェクトのリスト(Adaptyは1件ずつ送信します)。 |
events[].partner_id | String | 常に “adapty”。 |
events[].event_type | String | イベント名(Adaptyイベントからマッピングされたもの)。 |
events[].time | Long | イベントのタイムスタンプ(ミリ秒)。 |
events[].insert_id | String | 一意のイベントID(UUID)。 |
events[].user_id | String | Amplitude ユーザーIDまたはカスタマーユーザーID。 |
events[].device_id | String | Amplitude デバイスID。 |
events[].platform | String | プラットフォーム(例:「iOS」、「Android」)。 |
events[].os_name | String | OS名。 |
events[].productId | String | ストアのプロダクトID。 |
events[].revenue | Float | 収益額。 |
events[].event_properties | Object | 詳細なイベント属性(利用可能なイベントフィールドをすべて含む)。 |
events[].user_properties | Object | サブスクリプションステータスなどのユーザー属性。 |