Webhookイベントタイプとフィールド

Adaptyはサブスクリプションイベントに応じてWebhookを送信します。このセクションでは、イベントタイプと各Webhookに含まれるデータを説明します。

Webhookイベントタイプ

すべてのイベントタイプをWebhookに送信するか、一部のみを選択して送信できます。受信データの内容やビジネスロジックの構築方法については、イベントフローを参照してください。不要なイベントタイプは、Webhook連携の設定時に無効化できます。また、必要に応じてAdaptyのデフォルトイベントIDを独自のIDに置き換えることも可能です。

イベント名説明
subscription_startedトライアル期間なしで有料サブスクリプションを開始したとき(つまり即座に課金されたとき)にトリガーされます。
subscription_renewedサブスクリプションが更新され、ユーザーに課金されたときに発生します。このイベントはトライアルあり・なしを問わず、2回目以降の請求から記録されます。
subscription_renewal_cancelledユーザーがサブスクリプションの自動更新をオフにしました。有料サブスクリプション期間が終了するまでプレミアム機能へのアクセスは継続されます。
subscription_renewal_reactivatedユーザーがサブスクリプションの自動更新を再度有効にしたときにトリガーされます。
subscription_expiredキャンセルされたサブスクリプションが完全に終了したときにトリガーされます。たとえば、12月12日にサブスクリプションをキャンセルしても12月31日まで有効な場合、イベントは12月31日に記録されます。
subscription_pausedユーザーがサブスクリプションの一時停止を有効にしたときに発生します(Android のみ)。
subscription_deferredサブスクリプションの購入が延期され、ユーザーが支払いを先送りしながらプレミアム機能へのアクセスを維持できる場合にトリガーされます。この機能は Google Play Developer API を通じて利用可能で、無料トライアルや支払いが困難なユーザーへの対応に活用できます。
non_subscription_purchase永続アクセスやゲーム内コインなどの消耗型アイテムといった、サブスクリプション以外のすべての購入。
trial_startedユーザーがトライアルサブスクリプションを開始したときにトリガーされます。
trial_convertedトライアルが終了してユーザーに課金されたとき(初回購入)に発生します。たとえば、1月14日までトライアル期間があるにもかかわらず1月7日に課金された場合、イベントは1月7日に記録されます。
trial_renewal_cancelledトライアル期間中にユーザーがサブスクリプションの自動更新をオフにしました。トライアルが終了するまでプレミアム機能へのアクセスは継続されますが、課金やサブスクリプションの開始は行われません。
trial_renewal_reactivatedトライアル期間中にユーザーがサブスクリプションの自動更新を再度有効にしたときに発生します。
trial_expiredサブスクリプションに転換されずにトライアルが終了したときにトリガーされます。
entered_grace_period支払い試行が失敗し、ユーザーがグレース期間(有効な場合)に入ったときに発生します。この期間中もユーザーはプレミアム機能にアクセスできます。
billing_issue_detected課金試行中に請求エラーが発生したとき(例:カード残高不足)にトリガーされます。
subscription_refundedサブスクリプションが返金されたとき(例:Apple サポートによる返金)にトリガーされます。
non_subscription_purchase_refundedサブスクリプション以外の購入が返金されたときにトリガーされます。
access_level_updatedユーザーのアクセスレベルが更新されたときに発生します。

subscription_renewal_reactivated は、ユーザーがキャンセルした時点でアクティブだったプロダクト ID(以前のプロダクト ID)を保持します。これは、ユーザーが別のプロダクトを購入して再アクティブ化した場合でも同様です。Apple はキャンセル → 再アクティブ化の一連の流れを通じて同じ original_transaction_id を維持するため、このイベントは元のプロダクトを反映します。新しいプロダクトは、新しいプロダクトの課金が開始される次の subscription_renewed イベントで確認できます。

Webhookイベントの構造

