Amazon S3

Adapty の Amazon S3 インテグレーションを使用すると、イベントデータとペイウォール訪問データを一か所に安全に保存できます。サブスクリプションイベントを .csv ファイルとして Amazon S3 バケットに保存することが可能です。
このインテグレーションを設定するには、AWS コンソールと Adapty ダッシュボードでいくつかの簡単な手順を行う必要があります。

スケジュール

Adapty はデータを24時間ごと、UTC 4:00 に送信します。

各ファイルには、UTC の前日カレンダー全体で作成されたイベントのデータが含まれます。たとえば、3月8日 UTC 4:00 に自動エクスポートされるデータには、3月7日の 00:00:00〜23:59:59(UTC)に作成されたすべてのイベントが含まれます。

Amazon S3 インテグレーションの設定方法

データの受信を開始するには、以下の認証情報が必要です:

  1. アクセスキー ID
  2. シークレットアクセスキー
  3. S3 バケット名
  4. S3 バケット内のフォルダ名

ネストされたディレクトリ

Amazon S3 バケット名フィールドにネストされたディレクトリを指定できます(例:adapty-events/com.sample-app)

Amazon S3 のインテグレーションを設定するには、Integrations -> Amazon S3 に移動し、トグルをオフからオンに切り替えて、各フィールドに入力してください。

まず、Amazon S3 と Adapty プロファイルの接続を確立するための認証情報を設定します。

2b1a6e3-CleanShot_2023-03-24_at_14.51.272x.webp

Adapty ダッシュボードでは、接続を設定するために以下のフィールドが必要です:

フィールド説明
Access Key IDAWS サービスへのアクセスを認証するために使用される一意の識別子です。ダウンロードした csv ファイル で確認できます。
Secret Access KeyAccess Key ID と組み合わせて AWS サービスへのアクセスを認証するためのプライベートキーです。ダウンロードした csv ファイル で確認できます。
S3 Bucket NameAWS クラウド内の特定の S3 バケットを識別するグローバルに一意の名前です。S3 バケットはシンプルなストレージサービスで、ファイルや画像などのデータオブジェクトをクラウド上に保存・取得できます。
Folder Inside the Bucker選択した S3 バケット内に作成するフォルダーの名前です。S3 はオブジェクトキーのプレフィックス(実質的にフォルダー名)を使用してフォルダーを疑似的に表現している点にご注意ください。

Amazon S3 認証情報の作成方法

このガイドでは、AWS コンソールで必要な認証情報を作成する手順を説明します。

1. アクセスポリシーの作成

まず、AWS コンソールの IAM ポリシーダッシュボード に移動し、Create Policy を選択します。

7af075c-CleanShot_2023-03-21_at_10.52.002x.webp

In the Policy editor, paste the following JSON and change adapty-s3-integration-test to your bucket name:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::adapty-s3-integration-test"
        },
        {
            "Sid": "AllowAllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": [
                "arn:aws:s3:::adapty-s3-integration-test/*",
                "arn:aws:s3:::adapty-s3-integration-test"
            ]
        },
        {
            "Sid": "AllowBucketLocation",
            "Effect": "Allow",
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::adapty-s3-integration-test"
        }
    ]
}
d4e474a-CleanShot_2023-03-21_at_10.56.212x.webp

ポリシーの設定が完了したら、タグを追加する(任意)かどうかを選択し、Next をクリックして最終ステップに進みます。このステップでポリシーに名前を付け、Create policy ボタンをクリックするだけで作成が完了します。

7dcb02f-CleanShot_2023-03-21_at_11.03.372x.webp

2. IAM ユーザーの作成

Adapty がローデータレポートをバケットにアップロードできるようにするには、対象バケットへの書き込みアクセス権を持つユーザーの Access Key ID と Secret Access Key を提供する必要があります。

手順を進めるには、IAM コンソールにアクセスし、Users セクションを選択してください。次に、Add users ボタンをクリックします。

bb612c8-CleanShot_2023-03-21_at_11.12.392x.webp

ユーザーに名前を付け、Access key – Programmatic access を選択して、権限の設定に進みます。

467ee4d-j6aoX.webp

