---
title: "Amazon S3"
description: "Xuất dữ liệu gói đăng ký sang S3 để phân tích và báo cáo nâng cao."
---

Tích hợp Amazon S3 của Adapty cho phép bạn lưu trữ dữ liệu sự kiện và lượt truy cập paywall một cách an toàn tại một vị trí trung tâm. Bạn có thể lưu các [sự kiện gói đăng ký](events) vào Amazon S3 bucket của mình dưới dạng file .csv.  
Để thiết lập tích hợp này, bạn cần thực hiện một vài bước đơn giản trong AWS Console và Adapty Dashboard.
:::note
Lịch trình

Adapty gửi dữ liệu của bạn mỗi **24h** lúc 4:00 UTC.

Mỗi file sẽ chứa dữ liệu cho các sự kiện được tạo trong toàn bộ ngày theo lịch trước đó theo UTC. Ví dụ: dữ liệu được xuất tự động lúc 4:00 UTC ngày 8 tháng 3 sẽ chứa tất cả các sự kiện được tạo vào ngày 7 tháng 3 từ 00:00:00 đến 23:59:59 theo UTC.
:::
## Cách thiết lập tích hợp Amazon S3 \{#how-to-set-up-amazon-s3-integration\}

Để bắt đầu nhận dữ liệu, bạn cần có các thông tin xác thực sau:

1. Access key ID
2. Secret access key
3. Tên S3 bucket
4. Tên thư mục bên trong S3 bucket

:::note
Thư mục lồng nhau

Bạn có thể chỉ định các thư mục lồng nhau trong trường tên Amazon S3 bucket, ví dụ: adapty-events/com.sample-app
:::

