Adaptyへの過去データのインポート

Adapty SDKをインストールしてアプリをリリースすると、Profilesセクションでユーザーとサブスクライバーを確認できます。しかし、レガシーインフラを持っていてAdaptyへ移行したい場合や、既存のデータをAdaptyで確認したい場合はどうすればよいでしょうか?

データのインポートは必須ではありません

Adapty SDKが組み込まれたアプリをユーザーが開くと、Adaptyは自動的に過去ユーザーへアクセスレベルを付与し、購入イベントを復元します。このユースケースでは、過去データのインポートは不要です。ただし、大量の過去トランザクションがある場合、データのインポートによってアナリティクスの精度が上がります。移行に際して一般的には必須ではありません。

Adaptyにデータをインポートするには:

  1. トランザクションをCSVファイルにエクスポートします(iOS、Android、Stripeごとに別々のファイルを用意してください)。詳細な要件については、下記のインポートファイルの形式セクションを参照してください。
  2. ファイルが1 GBを超える場合は、約100行のデータサンプルを準備してください。
  3. すべてのファイルをGoogle Driveにアップロードします(圧縮してもかまいませんが、それぞれ別々のファイルのままにしてください)。
  4. iOSトランザクションについては、StoreKit 1を使用している場合でも、App settingsIn-app purchase APIセクションにIssuer IDKey IDPrivate key(.P8ファイル)が入力されていることを確認してください。詳細な手順については、Issuer IDとKey IDの入力およびアプリ内購入キーファイルのアップロードセクションを参照してください。
  5. メールまたはAdapty Dashboardのオンラインチャットでチームにリンクを共有してください。

過去データのインポートは、Adaptyの既存エントリと重複する場合でも、重複が発生することはありませんのでご安心ください。

Androidの既知の制限事項

  1. アクティブなサブスクリプションのみが復元されます。期限切れのトランザクションは復元されません。
  2. サブスクリプションの最新の更新のみが復元されます。購入の全チェーンは復元されません。
  3. 購入後にプロダクト価格が変更された場合、現在の価格が使用されるため、価格が正しく表示されないことがあります。

Androidトランザクションの件数が多い場合、デフォルトのAPI制限を超えないよう、インポートを開始する前にGoogle Play Developer APIのクォータ増加をリクエストする必要があるかもしれません。

インポートファイルの形式

RevenueCatから移行する場合、RevenueCatのエクスポートファイルをそのまま送信できます。変換は不要です。エクスポート手順についてはRevenueCatのドキュメントを参照してください。

以下のルールに従ったファイルでデータを準備してください:

  • ファイル形式は.CSVです。
  • Android、iOS、Stripeのインポートはそれぞれ別々のファイルを使用します。
  • すべてのインポートファイルに必須カラムがすべて含まれています。
  • インポートファイルのカラムにヘッダーがあります。
  • カラムヘッダーは下記の表のColumn name列に記載されているものと完全に一致します。タイポがないか確認してください。
  • 必須でないカラムはファイルに含めなくてもかまいません。データがない場合、空のカラムを追加しないでください。
  • インポートファイルには、表に記載されていない余分なカラムを含めないでください。含まれている場合は削除してください。
  • 値はカンマで区切られています。
  • 値は引用符で囲まれていません。
  • 1人のユーザーに対して複数のapple_original_transaction_idがある場合、それぞれのapple_original_transaction_idごとに別の行として追加してください。そうしないと、消耗型アイテムの購入を復元できない場合があります。

サンプルファイルとして、iOSおよびAndroidのファイルをご利用ください。

インポートファイルの利用可能なカラム

カラム名必須/任意説明
user_id必須ユーザーのID
apple_original_transaction_idiOSで必須

オリジナルトランザクションIDまたはOTID(詳細)。StoreKit 2のインポートメカニズムで使用されます。1人のユーザーが複数のOTIDを持つ場合、インポートを成功させるには少なくとも1つを提供すれば十分です。

注意: このインポートにはAdapty Dashboardでアプリ内購入APIの資格情報を設定する必要があります。設定方法はこちらをご覧ください。