Adaptyは、Integrations -> WebhooksページのEvents namesセクションで選択したイベントのみを送信します。 Webhookイベントは JSON 形式でシリアライズされます。サーバーへの POST リクエストのボディには、以下の構造でラップされたシリアライズ済みイベントが含まれます。すべてのイベントは同じ構造に従いますが、フィールドの内容はイベントタイプ、ストア、および設定内容によって異なります。ユーザー属性は、設定したカスタムユーザー属性であるため、設定した内容が反映されます。アトリビューションデータのフィールドはすべてのイベントタイプで共通ですが、アトリビューションのリストはモバイルアプリで使用しているアトリビューションソースによって異なります。イベントの例を以下に示します:

{
  "profile_id": "00000000-0000-0000-0000-000000000000",
  "customer_user_id": "UserIdInYourSystem",
  "idfv": "00000000-0000-0000-0000-000000000000",
  "idfa": "00000000-0000-0000-0000-000000000000",
  "advertising_id": "00000000-0000-0000-0000-000000000000",
  "profile_install_datetime": "2000-01-31T00:00:00.000000+0000",
  "user_agent": "ExampleUserAgent/1.0 (Device; OS Version) Browser/Engine",
  "email": "[email protected]",
  "event_type": "subscription_started",
  "event_datetime": "2000-01-31T00:00:00.000000+0000",
  "event_properties": {
    "store": "play_store",
    "currency": "USD",
    "price_usd": 4.99,
    "profile_id": "00000000-0000-0000-0000-000000000000",
    "cohort_name": "All Users",
    "environment": "Production",
    "price_local": 4.99,
    "base_plan_id": "b1",
    "developer_id": "onboarding_placement",
    "ab_test_name": "onboarding_ab_test",
    "ab_test_revision": 1,
    "paywall_name": "UsedPaywall",
    "proceeds_usd": 4.2315,
    "variation_id": "00000000-0000-0000-0000-000000000000",
    "purchase_date": "2024-11-15T10:45:36.181000+0000",
    "store_country": "AR",
    "event_datetime": "2000-01-31T00:00:00.000000+0000",
    "proceeds_local": 4.2415,
    "tax_amount_usd": 0,
    "transaction_id": "0000000000000000",
    "net_revenue_usd": 4.2415,
    "profile_country": "AR",
    "paywall_revision": "1",
    "profile_event_id": "00000000-0000-0000-0000-000000000000",
    "tax_amount_local": 0,
    "net_revenue_local": 4.2415,
    "vendor_product_id": "onemonth_no_trial",
    "profile_ip_address": "10.10.1.1",
    "consecutive_payments": 1,
    "rate_after_first_year": false,
    "original_purchase_date": "2000-01-31T00:00:00.000000+0000",
    "original_transaction_id": "0000000000000000",
    "subscription_expires_at": "2000-01-31T00:00:00.000000+0000",
    "profile_has_access_level": true,
    "profile_total_revenue_usd": 4.99,
    "promotional_offer_id": null,
    "store_offer_category": null,
    "store_offer_discount_type": null
  },
  "event_api_version": 1,
  "profiles_sharing_access_level": [{"profile_id": "00000000-0000-0000-0000-000000000000", "customer_user_id": "UserIdInYourSystem"}],
   "attributions": {
    "appsflyer": {
      "ad_set": "Keywords 1.12",
      "status": "non_organic",
      "channel": "Google Ads",
      "ad_group": null,
      "campaign": "Social media influencers - Rest of the world",
      "creative": null,
      "created_at": "2000-01-31T00:00:00.000000+0000"
    }
  },
  "user_attributes": {"Favourite_color": "Violet", "Pet_name": "Fluffy"},
  "integration_ids": {"firebase_app_instance_id": "val1", "branch_id": "val2", "one_signal_player_id": "val3"},
  "play_store_purchase_token": {
    "product_id": "product_123",
    "purchase_token": "token_abc_123",
    "is_subscription": true
  }
}

イベントフィールド

イベントパラメーターはすべてのイベントタイプで共通です。