Để tích hợp Amazon S3, hãy vào [**Integrations** -> **Amazon S3**](https://app.adapty.io/integrations/s3), bật toggle từ tắt sang bật và điền vào các trường thông tin.

Trước tiên, hãy nhập thông tin xác thực để thiết lập kết nối giữa Amazon S3 và hồ sơ người dùng Adapty.

  <img src="/assets/shared/img/2b1a6e3-CleanShot_2023-03-24_at_14.51.272x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Trong Adapty Dashboard, các trường sau đây cần được điền để thiết lập kết nối:
| Trường | Mô tả |
| :--------------------------- | :----------------------------------------------------------- |
| **Access Key ID** | Một mã định danh duy nhất dùng để xác thực quyền truy cập của người dùng hoặc ứng dụng vào dịch vụ AWS. Tìm ID này trong [tệp csv](s3-exports#how-to-create-amazon-s3-credentials) đã tải xuống. |
| **Secret Access Key** | Khóa bí mật được dùng kết hợp với Access Key ID để xác thực quyền truy cập của người dùng hoặc ứng dụng vào dịch vụ AWS. Tìm khóa này trong [tệp csv](s3-exports#how-to-create-amazon-s3-credentials) đã tải xuống. |
| **S3 Bucket Name** | Tên duy nhất trên toàn cầu để xác định một S3 bucket cụ thể trong đám mây AWS. S3 bucket là dịch vụ lưu trữ đơn giản cho phép người dùng lưu trữ và truy xuất các đối tượng dữ liệu như tệp và hình ảnh trên đám mây. |
| **Folder Inside the Bucket** | Tên thư mục bạn muốn tạo bên trong S3 bucket đã chọn. Lưu ý rằng S3 mô phỏng các thư mục bằng cách sử dụng tiền tố khóa đối tượng, về cơ bản chính là tên thư mục. |
## Cách tạo thông tin xác thực Amazon S3 \{#how-to-create-amazon-s3-credentials\}

Hướng dẫn này sẽ giúp bạn tạo các thông tin xác thực cần thiết trong AWS Console.
### 1\. Tạo Access Policy \{#1-create-access-policy\}

Đầu tiên, truy cập [IAM Policy Dashboard](https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/policies) trong AWS Console và chọn **Create Policy**.

  <img src="/assets/shared/img/7af075c-CleanShot_2023-03-21_at_10.52.002x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

In the Policy editor, paste the following JSON and change `adapty-s3-integration-test` to your bucket name:
```json showLineNumbers title="Json"
{
    "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"
        }
    ]
}
```

  <img src="/assets/shared/img/d4e474a-CleanShot_2023-03-21_at_10.56.212x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Sau khi hoàn tất cấu hình policy, bạn có thể thêm tags (tùy chọn) rồi nhấn **Next** để chuyển sang bước cuối. Ở bước này, bạn đặt tên cho policy và nhấn **Create policy** để hoàn tất quá trình tạo.

  <img src="/assets/shared/img/7dcb02f-CleanShot_2023-03-21_at_11.03.372x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

### 2\. Tạo IAM user \{#create-iam-user\}

Để Adapty có thể tải các báo cáo dữ liệu thô lên bucket của bạn, bạn cần cung cấp cho họ Access Key ID và Secret Access Key của một user có quyền ghi vào bucket đó.

Để thực hiện, hãy truy cập IAM Console và chọn [mục Users](https://console.aws.amazon.com/iamv2/home#/users). Từ đó, nhấp vào nút **Add users**.

  <img src="/assets/shared/img/bb612c8-CleanShot_2023-03-21_at_11.12.392x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Đặt tên cho người dùng, chọn **Access key – Programmatic access**, rồi tiến hành cài đặt quyền.

  <img src="/assets/shared/img/467ee4d-j6aoX.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Ở bước tiếp theo, hãy chọn tùy chọn **Add user to group** rồi nhấn nút **Create group**.

  <img src="/assets/shared/img/bfd0e80-CleanShot_2023-03-21_at_11.24.592x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Tiếp theo, bạn cần đặt tên cho User Group và chọn policy mà bạn đã tạo trước đó. Sau khi chọn xong policy, nhấn vào nút **Create group** để hoàn tất quá trình.

  <img src="/assets/shared/img/df29c12-CleanShot_2023-03-21_at_11.28.052x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Sau khi tạo nhóm thành công, vui lòng **chọn nhóm đó** và tiến hành bước tiếp theo.

  <img src="/assets/shared/img/1f3722e-CleanShot_2023-03-21_at_11.36.192x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Đây là bước cuối cùng của phần này, bạn chỉ cần nhấn vào nút **Create User** để tiếp tục.

  <img src="/assets/shared/img/ea43722-CleanShot_2023-03-21_at_11.40.462x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Cuối cùng, bạn có thể **tải thông tin xác thực ở định dạng .csv** hoặc sao chép và dán trực tiếp từ dashboard.

  <img src="/assets/shared/img/bcf35e1-S3created.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Xuất dữ liệu thủ công \{#manual-data-export\}

Ngoài tính năng tự động xuất dữ liệu sự kiện sang Amazon S3, Adapty còn cung cấp chức năng xuất file thủ công. Với tính năng này, bạn có thể chọn một khoảng thời gian cụ thể cho dữ liệu sự kiện và xuất thủ công sang S3 bucket của mình. Điều này giúp bạn kiểm soát tốt hơn dữ liệu cần xuất và thời điểm xuất.

Khoảng ngày được chỉ định sẽ được dùng để xuất các sự kiện được tạo từ Ngày A lúc 00:00:00 UTC đến Ngày B lúc 23:59:59 UTC.

  <img src="/assets/shared/img/466bd29-CleanShot_2023-03-21_at_12.35.252x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Cấu trúc bảng \{#table-structure\}

Trong tích hợp AWS S3, Adapty cung cấp một bảng để lưu trữ dữ liệu lịch sử cho các sự kiện giao dịch và lượt truy cập paywall. Bảng này chứa thông tin về hồ sơ người dùng, doanh thu và lợi nhuận, cửa hàng gốc, cùng nhiều điểm dữ liệu khác. Về cơ bản, các bảng này ghi lại toàn bộ giao dịch được tạo ra bởi một ứng dụng trong một khoảng thời gian nhất định.
:::warning
Lưu ý rằng cấu trúc này có thể mở rộng theo thời gian — với dữ liệu mới được chúng tôi hoặc các bên thứ ba mà chúng tôi hợp tác giới thiệu. Hãy đảm bảo rằng code xử lý dữ liệu của bạn đủ linh hoạt và chỉ phụ thuộc vào các trường cụ thể, không phụ thuộc vào toàn bộ cấu trúc.
:::

Dưới đây là cấu trúc bảng cho các sự kiện:
| Cột                             | Mô tả                                                                                                                                                                                                                                                                                                                                  |
|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **profile_id**                  | ID người dùng Adapty.                                                                                                                                                                                                                                                                                                                  |
| **event_type**                  | Tên sự kiện viết thường. Xem phần [Events](events) để tìm hiểu các loại sự kiện.                                                                                                                                                                                                                                                      |
| **event_datetime**              | Ngày theo chuẩn ISO 8601.                                                                                                                                                                                                                                                                                                              |
| **transaction_id**              | Mã định danh duy nhất cho một giao dịch như mua hàng hoặc gia hạn.                                                                                                                                                                                                                                                                    |
| **original_transaction_id**     | Mã định danh giao dịch của lần mua hàng gốc.                                                                                                                                                                                                                                                                                          |
| **subscription_expires_at**     | Ngày hết hạn của gói đăng ký. Thường là trong tương lai.                                                                                                                                                                                                                                                                              |
| **environment**                 | Có thể là Sandbox hoặc Production.                                                                                                                                                                                                                                                                                                     |
| **revenue_usd**                 | Doanh thu tính bằng USD. Có thể trống.                                                                                                                                                                                                                                                                                                 |
| **proceeds_usd**                | Tiền thu về tính bằng USD. Có thể trống.                                                                                                                                                                                                                                                                                               |
| **net_revenue_usd**             | Doanh thu thuần (thu nhập sau thuế) tính bằng USD. Có thể trống.                                                                                                                                                                                                                                                                      |
| **tax_amount_usd**              | Số tiền khấu trừ cho thuế tính bằng USD. Có thể trống.                                                                                                                                                                                                                                                                                |
| **revenue_local**               | Doanh thu tính bằng đơn vị tiền tệ địa phương. Có thể trống.                                                                                                                                                                                                                                                                          |
| **proceeds_local**              | Tiền thu về tính bằng đơn vị tiền tệ địa phương. Có thể trống.                                                                                                                                                                                                                                                                        |
| **net_revenue_local**           | Doanh thu thuần (thu nhập sau thuế) tính bằng đơn vị tiền tệ địa phương. Có thể trống.                                                                                                                                                                                                                                               |
| **tax_amount_local**            | Số tiền khấu trừ cho thuế tính bằng đơn vị tiền tệ địa phương. Có thể trống.                                                                                                                                                                                                                                                         |
| **customer_user_id**            | ID người dùng do nhà phát triển cung cấp. Ví dụ: có thể là UUID, email hoặc bất kỳ ID nào khác của người dùng. Null nếu bạn chưa thiết lập.                                                                                                                                                                                          |
| **store**                       | Có thể là _app_store_ hoặc _play_store_.                                                                                                                                                                                                                                                                                               |
| **product_id**                  | ID sản phẩm trên Apple App Store, Google Play Store hoặc Stripe.                                                                                                                                                                                                                                                                       |
| **base_plan_id**                | [ID gói cơ bản](https://support.google.com/googleplay/android-developer/answer/12154973) trên Google Play Store hoặc [ID giá](https://docs.stripe.com/products-prices/how-products-and-prices-work#use-products-and-prices) trên Stripe.                                                                                               |
| **developer_id**                | ID nhà phát triển (SDK) của paywall nơi giao dịch bắt nguồn.                                                                                                                                                                                                                                                                          |
| **ab_test_name**                | Tên A/B test nơi giao dịch bắt nguồn.                                                                                                                                                                                                                                                                                                 |
| **ab_test_revision**            | Phiên bản của A/B test nơi giao dịch bắt nguồn.                                                                                                                                                                                                                                                                                       |
| **paywall_name**                | Tên paywall nơi giao dịch bắt nguồn.                                                                                                                                                                                                                                                                                                  |
| **paywall_revision**            | Phiên bản của paywall nơi giao dịch bắt nguồn.                                                                                                                                                                                                                                                                                        |
| **profile_county**              | Quốc gia của hồ sơ người dùng do Adapty xác định dựa trên địa chỉ IP.                                                                                                                                                                                                                                                                |
| **install_date**                | Ngày cài đặt theo chuẩn ISO 8601.                                                                                                                                                                                                                                                                                                      |
| **idfv**                        | [identifierForVendor](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor) trên thiết bị iOS                                                                                                                                                                                                                  |
| **idfa**                        | [advertisingIdentifier](https://developer.apple.com/documentation/adsupport/asidentifiermanager/advertisingidentifier) trên thiết bị iOS                                                                                                                                                                                               |
| **advertising_id**              | Advertising ID là mã duy nhất do hệ điều hành Android cấp, mà các nhà quảng cáo có thể dùng để nhận dạng thiết bị của người dùng                                                                                                                                                                                                     |
| **ip_address**                  | Địa chỉ IP của thiết bị (có thể là IPv4 hoặc IPv6, ưu tiên IPv4 nếu có). Được cập nhật mỗi khi địa chỉ IP của thiết bị thay đổi.                                                                                                                                                                                                    |
| **cancellation_reason**         | <p>Lý do người dùng hủy gói đăng ký.</p><p></p><p>Có thể là:</p><p>**iOS & Android**  _voluntarily_cancelled_, _billing_error_, _refund_</p><p>**iOS**  _price_increase_, _product_was_not_available_, _unknown_, _upgraded_</p><p>**Android** _new_subscription_replace_, _cancelled_by_developer_</p>                               |
| **android_app_set_id**          | Một [AppSetId](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/appsetid/AppSetId) - ID duy nhất theo thiết bị, theo tài khoản nhà phát triển, có thể đặt lại bởi người dùng, dành cho các trường hợp quảng cáo không liên quan đến kiếm tiền.                                                    |
| **android_id**                  | Trên Android 8.0 (API level 26) và các phiên bản cao hơn, đây là một số 64-bit (biểu diễn dưới dạng chuỗi thập lục phân), duy nhất cho mỗi tổ hợp khóa ký ứng dụng, người dùng và thiết bị. Xem thêm tại [tài liệu dành cho nhà phát triển Android](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID). |
| **device**                      | Tên model thiết bị hiển thị cho người dùng.                                                                                                                                                                                                                                                                                            |
| **currency**                    | Mã tiền tệ 3 chữ cái (ISO-4217) của giao dịch.                                                                                                                                                                                                                                                                                        |
| **store_country**               | Quốc gia của hồ sơ người dùng do Apple/Google store xác định.                                                                                                                                                                                                                                                                         |
| **attribution_source**          | Nguồn attribution.                                                                                                                                                                                                                                                                                                                     |
| **attribution_network_user_id** | ID do nguồn attribution cấp cho người dùng.                                                                                                                                                                                                                                                                                            |
| **attribution_status**          | Có thể là organic, non_organic hoặc unknown.                                                                                                                                                                                                                                                                                           |
| **attribution_channel**         | Tên kênh marketing.                                                                                                                                                                                                                                                                                                                    |
| **attribution_campaign**        | Tên chiến dịch marketing.                                                                                                                                                                                                                                                                                                              |
| **attribution_ad_group**        | Nhóm quảng cáo attribution.                                                                                                                                                                                                                                                                                                            |
| **attribution_ad_set**          | Bộ quảng cáo attribution.                                                                                                                                                                                                                                                                                                              |
| **attribution_creative**        | Từ khóa creative của attribution.                                                                                                                                                                                                                                                                                                      |
| **attributes**                  | JSON của [thuộc tính người dùng tùy chỉnh](setting-user-attributes#custom-user-attributes). Bao gồm các thuộc tính tùy chỉnh mà bạn đã thiết lập để gửi từ ứng dụng mobile. Để gửi, hãy bật tùy chọn **Send User Attributes** trong trang [Integrations -> Webhooks](https://app.adapty.io/integrations/customwebhook).              |
| **integration_ids**             | Tất cả các ID tích hợp liên kết với một hồ sơ người dùng. Dạng từ điển. Ví dụ: &#123;&#39;mixpanel_user_id&#39;: &#39;mixpanelUserId-test&#39;, &#39;facebook_anonymous_id&#39;: &#39;facebookAnonymousId-test&#39;&#125;                                                                                                              |
Here is the table structure for the paywall visits:
| Cột                   | Mô tả                                                                                                                    |
| :-------------------- | :----------------------------------------------------------------------------------------------------------------------- |
| **profile_id**        | ID người dùng Adapty.                                                                                                    |
| **customer_user_id**  | ID người dùng do nhà phát triển đặt. Ví dụ: UUID, email, hoặc bất kỳ ID nào khác. Null nếu bạn chưa thiết lập.          |
| **profile_country**   | Quốc gia của hồ sơ người dùng được xác định bởi cửa hàng Apple/Google.                                                  |
| **install_date**      | Ngày cài đặt theo định dạng ISO 8601.                                                                                    |
| **store**             | Có thể là _app_store_ hoặc _play_store_.                                                                                 |
| **paywall_showed_at** | Ngày paywall được hiển thị cho khách hàng.                                                                               |
| **developer_id**      | ID (SDK) của nhà phát triển cho paywall nơi giao dịch bắt nguồn.                                                         |
| **ab_test_name**      | Tên của A/B test nơi giao dịch bắt nguồn.                                                                                |
| **ab_test_revision**  | Phiên bản của A/B test nơi giao dịch bắt nguồn.                                                                          |
| **paywall_name**      | Tên của paywall nơi giao dịch bắt nguồn.                                                                                 |
| **paywall_revision**  | Phiên bản của paywall nơi giao dịch bắt nguồn.                                                                           |
## Sự kiện và thẻ tag \{#events-and-tags\}

Bạn có thể quản lý dữ liệu nào được truyền qua integration. Integration cung cấp các tùy chọn cấu hình sau:
| Cài đặt                            | Mô tả                                                  |
| :--------------------------------- | :----------------------------------------------------------- |
| **Exclude Historical Events**      | Chọn để loại trừ các sự kiện đã xảy ra trước khi người dùng cài đặt ứng dụng có tích hợp Adapty SDK. Điều này giúp tránh trùng lặp sự kiện và đảm bảo báo cáo chính xác. Ví dụ: nếu người dùng kích hoạt gói đăng ký hàng tháng vào ngày 10 tháng 1 và cập nhật ứng dụng có Adapty SDK vào ngày 6 tháng 3, Adapty sẽ bỏ qua các sự kiện trước ngày 6 tháng 3 và chỉ giữ lại các sự kiện sau đó. |
| **Include events without profile** | Chọn để bao gồm các giao dịch không được liên kết với hồ sơ người dùng trong Adapty. Những giao dịch này có thể bao gồm các sản phẩm mua một lần được thực hiện trước khi cài đặt Adapty SDK hoặc các giao dịch nhận được từ thông báo máy chủ của cửa hàng mà chưa thể liên kết ngay với một người dùng cụ thể. |
| **Send User Attributes**           | Nếu bạn muốn gửi các thuộc tính riêng của người dùng, chẳng hạn như tùy chọn ngôn ngữ, và gói OneSignal của bạn hỗ trợ hơn 10 tag, hãy chọn tùy chọn này. Khi bật tùy chọn này, bạn có thể gửi thêm thông tin ngoài 10 tag mặc định. Lưu ý rằng việc vượt quá giới hạn tag có thể dẫn đến lỗi. |

  <img src="/assets/shared/img/s3-settings.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Bên dưới cài đặt tích hợp, có ba nhóm sự kiện bạn có thể xuất, gửi và lưu trữ trong Amazon S3 từ Adapty. Chỉ cần bật những nhóm bạn cần. Xem danh sách đầy đủ các sự kiện mà Adapty cung cấp [tại đây](events).

  <img src="/assets/shared/img/fd5ccb9-CleanShot_2023-08-17_at_14.49.282x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>