google_product_idGoogleで必須Google Play StoreのプロダクトID
google_purchase_tokenGoogleで必須ユーザーと購入したアプリ内プロダクトのプロダクトIDを表す一意の識別子
google_is_subscriptionGoogleで必須使用可能な値は 1 | 0
stripe_tokenStripeで必須一意の購入を表すStripeオブジェクトのトークン。StripeのSubscription(sub_...)またはPayment Intent(pi_...)のトークンのいずれかを使用できます。
subscription_expiration_date任意サブスクリプションの有効期限日(次の課金日)。タイムゾーン付きの日時(2020-12-31T23:59:59-06:00)
created_at任意プロファイル作成日時(2019-12-31 23:59:59-06:00)
birthday任意ユーザーの誕生日(形式:2000-12-31)
email任意ユーザーのメールアドレス
gender任意ユーザーの性別
phone_number任意ユーザーの電話番号
country任意形式:ISO 3166-1 alpha-2
first_name任意ユーザーの名
last_name任意ユーザーの姓
last_seen任意タイムゾーン付きの日時(2020-12-31T23:59:59-06:00)
idfa任意IDFA(広告識別子)は、Appleがユーザーのデバイスに割り当てるランダムなデバイス識別子です。iOSアプリのみに適用されます
idfv任意IDFV(ベンダー識別子)は、1人の開発者が開発したすべてのアプリに割り当てられる一意のコードです。iOSアプリのみに適用されます
advertising_id任意広告IDは、AndroidのOSによって割り当てられる一意のコードで、広告主がユーザーのデバイスを一意に識別するために使用することがあります
amplitude_user_id任意AmplitudeのユーザーID
amplitude_device_id任意AmplitudeのデバイスID
mixpanel_user_id任意MixpanelのユーザーID
appmetrica_profile_id任意AppMetricaのユーザープロファイルID
appmetrica_device_id任意AppMetricaのデバイスID
appsflyer_id任意AppsFlyerの一意識別子
adjust_device_id任意AdjustのデバイスID
facebook_anonymous_id任意Facebookがアプリやウェブサイトに匿名でアクセスするユーザー(Facebookにログインしていない状態)に対して生成する一意識別子
branch_id任意Branchの一意識別子
attribution_source任意アトリビューションのソースインテグレーション(例:appsflyer)
attribution_status任意organic
attribution_channel任意トランザクションをもたらしたアトリビューションチャネル
attribution_campaign任意トランザクションをもたらしたアトリビューションキャンペーン
attribution_ad_group任意トランザクションをもたらしたアトリビューション広告グループ
attribution_ad_set任意トランザクションをもたらしたアトリビューション広告セット
attribution_creative任意広告やマーケティングキャンペーンで使用される特定のビジュアルまたはテキスト要素。クリック、コンバージョン、インストールなどの目的のアクションを促進する効果を測定するために追跡されます
custom_attributes任意キーと値の形式のJSON辞書として最大30個のカスタム属性を定義します:
  • key:(文字列)カスタム属性の名前
  • value:(文字列、整数、浮動小数点数、またはブール値)カスタム属性の値

形式:"{'string_value': 'some_value', 'float_value': 123.0, 'int_value': 456}"

形式内のダブルクォートとシングルクォートの使い方に注意してください。ブール値と整数は浮動小数点数に変換されることにご注意ください。

必須フィールド

各プラットフォームには、user_idと対応するプラットフォーム固有の購入を識別するデータという2つの必須フィールドグループがあります。プラットフォームごとの必須フィールドは下記の表を参照してください。

プラットフォーム必須フィールド
iOS

user_id

apple_original_transaction_id

Android

user_id

google_product_id

google_purchase_token

google_is_subscription

Stripe

user_id

stripe_token

これらのフィールドがなければ、Adaptyはトランザクションを取得できません。

正確なコホートアナリティクスのために、created_atを指定してください。指定しない場合、インストール日は最初の購入日と同じとみなされます。

Adaptyへのデータインポート

[email protected]またはAdapty Dashboardのオンラインチャットからお問い合わせいただき、インポートファイルを共有してください。