アナリティクス連携
Adaptyは、Amplitude、Mixpanel、AppMetricaなどのアナリティクスサービスに、すべてのサブスクリプションイベントを送信します。webhook連携を使ってサーバーにイベントを送ることも可能です。イベントの送信はすべてAdaptyが代わりに行うので、Adapty ダッシュボードで連携を設定するだけで大丈夫です。
Adaptyは以下のサードパーティアナリティクスサービスとの連携をサポートしています:
お使いのアナリティクスプロバイダーが見つかりませんか?
ぜひお知らせください!機能リクエストを作成していただければ、追加を検討します。
イベントプロパティ
WebhookイベントはJSON形式で送信されます。すべてのイベントは同じ構造に従いますが、フィールドはイベントの種類、ストア、設定内容によって異なります。
| プロパティ | 型 | 説明 |
|---|---|---|
| profile_id | uuid | AdaptyのユーザーID。 |
| currency | str | ローカル通貨(デフォルトはUSD)。 |
| price_usd | float | Apple/Googleの手数料控除前のプロダクト価格。売上。 |
| proceeds_usd | float | Apple/Googleの手数料控除後のプロダクト価格。純売上。 |
| net_revenue_usd | float | USD建ての純収益(Apple/Googleの手数料と税金控除後の収益)。空の場合があります。 |
| price_local | float | ローカル通貨でのApple/Googleの手数料控除前のプロダクト価格。売上。 |
| proceeds_local | float | ローカル通貨でのApple/Googleの手数料控除後のプロダクト価格。純売上。 |
| transaction_id | str | 購入や更新などのトランザクションの一意の識別子。 |
| original_transaction_id | str | 最初の購入のトランザクション識別子。 |
| purchase_date | ISO 8601 date | プロダクト購入の日時。 |
| original_purchase_date | ISO 8601 date | 最初の購入の日時。 |
| environment | str | Sandbox または Production。 |
| vendor_product_id | str | Apple App Store、Google Play Store、またはStripeのプロダクトID。 |
| base_plan_id | str | Google Play StoreのベースプランID、またはStripeの価格ID。 |
| event_datetime | ISO 8601 date | イベントの日時。 |
| store | str | app_store または play_store。 |
| trial_duration | str | トライアル期間の日数。” days”形式で送信されます(例:「7 days」)。 |
| cancellation_reason | str | ユーザーがサブスクリプションをキャンセルした理由。 以下のいずれかです。 iOS & Android voluntarily_cancelled, billing_error, refund iOS price_increase, product_was_not_available, unknown Android new_subscription_replace, cancelled_by_developer |
| subscription_expires_at | ISO 8601 date | サブスクリプションの有効期限。通常は将来の日付。 |
| consecutive_payments | int | ユーザーが中断なくサブスクライブしている期間数。現在の期間を含む。 |
| rate_after_first_year | bool | 1年間の継続更新後に手数料率が引き下げられる(通常15%)条件を満たしているかを示すブール値。手数料率はプログラムの適格性や国によって異なります。詳細はストア手数料と税金をご覧ください。 |
| promotional_offer_id | str | Adapty ダッシュボードのプロダクトセクションに記載されたプロモーションオファーのID。 |
| store_offer_category | str | introductory または promotional。 |
| store_offer_discount_type | str | free_trial、pay_as_you_go、または pay_up_front。 |
| paywall_name | str | トランザクションが発生したペイウォールの名前。 |
| paywall_revision | int | トランザクションが発生したペイウォールのリビジョン。値は1に設定されます。 |
| developer_id | str | トランザクションが発生したプレースメントのデベロッパー(SDK)ID。 |
| ab_test_name | str | トランザクションが発生したA/Bテストの名前。 |
| ab_test_revision | int | トランザクションが発生したA/Bテストのリビジョン。値は1に設定されます。 |
| cohort_name | str | プロファイルが属するオーディエンスの名前。 |
| profile_event_id | uuid | 重複排除に使用できる一意のイベントID。 |
| store_country | str | ストアから送信された国情報。 |
| profile_ip_address | str | プロファイルのIPアドレス(IPv4またはIPv6。利用可能な場合はIPv4が優先)。デバイスのIPが変わるたびに更新されます。 |
| profile_country | str | プロファイルのIPをもとにAdaptyが判定した国。 |
| profile_total_revenue_usd | float | プロファイルの累計売上(返金分を含む)。 |
| variation_id | uuid | 購入が行われたペイウォールの一意のID。 |
| access_level_id | str | 有料アクセスレベルID。 |
| is_active | bool | プロファイルに対して有料アクセスレベルが有効かどうかを示すブール値。 |
| will_renew | bool | 有料アクセスレベルが更新されるかどうかを示すブール値。 |
| is_refund | bool | トランザクションが返金されているかどうかを示すブール値。 |
| is_lifetime | bool | 有料アクセスレベルが永続アクセスかどうかを示すブール値。 |
| is_in_grace_period | bool | プロファイルがグレース期間中かどうかを示すブール値。 |
| starts_at | ISO 8601 date | ユーザーの有料アクセスレベルが開始する日時。 |
| renewed_at | ISO 8601 date | 有料アクセスが更新される日時。 |
| expires_at | ISO 8601 date | 有料アクセスが失効する日時。 |
| activated_at | ISO 8601 date | 有料アクセスが有効化された日時。 |
| billing_issue_detected_at | ISO 8601 date | 請求エラーが検出された日時。 |
| profile_has_access_level | Bool | プロファイルにアクティブなアクセスレベルがあるかどうかを示すブール値(Webhookのみ)。 |
各イベントには以下のプロパティが含まれます:
transaction_id, original_transaction_id, purchase_date, original_purchase_date, environment, vendor_product_id, event_datetime, store
また、一部のイベントには追加プロパティがあります。subscription_refunded と non_subscription_purchase_refunded イベントでは、price_usd と proceeds_usd の値を追加プロパティとして必ず指定する必要があります。
| イベント名 | プロパティ |
|---|---|
| subscription_initial_purchase | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_renewed | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_cancelled | cancellation_reason, trial_duration |
| trial_started | subscription_expires_at, trial_duration |
| trial_converted | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| trial_cancelled | cancellation_reason, trial_duration |
| non_subscription_purchase | price_usd, proceeds_usd |
| billing_issue_detected | subscription_expires_at, trial_duration |
| entered_grace_period | subscription_expires_at, trial_duration |
イベント例
{
"price_usd": 9.99,
"proceeds_usd": 6.99,
"transaction_id": "1000000628581600",
"original_transaction_id": "1000000628581600",
"purchase_date": "2020-02-18T18:40:22.000000+0000",
"original_purchase_date": "2020-02-18T18:40:22.000000+0000",
"environment": "Sandbox",
"vendor_product_id": "premium",
"event_datetime": "2020-02-18T18:40:22.000000+0000",
"store": "app_store"
}
Adaptyはサーバーおよびサードパーティのアナリティクスシステムにイベントを送信します。
profile_ip_address プロパティは現在のデバイスIPと同期されます。AdaptyサーバーがSDKから情報を受信するたびに、記録済みのIPと異なる場合はIPが更新されます。
プロファイルの識別子の設定
- 選択したアナリティクス向けにプロファイルの識別子を設定するには、 アプリでユーザー属性を設定する手順 iOS、Android、React Native、Flutter、Unity をご参照ください。
重複を避けるために
デバイスとサーバーの両方からサブスクリプションイベントを送信すると重複が発生するため、どちらか一方からのみ送信するようにしてください。
特定のユーザーに対して外部アナリティクスを無効化する
特定のユーザーへのアナリティクスイベント送信を停止したい場合があります。これは、アプリにアナリティクスサービスのオプトアウト機能を設けている場合などに便利です。
特定ユーザーの外部アナリティクスを無効化するには、updateProfile() メソッドを使用します。AdaptyProfileParameters.Builder オブジェクトを作成し、対応する値を設定してください。
外部アナリティクスがブロックされると、Adaptyは対象ユーザーに関するイベントをいずれの連携サービスにも送信しなくなります。アプリのすべてのユーザーに対して連携を無効化したい場合は、Adapty ダッシュボードで該当の連携をオフにしてください。