フィールド説明
advertising_idUUID広告ID(Android のみ)。
attributionsJSONアトリビューションデータWebhook 設定Send Attribution が有効な場合に含まれます。
customer_user_idStringユーザーの識別時にアプリコードで設定したアプリ側のユーザー ID(UUID、メールアドレス、その他の ID)。アプリコードでユーザーを識別していない場合、または該当ユーザーが匿名(未ログイン)の場合は null になります。
emailStringAdapty SDK の updateProfile メソッド、またはサーバーサイド API でプロファイルを作成・更新する際に設定したユーザーのメールアドレス。email の値を SDK や API メソッドに渡していない場合は null になります。
event_api_versionIntegerAdapty API のバージョン(現在: 1)。
event_datetimeISO 8601イベントのビジネス上の有効時刻。購入イベントなら購入日時、有効期限イベントなら有効期限など、Adapty がイベントを受信・送信した時刻ではありません。ISO 8601 形式(例: 2020-07-10T15:00:00.000000+0000)。順序については下記の注記を参照してください。
event_propertiesJSONイベントプロパティ
event_typeStringAdapty 形式のイベント名。全リストはWebhook イベントタイプを参照してください。
idfaUUID広告識別子(Apple のみ)。Adapty ダッシュボードのプロファイルに表示される IDFA。トラッキング制限、キッズモード、プライバシー設定により利用できない場合は null になる場合があります。
idfvUUIDベンダー識別子(IDFV)。開発者ごとに一意の値。Adapty ダッシュボードのプロファイルに表示される IDFV
integration_idsJSONAdapty SDK の setIntegrationIdentifier メソッド、またはサーバーサイド API でプロファイルを作成・更新する際に設定したユーザーのインテグレーション ID。利用できない場合またはインテグレーションが無効な場合は null
play_store_purchase_tokenJSONPlay Store 購入トークンWebhook 設定Send Play Store purchase token が有効な場合に含まれます。
profile_idUUIDAdapty が各プロファイルに対して自動生成するプロファイル ID。ユーザーを識別しない場合やログイン前に購入を許可している場合、1 つの Apple/Google ID が異なるプロファイル ID と紐付く可能性があります。詳しくはAdapty の親プロファイルと継承プロファイルの仕組みを参照してください。
profile_install_datetimeISO 8601ISO 8601 形式のインストール日時(例: 2020-07-10T15:00:00.000000+0000)。
profiles_sharing_access_levelJSON現在のユーザープロファイルを除く、アクセスレベルを共有しているユーザーの一覧。アプリでアクセスレベルの共有が有効になっている場合、同じ Apple/Google ID で使用されている他のプロファイルが含まれます。
形式:
  • profile_id: (UUID)Adapty ID
  • customer_user_id: (String)設定されている場合のカスタマーユーザー ID
user_agentStringデバイスのブラウザユーザーエージェント。
user_attributesJSONアプリ固有の情報でユーザープロファイルを拡充するために設定できるカスタムデータ。ユーザーの設定(テーマ、言語など)や行動フラグ(オンボーディング完了、機能の使用状況)のトラッキングに主に使用します。
キーが文字列、値が文字列または数値のキーバリューペアで表されます(例: {"Favourite_color": "Violet", "Pet_name": "Fluffy"})。
カスタム属性は、Adapty ダッシュボードで個別のプロファイルに対して手動で設定するか、Adapty SDK の updateProfile メソッドを使ってプログラムから設定するか、サーバーサイド API でプロファイルを作成・更新する際に設定できます。
Webhook 設定Send User Attributes が有効な場合に含まれます。

モバイルアプリコードではカスタム属性値を float または文字列として設定できますが、サーバーサイド API や過去データのインポートで受け取った属性は異なる形式で届く場合があります。その場合、boolean と integer の値は float に変換されます。

event_datetime はサブスクリプションのライフサイクルでイベントが発生した日時を表しており、Adapty が処理または配信した日時ではありません。そのため、複数のイベントが同じ event_datetime を持つ場合や、時系列順とは異なる順序で届く場合があります。たとえば、subscription_expired イベントの event_datetime が、それより前に配信された subscription_renewal_cancelled イベントの event_datetime より早い場合があります。イベントの順序付けに event_datetime を使用しないでください。代わりに、受信時刻を基準にイベントを並べ替え、profile_event_id またはトランザクション ID を使って重複を排除してください。

