Amazon S3

Learn how to set up Amazon S3 export

Adapty's integration with Amazon S3 allows you to store event and paywall visit data securely in one central location. You will be able to save your subscription events to your Amazon S3 bucket as .csv files.
To set up this integration, you will need to follow a few simple steps in the AWS Console and Adapty dashboard.

📘

Schedule

Adapty sends your data every 24h at 4:00 UTC.

How to set up integration

To start receiving data, you'll need the following credentials:

  1. Access key ID
  2. Secret access key
  3. S3 bucket name
  4. Folder name inside the S3 bucket

📘

Nested directories

You can specify nested directories in the Amazon S3 bucket name field, e.g. adapty-events/com.sample-app

To integrate Amazon S3 go to Integrations > Amazon S3, turn on a toggle from off to on, and fill out fields.

First of all set credentials to build a connection between Amazon S3 and Adapty profiles.

2502

Adapty Dashboard - Amazon S3 Integration

In the Adapty Dashboard the following fields are needed to setup the connection:

  1. Access Key ID - an unique identifier that is used to authenticate a user or application's access to an AWS service. Find this ID in the downloaded csv file.

  2. Secret Access Key - a private key that is used in conjunction with the Access Key ID to authenticate a user or application's access to an AWS service. Find this Key in the downloaded csv file.

  3. S3 Bucket Name - a globally unique name that identifies a specific S3 bucket within the AWS cloud. S3 buckets are a simple storage service that allows users to store and retrieve data objects, such as files and images, in the cloud.

  4. Folder Inside the Bucker - the name of the folder that you want to have inside the selected S3 bucket. Please note that S3 simulates folders using object key prefixes, which are essentially folder names.

How to create Amazon S3 credentials

This guide will help you create necessary credentials in your AWS Console.

1. Create Access Policy

First navigate to the IAM Policy Dashboard on your AWS Console and select the option to Create Policy.

2940

AWS IAM- Create Policy

In 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"
        }
    ]
}
1712

AWS IAM - JSON Policy

After completing the policy configuration, you may choose to add tags (optional) and then click Next to proceed to the final step. In this step, you will name your policy and simply click on the Create policy button to finalize the creation process.

2016

AWS IAM - Name the Policy

2. Create IAM user

To enable Adapty to upload raw data reports to your bucket, you will need to provide them with the Access Key ID and Secret Access Key for a user who has write access to the specific bucket.

To proceed with that, navigate to the IAM Console and select the Users section. From there, click on the Add users button.

2940

AWS IAM- Add User

Give user a name, choose Access key – Programmatic access and proceed to permissions.

1201

AWS IAM- Name User

For the next step please elect Add user to group option and then click on the Create group button.

2932

AWS IAM - Create Group

Next, you need to assign a name to your User Group and select the policy that was previously created by you. Once you have selected the policy, click on the Create group button to complete the process.

2940

AWS IAM - Add Permission to Group

After successfully creating the group, please select it and proceed to the next step.

2940

AWS IAM - Select Policy for Group

Since this is the final step for this section, you may proceed by simply clicking on the Create User button.

2920

AWS IAM - Create User

Lastly, you can either download the credentials in .csv format or alternatively, copy and paste the credentials directly from the dashboard.

2178

AWS IAM - download .csv

Manual Data Export

In addition to the automatic event data export to Amazon S3, Adapty also provides a manual file export functionality. With this feature, you can select a specific time interval for the event data and export it to your S3 bucket manually. This allows you to have greater control over the data you export and when you export it. Please note that the file for today will have incomplete data.

2936

Manual Export - Amazon S3

Table Structure

In AWS S3 integration, Adapty provides table to store historical data for transaction events and paywall visits. The table contains information about the user profile, revenue and proceeds, and the origin store, among other data points. Essentially, these tables log all transactions generated by an app for a given time period.

ColumnDescription
profile_idAdapty user ID.
event_typeLower cased event name. Refer to the Events section to learn event types.
event_datetimeISO 8601 date.
original_transaction_idThe transaction identifier of the original purchase.
subscription_expires_atThe Expiration date of subscription. Usually in the future.
environmentCould be Sandbox or Production.
revenue_usdRevenue in USD. Can be empty.
proceeds_usdProceeds in USD. Can be empty.
revenue_localRevenue in local currency. Can be empty.
proceeds_localProceeds in local currency. Can be empty.
customer_user_idDeveloper user ID. For example, it can be your user UUID, email, or any other ID. Null if you didn't set it.
storeCould be app_store or play_store.
product_idProduct id in Apple/Google store.
countryProfile Country determined by Adapty, based on IP.
store_countyProfile Country determined by Apple/Google store.