次のステップでは、Add user to group オプションを選択し、Create group ボタンをクリックしてください。

bfd0e80-CleanShot_2023-03-21_at_11.24.592x.webp

次に、User Group の名前を入力し、先ほど作成したポリシーを選択します。ポリシーを選択したら、Create group ボタンをクリックして完了です。

df29c12-CleanShot_2023-03-21_at_11.28.052x.webp

グループの作成が完了したら、それを選択して次のステップに進んでください。

1f3722e-CleanShot_2023-03-21_at_11.36.192x.webp

このセクションの最後のステップなので、Create User ボタンをクリックして進んでください。

ea43722-CleanShot_2023-03-21_at_11.40.462x.webp

最後に、認証情報を**.csv 形式でダウンロード**するか、ダッシュボードから直接コピー&ペーストすることができます。

bcf35e1-S3created.webp

手動データエクスポート

Amazon S3 への自動イベントデータエクスポートに加えて、Adapty では手動ファイルエクスポート機能も提供しています。この機能を使うと、エクスポートするイベントデータの期間を指定し、S3 バケットに手動でエクスポートできます。これにより、エクスポートするデータとそのタイミングをより細かく管理できます。

指定した日付範囲では、Date A の 00:00:00 UTC から Date B の 23:59:59 UTC までに作成されたイベントがエクスポートされます。

466bd29-CleanShot_2023-03-21_at_12.35.252x.webp

テーブル構造

AWS S3 連携では、Adapty はトランザクションイベントおよびペイウォール訪問の履歴データを保存するテーブルを提供します。このテーブルには、ユーザープロファイル、収益および収益額、元のストアなど、さまざまなデータが含まれています。基本的に、これらのテーブルはアプリが一定期間に生成したすべてのトランザクションを記録します。

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

以下はイベントのテーブル構造です。

カラム説明
profile_idAdapty ユーザー ID。
event_type小文字のイベント名。イベントの種類については Events セクションを参照してください。
event_datetimeISO 8601 形式の日付。
transaction_id購入や更新などのトランザクションの一意の識別子。
original_transaction_id最初の購入のトランザクション識別子。
subscription_expires_atサブスクリプションの有効期限。通常は未来の日時。
environmentSandbox または Production。
revenue_usdUSD での売上。空の場合があります。
proceeds_usdUSD での収益。空の場合があります。
net_revenue_usdUSD での純収益(税引き後の収入)。空の場合があります。
tax_amount_usdUSD での税額。空の場合があります。
revenue_local現地通貨での売上。空の場合があります。
proceeds_local現地通貨での収益。空の場合があります。
net_revenue_local現地通貨での純収益(税引き後の収入)。空の場合があります。
tax_amount_local現地通貨での税額。空の場合があります。
customer_user_id開発者のユーザー ID。たとえば、ユーザーの UUID、メールアドレス、その他の ID を使用できます。設定していない場合は Null。
storeapp_store または play_store
product_idApple App Store、Google Play Store、または Stripe でのプロダクト ID。
base_plan_idGoogle Play Store での ベースプラン ID または Stripe での 価格 ID
developer_idトランザクションが発生したペイウォールの開発者(SDK)ID。
ab_test_nameトランザクションが発生した A/B テストの名前。
ab_test_revisionトランザクションが発生した A/B テストのリビジョン。
paywall_nameトランザクションが発生したペイウォールの名前。
paywall_revisionトランザクションが発生したペイウォールのリビジョン。
profile_countyIP アドレスをもとに Adapty が判定したプロファイルの国。
install_dateインストールが行われた日付(ISO 8601 形式)。
idfviOS デバイスの identifierForVendor
idfaiOS デバイスの advertisingIdentifier
advertising_idAndroid オペレーティングシステムが割り当てる一意のコードで、広告主がユーザーのデバイスを識別するために使用する広告 ID。
ip_addressデバイスの IP アドレス(IPv4 または IPv6。利用可能な場合は IPv4 を優先)。デバイスの IP が変わるたびに更新されます。
cancellation_reason

ユーザーがサブスクリプションをキャンセルした理由。

以下の値が設定されます:

iOS & Android voluntarily_cancelledbilling_errorrefund