アトリビューション

アトリビューションデータを送信するには、Integrations -> Webhooks ページで Send Attribution オプションを有効にしてください。アトリビューションデータの送信を有効にしており、アトリビューション連携を設定済みの場合、以下のデータがすべてのソースのイベントに付与されて送信されます。同じアトリビューションデータはすべてのイベントタイプに送信されます。

{
  "attributions": {
    "appsflyer": {
      "ad_set": "sample_ad_set_123",
      "status": "non_organic",
      "channel": "sample_channel",
      "ad_group": "sample_ad_group_456",
      "campaign": "sample_ios_campaign",
      "creative": "sample_creative_789",
      "created_at": "2000-01-31T00:00:00.000000+0000",
      "network_user_id": "0000000000000-0000000"
    }
  }
}
フィールド名フィールド型説明
ad_setStringアトリビューションの広告セット。
statusStringorganicnon_organic,、または unknown のいずれか。
channelStringマーケティングチャネル名。
ad_groupStringアトリビューションの広告グループ。
campaignStringマーケティングキャンペーン名。
creativeStringアトリビューションのクリエイティブキーワード。
created_atISO 8601 dateアトリビューションレコードの作成日時。
network_user_idStringアトリビューションソースがユーザーに割り当てたID。

インテグレーション ID

現在、イベントで使用されているインテグレーション ID は以下のとおりです:

  • adjust_device_id
  • airbridge_device_id
  • amplitude_device_id
  • amplitude_user_id
  • appmetrica_device_id
  • appmetrica_profile_id
  • appsflyer_id
  • branch_id
  • facebook_anonymous_id
  • firebase_app_instance_id
  • mixpanel_user_id
  • pushwoosh_hwid
  • one_signal_player_id
  • one_signal_subscription_id
  • tenjin_analytics_installation_id
  • posthog_distinct_user_id

Play Store の購入トークン

このフィールドには、必要に応じて購入を再検証するために必要なすべてのデータが含まれています。Webhookインテグレーションの設定Send Play Store purchase token オプションが有効になっている場合にのみ送信されます。

FieldTypeDescription
product_idStringPlay Store で購入したプロダクトの一意識別子(SKU)。
purchase_tokenStringこの購入トランザクションを一意に識別するために Google Play が生成するトークン。
is_subscriptionBoolean購入したプロダクトがサブスクリプション(true)か買い切り購入(false)かを示します。

イベントプロパティ

イベントプロパティは、イベントの種類によって、また同じ種類のイベント間でも異なる場合があります。たとえば、App Store から発生したイベントには、base_plan_id のような Android 固有のプロパティは含まれません。 アクセスレベル更新イベントには固有のプロパティがあるため、専用セクションを設けています。同様に、追加の税・収益イベントプロパティも特定のイベントタイプのみに該当するため、別セクションに分けています。

ほとんどのイベントタイプに共通

ほとんどのイベントタイプのイベントプロパティは共通です(Access Level Updated イベントを除く。このイベントについては専用のセクションで説明します)。以下は、各プロパティと、それが特定のイベントに属するかどうかを示す一覧表です。

フィールド説明
ab_test_nameStringトランザクションが発生した Adapty A/B テスト の名前。
ab_test_revisionIntegerトランザクションが発生した A/B テストのリビジョン。
base_plan_idStringGoogle Play ストアの ベースプラン ID、または Stripe の price ID
cancellation_reasonString

キャンセル理由の候補: voluntarily_cancelledbilling_errorprice_increaseproduct_was_not_availablerefundcancelled_by_developernew_subscription_replaceupgradedunknownadapty_revoked

以下のイベントタイプに含まれます:

subscription_cancelledsubscription_refundedtrial_cancelled
cohort_nameStringユーザーに表示するペイウォールを決定した オーディエンス の名前。
consecutive_paymentsIntegerユーザーが中断なくサブスクリプションを継続している期間数。現在の期間を含む。
currencyString現地通貨。
developer_idStringトランザクションが発生した プレースメント の ID。
environmentString取り得る値は Sandbox または Production
event_datetimeISO 8601 dateイベントの日時。イベントのルートレベルと同じ値。
original_purchase_dateISO 8601 date定期サブスクリプションの場合、初回購入はチェーンの最初のトランザクションであり、そのIDはオリジナルトランザクション IDと呼ばれ更新チェーンを連結します。以降のトランザクションはその延長です。オリジナル購入日とは、この最初のトランザクションの日時を指します。
original_transaction_idString

定期サブスクリプションの場合、これは更新チェーンを連結するオリジナルトランザクション ID です。オリジナルトランザクションはチェーンの最初のものであり、以降のトランザクションはその延長です。

延長がない場合、original_transaction_id は store_transaction_id と一致します。

paywall_nameStringトランザクションが発生したペイウォールの名前。
paywall_revisionStringトランザクションが発生したペイウォールのリビジョン。デフォルト値は 1。
price_localFloatApple/Google の手数料控除前のプロダクト価格(現地通貨)。
price_usdFloatApple/Google の手数料控除前のプロダクト価格(USD)。
profile_countryStringプロファイルの IP アドレスをもとに Adapty が判定した国。
profile_event_idUUID重複排除に使用できる一意のイベント ID。
profile_has_access_levelBooleanプロファイルがアクティブなアクセスレベルを持つかどうかを示す Boolean 値。
profile_idUUIDAdapty が生成したプロファイル ID。イベントのルートレベルと同じ値。
profile_ip_addressStringプロファイルの IP アドレス(IPv4 または IPv6。利用可能な場合は IPv4 優先)。アプリ設定Collect users’ IP addresses が無効の場合は null
profile_total_revenue_usdFloatプロファイルの累計収益(返金分を差し引いた値)。
promotional_offer_idString使用された プロモーションオファー の Adapty ID。ダッシュボードでオファーを作成する際に設定します。
purchase_dateISO 8601 dateプロダクト購入の日時。
rate_after_first_yearBoolean1 年間継続して更新されたサブスクリプションが、手数料率の引き下げ(通常 15%)の対象となるかどうかを示す Boolean 値。手数料率はプログラムの適用条件や国によって異なります。詳細は ストア手数料と税金 を参照してください。
storeStringプロダクトが購入されたストア。標準値: app_storeplay_storestripepaddle
サーバーサイド API で カスタムストアトランザクション を設定した場合は、store パラメーターの値が使用されます。
store_countryStringアプリストアから送信された国情報。
store_offer_categoryString適用されたオファーカテゴリー。取り得る値は introductorypromotionalwinback
store_offer_discount_typeString適用されたオファータイプ。取り得る値は free_trialpay_as_you_gopay_up_front
subscription_expires_atISO 8601 dateサブスクリプションの有効期限。通常は将来の日時。
transaction_idStringトランザクションの一意識別子。
trial_durationStringトライアル期間の日数。"{} days" 形式(例: "7 days")で送信されます。トライアル関連イベントタイプ(trial_startedtrial_convertedtrial_cancelled)にのみ含まれます。
variation_idUUID購入が行われたペイウォールの一意 ID。
vendor_product_idString

Apple App Store、Google Play ストア、または Stripe におけるプロダクト ID。

実際のストアトランザクションなしでアクセスが付与された場合、vendor_product_id は以下のいずれかになります:

  • adapty_server_side_productサーバーサイド API 経由で付与。
  • adapty_dashboard_product — Adapty ダッシュボードで 手動付与
  • adapty_promotion — レガシー。

税金と収益に関する追加イベントプロパティ

以下の税金と収益に関するイベントプロパティは、特定のイベントタイプにのみ適用される追加フィールドです。つまり、ここに列挙されているイベントタイプには、ほとんどのイベントタイプ共通のイベントプロパティに加えて、以下の追加フィールドが含まれます。

