---
title: "Khắc phục sự khác biệt dữ liệu"
description: "Tìm nguyên nhân gây ra sự khác biệt trong dữ liệu"
---

Người dùng Adapty đôi khi gặp phải **sự khác biệt** khi so sánh các tập dữ liệu tương tự từ các nguồn khác nhau. Điều này có thể xảy ra khi bạn so sánh:

    * Biểu đồ Adapty với báo cáo của cửa hàng
    * Biểu đồ Adapty với biểu đồ của bên thứ ba
    * Các biểu đồ khác nhau trong Adapty

## Quy trình khắc phục sự cố \{#troubleshooting-algorithm\}

Hầu hết các sự khác biệt giữa Adapty và các nền tảng khác đều là điều bình thường và có thể dự đoán được. Nguyên nhân là do **các nguồn khác nhau xử lý cùng một dữ liệu theo những cách khác nhau**.

Đôi khi, chúng lại cho thấy **vấn đề với cấu hình Adapty của bạn**.

Nếu bạn nghi ngờ dữ liệu của mình khác nhau giữa các nền tảng, cách tốt nhất là [xuất dữ liệu thô](export-analytics-api-requests) và **so sánh các file**.

* Ngay cả các cửa hàng cũng có thể gặp vấn đề liên quan đến xử lý và hiển thị dữ liệu. Hãy truy cập **dữ liệu giao dịch thô** của cửa hàng để so sánh chính xác nhất.
* Khi so sánh Adapty với nền tảng analytics khác, hãy dùng báo cáo giao dịch của cửa hàng làm nguồn dữ liệu tham chiếu.
* Việc xác định sự khác biệt sẽ dễ hơn với tập dữ liệu nhỏ. Hãy so sánh lượng dữ liệu nhỏ — tập trung vào một sản phẩm cụ thể trong một ngày duy nhất.
* Xác định xem sự khác biệt của bạn xuất phát từ **giá cả** hay **số lượng sự kiện**. Vấn đề về giá có thể được khắc phục bằng cách [cập nhật sản phẩm](#product-pricing). Vấn đề về sự kiện có thể chỉ ra [sự cố phía máy chủ](#issues-with-server-notifications-and-rtdn).
* Xem [event feed](event-feed) để theo dõi các sự kiện đến — bạn có thể nhận thấy những hành vi bất thường.

Sau khi xác định được điểm dữ liệu bắt đầu phân kỳ, bạn có thể tìm hiểu các nguyên nhân phổ biến sau đây:

## Sự cố với thông báo máy chủ và RTDN \{#issues-with-server-notifications-and-rtdn\}

Adapty sẽ không nhận được dữ liệu sự kiện cần thiết nếu bạn chưa cấu hình đúng kết nối cửa hàng. Điều này đặc biệt ảnh hưởng đến các sự kiện xảy ra mà không có sự tham gia trực tiếp của người dùng — gia hạn gói đăng ký, vấn đề thanh toán, v.v.

Hoàn tất cấu hình server-to-server càng sớm càng tốt ([App Store](enable-app-store-server-notifications) | [Play Store](enable-real-time-developer-notifications-rtdn)) và [chờ](#data-delays) để các cửa hàng thiết lập kết nối.

Bạn có thể [tải lên thủ công](importing-historical-data-to-adapty) dữ liệu App Store Connect còn thiếu vào Adapty.

## Dữ liệu bị thiếu \{#missing-data\}

### Người dùng có phiên bản ứng dụng cũ \{#users-with-out-of-date-app-versions\}

Nếu một số người dùng đang chạy phiên bản ứng dụng cũ hơn không có Adapty SDK, Adapty sẽ không nhận được dữ liệu của họ. Vì lý do này, các con số từ Adapty và các nguồn khác sẽ không khớp nhau.

### Vấn đề tích hợp \{#integration-issues\}

Một số tích hợp Adapty (ví dụ: Adjust hoặc AppsFlyer) yêu cầu thêm code trong ứng dụng để hoạt động. Nếu bạn cấu hình Adapty dashboard nhưng không cập nhật ứng dụng, dữ liệu cần thiết sẽ không xuất hiện trong Adapty.

### Thiếu dữ liệu lịch sử \{#missing-historical-data\}

Adapty không có quyền truy cập vào dữ liệu lịch sử của ứng dụng, trừ khi bạn [tự import](importing-historical-data-to-adapty). Nếu [khoảng thời gian](controls-filters-grouping-compare-proceeds#set-the-date-range) của biểu đồ bắt đầu trước khi bạn tích hợp Adapty và bạn chưa import dữ liệu lịch sử, các giá trị sẽ khác với các nguồn khác.

## Độ trễ dữ liệu \{#data-delays\}

Adapty hướng đến việc phân tích gần như theo thời gian thực nền kinh tế ứng dụng của bạn. Các giới hạn và ngoại lệ sau đây áp dụng:

* Khi bạn tích hợp Adapty lần đầu, dữ liệu có thể không xuất hiện ngay lập tức.
* Khi bạn bật tích hợp với nền tảng bên thứ ba, có thể có độ trễ trước khi dữ liệu được đồng bộ hoàn toàn.
* Sau khi Adapty nhận được dữ liệu cửa hàng, cần thêm **15-30 phút** để xử lý và hiển thị trên trang Analytics.
* Trao đổi dữ liệu giữa Adapty và bên thứ ba **không phải lúc nào cũng tức thì** do số lượng các biến số liên quan.
* Các tính toán cho một số chỉ số nâng cao (chẳng hạn như [dự đoán cohort](predicted-ltv-and-revenue)) yêu cầu một lượng dữ liệu nhất định. Adapty sẽ chỉ thực hiện các tính toán này khi thu thập đủ dữ liệu.

## Thời gian và lịch \{#time-and-calendar\}

#### Ngày và múi giờ \{#dates-and-timezones\}

Một trong những lý do phổ biến nhất gây ra sự khác biệt dữ liệu là sự khác nhau trong cài đặt múi giờ.

Adapty tính ngày theo múi giờ `UTC`. Nếu nền tảng khác sử dụng múi giờ khác, các tính toán sẽ không giống nhau. Sự khác biệt sẽ giảm dần khi bạn mở rộng phạm vi thời gian.

Bạn có thể [thay đổi cài đặt múi giờ](general#3-reporting-timezone) cho từng ứng dụng.

#### Lịch tài chính của Apple \{#the-apple-fiscal-calendar\}

Apple sử dụng [lịch kế toán](https://adapty.io/apple-fiscal-calendar/) riêng để xác định kỳ bán hàng và ngày thanh toán.

Mỗi "tháng" trong lịch này gồm **4 hoặc 5 tuần**, và **có thể bao gồm các ngày từ các tháng lịch kề nhau**. Các khoản thanh toán thường được thực hiện trong vòng 30–45 ngày sau khi kỳ bán hàng kết thúc.

Ví dụ: kỳ bán hàng "tháng 1 năm 2026" bắt đầu vào ngày 28 tháng 12 năm 2025 — 4 ngày trước khi tháng lịch bắt đầu. Ngày thanh toán ước tính cho kỳ này là ngày 5 tháng 3.

Đừng so sánh dữ liệu từ báo cáo thanh toán của Apple với các tháng lịch. Thay vào đó, hãy chọn [khoảng ngày tùy chỉnh](controls-filters-grouping-compare-proceeds#set-the-date-range) tương ứng với kỳ bán hàng cần thiết.

#### Ngày giao dịch \{#transaction-dates\}

Một số dịch vụ (ví dụ: AppsFlyer) có thể áp dụng quy tắc [cohort](analytics-cohorts) khi hiển thị giao dịch, và gán chúng cho ngày cài đặt ứng dụng thay vì ngày giao dịch thực tế xảy ra.

## Tính toán doanh thu \{#revenue-calculation\}

### Phí và thuế \{#fees-and-taxes\}

Tùy thuộc vào [cài đặt](controls-filters-grouping-compare-proceeds#display-gross-or-net-revenue), biểu đồ Adapty có thể hiển thị **doanh thu gộp**, **doanh thu sau khi trừ hoa hồng cửa hàng**, hoặc **doanh thu sau khi trừ hoa hồng cửa hàng và thuế**.

Một số cửa hàng và nền tảng bên thứ ba có thể không có khả năng hiển thị doanh thu gộp hoặc tự động khấu trừ thuế. Nếu bạn thấy sự khác biệt giữa hai biểu đồ doanh thu khác nhau, hãy đảm bảo rằng việc so sánh là hợp lệ.

### Hủy và hoàn tiền \{#cancellations-and-refunds\}

Các nền tảng khác nhau hiển thị dữ liệu hoàn tiền theo những cách khác nhau. Adapty xử lý hoàn tiền như doanh thu âm. Nếu người dùng đăng ký và yêu cầu hoàn tiền vào ngày hôm sau, cả hai sự kiện đều sẽ được phản ánh trong biểu đồ Adapty — mỗi sự kiện vào ngày riêng của nó. Các nền tảng khác có thể trừ giá trị hoàn tiền khỏi giao dịch gốc.

## Giao dịch sandbox \{#sandbox-purchases\}

[Event feed](event-feed) hiển thị các giao dịch được thực hiện bởi tài khoản sandbox. Các biểu đồ analytics thì không. Tuy nhiên, nếu dữ liệu import lịch sử của bạn có chứa giao dịch sandbox, Adapty sẽ không thể phân biệt chúng, và các biểu đồ sẽ phản ánh các giao dịch sandbox trong lịch sử.

## Lượt cài đặt và tải xuống \{#installs-and-downloads\}

Các cửa hàng (đặc biệt là Apple App Store) có thể theo dõi trực tiếp lượt tải xuống của người dùng. Số liệu thống kê của họ có thể bao gồm các trường hợp ứng dụng đã được cài đặt nhưng chưa bao giờ được khởi chạy.

Adapty chỉ có thể ghi nhận một lượt cài đặt khi người dùng khởi chạy ứng dụng, bất kể [định nghĩa cài đặt](general#4-installs-definition-for-analytics) của bạn là gì.

## Quốc gia và cửa hàng \{#country-and-store\}

Để đảm bảo báo cáo chính xác, Adapty [có thể suy luận](controls-filters-grouping-compare-proceeds#filter-and-group-data) quốc gia của người dùng từ IP của họ. Các cửa hàng luôn gán lượt tải xuống và giao dịch cho một app store cụ thể.

Nếu bạn cần phân biệt rõ ràng giữa hai điều này, bạn có thể [tạo phân khúc người dùng mới](segments) với thuộc tính `Country by store account` và [lọc analytics theo phân khúc](controls-filters-grouping-compare-proceeds#filter-and-group-data).

## Giá sản phẩm \{#product-pricing\}

Nếu giá sản phẩm không chính xác gây ra sự khác biệt doanh thu, việc thay đổi giá sẽ không sửa lại các giao dịch cũ. Để thay đổi giá của các giao dịch hiện có, bạn cần ghi đè bắt buộc bằng cách import dữ liệu chính xác.

Khi người dùng khôi phục một giao dịch cũ sau khi giá thay đổi, Apple có thể báo cáo sai giá trị của giao dịch đó. Bạn cần import dữ liệu lịch sử để Adapty phản ánh đúng giá trị.

## Xung đột attribution \{#attribution-conflicts\}

Adapty chỉ có thể sử dụng [một nguồn attribution duy nhất](attribution-integration#prevent-data-issues) cho mỗi giao dịch. Bạn không thể ghi đè dữ liệu này sau đó.

Nếu thiết lập của bạn bao gồm nhiều nhà cung cấp attribution không đồng nhất với nhau, cùng một giao dịch trên hai nền tảng khác nhau có thể xuất hiện với hai nguồn traffic khác nhau.

## Sự khác biệt trong thuật ngữ \{#differences-in-terminology\}

Các nền tảng khác nhau có thể có tên gọi khác nhau cho cùng một khái niệm. Các chỉ số liên quan đến [doanh thu](#fees-and-taxes) có tên gọi khác nhau tùy nền tảng:

| Adapty | App Store Connect | Google Play Console |
|--------|-------------------|----------------------|
| **Gross revenue** | Sales | Gross Revenue |
| **Proceeds after store commission** | N/A | N/A |
| **Proceeds after store commission and taxes** | Proceeds | Earnings |
| **ARPPU** | Proceeds per paying user | ARPPU |

Các chỉ số khác cũng có thể khác nhau về định nghĩa:

- **Gói đăng ký**:
        - Adapty không tính các lượt dùng thử mới là gói đăng ký. Một [gói đăng ký mới](reactivated-subscriptions) luôn bắt đầu bằng một giao dịch tài chính.
        - Các nền tảng khác, chẳng hạn như Google Play Console, có thể tính **mỗi lượt dùng thử là một gói đăng ký mới**, ngay cả trước khi thanh toán đầu tiên được thực hiện.
- **Tỷ lệ giữ chân**:
        - Adapty đo tỷ lệ giữ chân dựa trên số lần gia hạn gói đăng ký.
        - App Store Connect coi người dùng là được giữ lại nếu họ mở ứng dụng vào ngày được chỉ định. Người dùng không có gói đăng ký vẫn được tính, nhưng người dùng có gói đăng ký mà không mở ứng dụng vào ngày đó sẽ không được tính.
        - Chỉ số "Retained Installers" của Google Play Console đo tỷ lệ giữ chân dựa trên số ngày ứng dụng vẫn còn được cài đặt trên thiết bị của người dùng. Người dùng không mở ứng dụng vẫn được tính vào chỉ số này.

## Chỉ số gói đăng ký mới so với sự kiện `subscription_started` \{#new-subscriptions-metric-vs-the-subscription_started-event\}

Chỉ số [Gói đăng ký mới](reactivated-subscriptions) và [sự kiện tích hợp](events) `subscription_started` đếm những thứ khác nhau, vì vậy tổng số của chúng không khớp nhau. Chỉ số này đếm cả các giao dịch mua đầu tiên không qua dùng thử lẫn các lượt chuyển đổi từ dùng thử sang trả phí. Sự kiện `subscription_started` chỉ kích hoạt cho các giao dịch mua đầu tiên không qua dùng thử — khi dùng thử chuyển sang trả phí, Adapty gửi `trial_converted` thay thế. Kết quả là, số lượng gói đăng ký mới sẽ cao hơn số sự kiện `subscription_started` bất cứ khi nào ứng dụng của bạn có lượt chuyển đổi từ dùng thử.