iOS price_increaseproduct_was_not_availableunknownupgraded

Android new_subscription_replacecancelled_by_developer

android_app_set_idAppSetId — デバイスおよび開発者アカウントごとに一意で、ユーザーがリセット可能な、非収益化広告用途向けの ID。
android_idAndroid 8.0(API レベル 26)以降では、アプリの署名キー、ユーザー、デバイスの組み合わせごとに一意な 64 ビットの数値(16 進数文字列で表現)。詳細は Android 開発者ドキュメント を参照してください。
deviceエンドユーザーに表示されるデバイスのモデル名。
currencyトランザクションの 3 文字の通貨コード(ISO-4217)。
store_countryApple/Google ストアが判定したプロファイルの国。
attribution_sourceアトリビューションソース。
attribution_network_user_idアトリビューションソースがユーザーに割り当てた ID。
attribution_statusorganic、non_organic、または unknown。
attribution_channelマーケティングチャネル名。
attribution_campaignマーケティングキャンペーン名。
attribution_ad_groupアトリビューションの広告グループ。
attribution_ad_setアトリビューションの広告セット。
attribution_creativeアトリビューションのクリエイティブキーワード。
attributesカスタムユーザー属性 の JSON。モバイルアプリから送信するよう設定したカスタム属性が含まれます。送信するには、Integrations -> Webhooks ページで Send User Attributes オプションを有効にしてください。
integration_idsプロファイルに関連付けられたすべてのインテグレーション ID。ディクショナリ形式。例: {‘mixpanel_user_id’: ‘mixpanelUserId-test’, ‘facebook_anonymous_id’: ‘facebookAnonymousId-test’}
ここにペイウォール訪問数のテーブル構造を示します:
カラム説明
:--------------------:-----------------------------------------------------------------------------------------------------------
profile_idAdapty のユーザー ID。
customer_user_id開発者のユーザー ID。例えば、ユーザーの UUID、メールアドレス、その他の ID などを設定できます。未設定の場合は Null。
profile_countryApple/Google ストアによって決定されるプロファイルの国。
install_dateインストールが行われた日時(ISO 8601 形式)。
storeapp_store または play_store のいずれか。
paywall_showed_atペイウォールがユーザーに表示された日時。
developer_idトランザクションが発生したペイウォールの開発者(SDK)ID。
ab_test_nameトランザクションが発生した A/B テストの名前。
ab_test_revisionトランザクションが発生した A/B テストのリビジョン。
paywall_nameトランザクションが発生したペイウォールの名前。
paywall_revisionトランザクションが発生したペイウォールのリビジョン。

イベントとタグ

インテグレーションで通信するデータを管理できます。このインテグレーションでは、以下の設定オプションを利用できます。

設定説明
Exclude Historical EventsAdapty SDK を含むアプリをユーザーがインストールする前に発生したイベントを除外するかどうかを選択します。これにより、イベントの重複を防ぎ、正確なレポートを確保できます。たとえば、ユーザーが 1 月 10 日に月次サブスクリプションを有効化し、3 月 6 日に Adapty SDK を含むアプリにアップデートした場合、Adapty は 3 月 6 日より前のイベントを除外し、以降のイベントのみを保持します。
Include events without profileAdapty のユーザープロファイルに紐付いていないトランザクションを含めるかどうかを選択します。これには、Adapty SDK のインストール前に行われた購入や、特定のユーザーにすぐに関連付けられないストアのサーバー通知から受信したトランザクションが含まれる場合があります。
Send User Attributes言語設定などのユーザー固有の属性を送信したい場合で、かつ OneSignal のプランが 10 個を超えるタグをサポートしている場合は、このオプションを選択します。有効にすると、デフォルトの 10 タグを超える追加情報を含めることができます。タグの上限を超えるとエラーが発生する可能性がある点に注意してください。
s3-settings.webp

インテグレーション設定の下には、Adapty から Amazon S3 にエクスポート・送信・保存できるイベントが3つのグループに分かれています。必要なものをオンにするだけです。Adapty が提供するイベントの全一覧はこちらをご確認ください。

fd5ccb9-CleanShot_2023-08-17_at_14.49.282x.webp