税金と収益に関するイベントプロパティを持つイベントタイプ:

  • subscription_renewed
  • subscription_initial_purchasesubscription_started とも呼ばれる — 同じイベント)
  • subscription_refunded
  • non_subscription_purchase | フィールド | 型 | 説明 | | :-------------------- | :---- | :----------------------------------------------------------- | | net_revenue_local | Float | ローカル通貨でのネット収益(Apple/Google の手数料および税金控除後の収入)。 | | net_revenue_usd | Float | USD でのネット収益(Apple/Google の手数料および税金控除後の収入)。 | | proceeds_local | Float | ローカル通貨での Apple/Google 手数料控除後のプロダクト価格。 | | proceeds_usd | Float | Apple/Google 手数料控除後のプロダクト価格(USD)。 | | tax_amount_local | Float | ローカル通貨での控除税額。 | | tax_amount_usd | Float | USD での控除税額。 |

non_subscription_purchase のペイロード例

non_subscription_purchase はサブスクリプションイベントと同じ構造に従いますが、買い切り購入または消耗型アイテムの購入を反映します。サブスクリプション専用フィールドは適用されません。cancellation_reasonwill_renewis_in_grace_periodis_refundis_lifetimetrial_duration は存在しません。subscription_expires_at は含まれますが null になります。税金および収益フィールド(net_revenue_*proceeds_*tax_amount_*)は含まれます。

ペイロード例(クリックして展開)
{
  "profile_id": "00000000-0000-0000-0000-000000000000",
  "customer_user_id": "UserIdInYourSystem",
  "event_type": "non_subscription_purchase",
  "event_datetime": "2000-01-31T00:00:00.000000+0000",
  "event_properties": {
    "store": "app_store",
    "currency": "USD",
    "price_usd": 4.99,
    "price_local": 4.99,
    "proceeds_usd": 4.2415,
    "proceeds_local": 4.2415,
    "net_revenue_usd": 4.2415,
    "net_revenue_local": 4.2415,
    "tax_amount_usd": 0,
    "tax_amount_local": 0,
    "profile_id": "00000000-0000-0000-0000-000000000000",
    "environment": "Production",
    "vendor_product_id": "100coins",
    "transaction_id": "0000000000000000",
    "original_transaction_id": "0000000000000000",
    "purchase_date": "2024-11-15T10:45:36.181000+0000",
    "original_purchase_date": "2024-11-15T10:45:36.181000+0000",
    "subscription_expires_at": null,
    "store_country": "US",
    "profile_country": "US",
    "profile_ip_address": "10.10.1.1",
    "profile_has_access_level": false,
    "profile_total_revenue_usd": 4.99,
    "consecutive_payments": 1,
    "rate_after_first_year": false,
    "profile_event_id": "00000000-0000-0000-0000-000000000000"
  },
  "event_api_version": 1
}

アクセスレベル更新イベントについて

Access Level Updated イベントは、Webhook インテグレーションが有効であり、このイベントタイプが有効になっている場合にのみ生成される特定の Webhook イベントです。有効になっている場合、設定済みの Webhook に送信され、Event Feed に表示されます。有効になっていない場合、イベントは作成されません。

アクセスレベルの共有を有効にしている場合、access level updated イベントはアクセスレベルを共有しているすべてのプロファイルに対して送信されます。

このイベントを使用して、データベース内のユーザーのアクセスレベルを更新し、バックエンドでプレミアム機能を付与または取り消し、デバイスやプラットフォーム間でアクセスを同期させましょう。

プロパティタイプ説明
ab_test_nameStringトランザクションが発生した A/B テストの名前。
access_level_idStringアクセスレベルの ID。
activated_atISO 8601 dateアクセスが最後にアクティブ化された日時。
active_introductory_offer_typeString適用された初回オファーのタイプ。指定可能な値は free_trialpay_as_you_gopay_up_front
active_promotional_offer_idStringAdapty ダッシュボードの Product セクションに記載されたプロモーションオファーの ID。
active_promotional_offer_typeString適用されたプロモーションオファーのタイプ。指定可能な値は free_trialpay_as_you_gopay_up_front
base_plan_idStringGoogle Play ストアのベースプラン ID、または Stripe の価格 ID
billing_issue_detected_atISO 8601 date請求問題が発生した日時。
cancellation_reasonStringキャンセル理由として考えられる値: voluntarily_cancelledbilling_errorprice_increaseproduct_was_not_availablerefundcancelled_by_developernew_subscription_replaceupgradedunknownadapty_revoked
cohort_nameStringプロファイルが属するオーディエンスの名前。
currencyStringローカル通貨(デフォルトは USD)。
developer_idStringトランザクションが発生したプレースメントの ID。
environmentString指定可能な値は Sandbox または Production
event_datetimeISO 8601 dateイベントの日時。
expires_atISO 8601 dateアクセスが失効する日時。
is_activeBooleanアクセスレベルがアクティブかどうかを示す Boolean 値。
is_in_grace_periodBooleanプロファイルがグレース期間中かどうかを示す Boolean 値。
is_lifetimeBooleanアクセスレベルが永続アクセスかどうかを示す Boolean 値。
is_refundBooleanトランザクションが返金かどうかを示す Boolean 値。
original_purchase_dateISO 8601 date自動更新サブスクリプションの場合、最初のトランザクションが「オリジナル購入」となり、その ID(オリジナルトランザクション ID)が以降の更新トランザクションのチェーンをつなぐ。以降のトランザクションはこの最初のトランザクションの延長である。オリジナル購入日はこの最初のトランザクションの日時。
original_transaction_idString

自動更新サブスクリプションの場合、更新チェーンをつなぐオリジナルトランザクション ID。オリジナルトランザクションはチェーンの最初のもので、以降のトランザクションはその延長である。

延長がない場合、original_transaction_id は store_transaction_id と一致する。

最初の購入のトランザクション識別子。
paywall_nameStringトランザクションが発生したペイウォールの名前。
paywall_revisionStringトランザクションが発生したペイウォールのリビジョン。デフォルト値は 1。
profile_countryStringプロファイルの IP を基に Adapty が判定した国。
profile_event_idUUID重複排除に使用できる一意のイベント ID。
profile_has_access_levelBooleanプロファイルにアクティブなアクセスレベルがあるかどうかを示す Boolean 値。
profile_idUUIDAdapty の内部ユーザープロファイル ID。
profile_ip_addressStringプロファイルの IP アドレス(IPv4 または IPv6。利用可能な場合は IPv4 が優先される)。アプリ設定Collect users’ IP addresses が無効になっている場合は null
profile_total_revenue_usdFloatプロファイルの累計収益(返金を含む)。
purchase_dateISO 8601 dateプロダクトを購入した日時。
renewed_atISO 8601 dateアクセスが更新される日時。
starts_atISO 8601 dateアクセスレベルが開始する日時。
storeStringプロダクトを購入したストア。標準値: app_storeplay_storestripepaddle
サーバーサイド API でカスタムストアトランザクションを設定した場合は、store パラメータの値が使用される。
store_countryStringアプリストアから Adapty に送信された国。
subscription_expires_atISO 8601 dateサブスクリプションの有効期限。
transaction_idStringトランザクションの一意の識別子。
trial_durationStringトライアル期間の日数(例:「7 days」)。
variation_idUUIDバリアントの識別子。購入をこのペイウォールに紐付けるために使用される。
vendor_product_idString

ストア(Apple / Google / Stripe)内のプロダクト ID。

実際のストアトランザクションなしでアクセスが付与された場合、vendor_product_id は以下のいずれかになる:

  • adapty_server_side_productサーバーサイド API 経由で付与された。
  • adapty_dashboard_product — Adapty ダッシュボードで手動付与された。
  • adapty_promotion — レガシー。
will_renewBoolean有料アクセスレベルが更新されるかどうかを示す値。

この構造は、私たちまたは連携するサードパーティによって新しいデータが追加されることで、今後拡張される可能性があります。この構造を処理するコードは、構造全体ではなく特定のフィールドに依存するよう、十分に堅牢に実装してください。