ÿÿ Cách Hồ SÆ¡ Ngưá»i Dùng Adapty Hoạt Äá»™ng | Tài liệu Adapty

Cách hồ sÆ¡ ngưá»i dùng hoạt động

Má»—i ngưá»i dùng trong ứng dụng cá»§a bạn Ä‘á»u có má»™t hồ sÆ¡ ngưá»i dùng Adapty để theo dõi các giao dịch mua, sá»± kiện và trạng thái gói đăng ký. Hiểu cách hồ sÆ¡ được tạo và liên kết giúp bạn ngăn ngừa lá»—i tích hợp, tránh phân mảnh dữ liệu, và diá»…n giải dữ liệu trong phần Profiles.

Tạo hồ sơ

Adapty tá»± động tạo hồ sÆ¡ lần đầu tiên ngưá»i dùng mở ứng dụng cá»§a bạn.

Không có Customer User ID, hồ sơ là ẩn danh. Một hồ sơ ẩn danh mới được tạo mỗi khi:

  • Ngưá»i dùng cài lại ứng dụng
  • Ngưá»i dùng đăng xuất khá»i ứng dụng cá»§a bạn (khi ứng dụng gá»i Adapty.logout())

Các giao dịch mua được gắn vá»›i lần cài đặt ứng dụng, chứ không phải vá»›i danh tính ngưá»i dùng cố định.

Vá»›i Customer User ID, hồ sÆ¡ tồn tại xuyên suốt các lần cài lại và trên nhiá»u thiết bị. Sá»­ dụng customer user ID cho phép bạn:

  1. Theo dõi ngưá»i dùng qua các lần cài lại ứng dụng và nhiá»u thiết bị.
  2. Tìm ngưá»i dùng theo customer user ID cá»§a há» trong phần Profiles.
  3. Sử dụng customer user ID trong server-side API.
  4. Adapty gửi customer user ID đến tất cả các tích hợp.

Hành vi hồ sÆ¡ vá»›i customer user ID phụ thuá»™c vào thá»i Ä‘iểm bạn thiết lập nó:

  • Khi kích hoạt SDK: Adapty sá»­ dụng hồ sÆ¡ hiện có vá»›i customer user ID đó (cho ngưá»i dùng cÅ©) hoặc tạo hồ sÆ¡ má»›i (cho ngưá»i dùng lần đầu).
  • Sau khi kích hoạt SDK: Adapty tạo hồ sÆ¡ ẩn danh khi kích hoạt. Khi bạn xác định danh tính ngưá»i dùng sau đó, Adapty liên kết customer user ID vá»›i hồ sÆ¡ ẩn danh (cho ngưá»i dùng lần đầu) hoặc chuyển sang hồ sÆ¡ hiện có vá»›i ID đó (cho ngưá»i dùng cÅ©).

Nên dùng cách nào:

  • Customer user ID có sẵn khi khởi động ứng dụng (ví dụ: lưu từ phiên trước) — truyá»n vào activate() khi khởi tạo SDK.
  • Ngưá»i dùng đăng nhập sau khi ứng dụng khởi động — gá»i identify() sau khi xác thá»±c. Adapty liên kết ID vá»›i hồ sÆ¡ hiện tại (nếu ID má»›i) hoặc chuyển sang hồ sÆ¡ hiện có (nếu ID đã tồn tại).
  • Ngưá»i dùng có thể mua trước khi đăng nhập — gá»i identify() sau khi đăng nhập. Nếu customer user ID đã tồn tại trong Adapty, hãy lấy lại hồ sÆ¡ sau đó để đồng bá»™ mức độ truy cập hiện tại.

Äể biết chi tiết triển khai, xem hướng dẫn SDK vá» xác định danh tính ngưá»i dùng.

Nếu ngưá»i dùng cÅ© trước đây đã dùng ứng dụng cá»§a bạn mà không có customer user ID, những hồ sÆ¡ ẩn danh đó sẽ không được tá»± động gá»™p khi bạn bắt đầu xác định danh tính tại thá»i Ä‘iểm kích hoạt SDK. Äể duy trì lịch sá»­ đầy đủ cho những ngưá»i dùng như vậy, hãy dùng identify() sau khi đăng nhập thay thế.

Hồ sơ parent và inheritor

Khi cùng má»™t gói đăng ký phía cá»­a hàng được liên kết vá»›i nhiá»u hÆ¡n má»™t hồ sÆ¡ ngưá»i dùng Adapty, Adapty coi các hồ sÆ¡ đó là má»™t chuá»—i: má»™t hồ sÆ¡ parent và má»™t hoặc nhiá»u hồ sÆ¡ inheritor chia sẻ quyá»n truy cập từ cùng má»™t giao dịch mua.

Äiá»u này xảy ra khi:

  • Chia sẻ quyá»n truy cập có trả phí giữa các tài khoản ngưá»i dùng được bật và ngưá»i dùng đăng nhập trên thiết bị nÆ¡i má»™t hồ sÆ¡ khác đã thá»±c hiện giao dịch mua trước đó.
  • Ngưá»i dùng cài lại ứng dụng mà không có customer_user_id, và hồ sÆ¡ má»›i tiếp nhận giao dịch mua từ lần cài đặt trước.
  • Các ngưá»i dùng đã xác định danh tính khác nhau khôi phục giao dịch mua trên cùng má»™t thiết bị.
  • Ứng dụng được chuyển giữa các Apple Team ID và ứng dụng má»›i tiếp nhận các giao dịch mua thá»±c hiện dưới Team ID cÅ©.

Cách chá»n parent.

Parent là hồ sÆ¡ đầu tiên ghi nhận giao dịch mua — được xác định theo thứ tá»± receipt mua trong Adapty, không phải theo thứ tá»± tạo hồ sÆ¡. Ví dụ: bạn cài ứng dụng và không mua gì, sau đó cài lại và mua gói đăng ký. Hồ sÆ¡ thứ hai trở thành parent vì nó thá»±c hiện giao dịch mua. Hồ sÆ¡ đầu tiên trở thành inheritor và được cấp quyá»n truy cập thông qua tính năng chia sẻ.

Cách phân phối sự kiện:

  • Sá»± kiện giao dịch (mua hàng, gia hạn, há»§y, vấn đỠthanh toán, thá»i gian ân hạn, hoàn tiá»n): Chỉ xuất hiện trên hồ sÆ¡ parent đã thá»±c hiện giao dịch mua. Tất cả các lần gia hạn và cập nhật gói đăng ký tiếp tục xuất hiện trên hồ sÆ¡ này.
  • Sá»± kiện access_level_updated: Xuất hiện trên cả hồ sÆ¡ parent lẫn inheritor bất cứ khi nào trạng thái mức độ truy cập thay đổi. Äiá»u này giúp tất cả các hồ sÆ¡ được kết nối luôn cập nhật vá» trạng thái truy cập hiện tại.

Hồ sơ parent hiển thị toàn bộ lịch sử giao dịch. Các hồ sơ inheritor chỉ hiển thị các cập nhật mức độ truy cập của hỠvà một liên kết đến hồ sơ parent trong phần Access level.

98d0dad-non-original_profile.webp

Theo dõi cùng má»™t gói đăng ký trên nhiá»u hồ sÆ¡.

Má»—i hồ sÆ¡ inheritor có profile_id riêng, vì vậy profile_id không ổn định xuyên suốt má»™t chuá»—i. Äể xác định cùng má»™t gói đăng ký trên nhiá»u hồ sÆ¡ — ví dụ, khi đối chiếu các sá»± kiện webhook hoặc khá»›p hồ sÆ¡ dashboard vá»›i má»™t ngưá»i dùng cÆ¡ bản — hãy dùng mã định danh phía cá»­a hàng thay thế.

Trưá»ngDùng để
store_original_transaction_idXác định chuá»—i gói đăng ký trên nhiá»u hồ sÆ¡. Duy nhất cho má»—i gói đăng ký Apple.
profiles_sharing_access_level (trưá»ng webhook)Tất cả các hồ sÆ¡ hiện Ä‘ang được cấp quyá»n bởi gói đăng ký, khi tính năng chia sẻ được bật.
profile_idKhông phù hợp để theo dõi xuyên hồ sơ — mỗi inheritor có profile_id riêng.

Giao dịch không có hồ sơ

Má»™t số giao dịch trong Adapty không được gắn vá»›i hồ sÆ¡ nào — chúng xuất hiện trong phân tích và xuất dữ liệu nhưng không xuất hiện trong danh sách Profiles. Äiá»u này xảy ra vá»›i các thông báo cá»­a hàng server-to-server (S2S) được gá»­i cho những ngưá»i dùng mà tài khoản cá»§a há» chưa bao giá» kết nối vá»›i ứng dụng cá»§a bạn thông qua Adapty SDK. Các nguồn đã biết bao gồm:

  • Thông báo S2S cá»§a App Store (bao gồm sá»± kiện hoàn tiá»n)
  • Thông báo S2S cá»§a Google Play
  • Sá»± kiện webhook cá»§a Stripe và Paddle

Các giao dịch này:

  • Xuất hiện trong biểu đồ phân tích (chúng được tính vào tổng chỉ số)
  • Xuất hiện trong xuất dữ liệu (S3, GCS, BigQuery) vá»›i profile_id được đặt là null
  • Không xuất hiện trong danh sách Profiles — không có hồ sÆ¡ nào để gắn vào

Nếu bạn thấy nhiá»u sá»± kiện hÆ¡n trong phân tích hoặc xuất dữ liệu so vá»›i những gì bạn có thể tìm thấy trong giao diện Profiles, sá»± khác biệt đó có thể là do các giao dịch không có hồ sÆ¡ này. Äể tìm chúng trong má»™t bản xuất, hãy lá»c các hàng có profile_id IS NULL.

Chia sẻ quyá»n truy cập có trả phí giữa các tài khoản ngưá»i dùng

Äể thiết lập chính sách chia sẻ mức độ truy cập, trên trang cài đặt General, hãy chá»n má»™t tùy chá»n chia sẻ. Bạn có thể đặt chính sách riêng cho môi trưá»ng sandbox.

Enabled (mặc định)

Ngưá»i dùng đã xác định (những ngưá»i có Customer User ID) có thể chia sẻ cùng má»™t mức độ truy cập do Adapty cung cấp nếu thiết bị cá»§a hỠđăng nhập vào cùng má»™t Apple/Google ID. Äiá»u này hữu ích khi ngưá»i dùng cài lại ứng dụng và đăng nhập bằng email khác — há» vẫn có thể truy cập vào giao dịch mua trước đó. Vá»›i tùy chá»n này, nhiá»u ngưá»i dùng đã xác định có thể dùng chung má»™t mức độ truy cập.

Dù mức độ truy cập được chia sẻ, tất cả các giao dịch trong quá khứ và tương lai vẫn được ghi lại dưới dạng sá»± kiện trong Customer User ID gốc để đảm bảo tính nhất quán cá»§a dữ liệu phân tích và lưu giữ toàn bá»™ lịch sá»­ giao dịch — bao gồm thá»i gian dùng thá»­, mua gói đăng ký, gia hạn, v.v., Ä‘á»u được liên kết vá»›i cùng má»™t hồ sÆ¡ ngưá»i dùng.

Transfer access to new user

Ngưá»i dùng đã xác định vẫn có thể tiếp tục truy cập mức độ truy cập do Adapty cung cấp, ngay cả khi hỠđăng nhập bằng Customer User ID khác hoặc cài lại ứng dụng, miá»…n là thiết bị đăng nhập vào cùng má»™t Apple/Google ID.

Khác vá»›i tùy chá»n trước, Adapty sẽ chuyển giao dịch mua giữa các ngưá»i dùng đã xác định. Äiá»u này đảm bảo ná»™i dung đã mua vẫn khả dụng, nhưng chỉ má»™t ngưá»i dùng có thể truy cập tại má»™t thá»i Ä‘iểm. Ví dụ: nếu UserA mua gói đăng ký và UserB đăng nhập trên cùng thiết bị đó và khôi phục giao dịch, UserB sẽ được cấp quyá»n truy cập gói đăng ký đó, còn UserA sẽ bị thu hồi.

Nếu má»™t trong hai ngưá»i dùng (má»›i hoặc cÅ©) chưa được xác định, mức độ truy cập vẫn sẽ được chia sẻ giữa các hồ sÆ¡ ngưá»i dùng đó trong Adapty.

Dù mức độ truy cập được chuyển giao, tất cả các giao dịch trong quá khứ và tương lai vẫn được ghi lại dưới dạng sá»± kiện trong Customer User ID gốc để đảm bảo tính nhất quán cá»§a dữ liệu phân tích và lưu giữ toàn bá»™ lịch sá»­ giao dịch — bao gồm thá»i gian dùng thá»­, mua gói đăng ký, gia hạn, v.v., Ä‘á»u được liên kết vá»›i cùng má»™t hồ sÆ¡ ngưá»i dùng.

Sau khi chuyển sang Transfer access to new user, mức độ truy cập sẽ không được chuyển ngay lập tức giữa các hồ sÆ¡ ngưá»i dùng. Quá trình chuyển giao cho từng mức độ truy cập cụ thể chỉ được kích hoạt khi Adapty nhận được sá»± kiện từ cá»­a hàng, chẳng hạn như gia hạn gói đăng ký, khôi phục, hoặc khi xác thá»±c giao dịch.

Disabled

Hồ sÆ¡ ngưá»i dùng đã xác định đầu tiên được cấp mức độ truy cập sẽ giữ nó mãi mãi. Äây là lá»±a chá»n tốt nhất nếu logic nghiệp vụ cá»§a bạn yêu cầu giao dịch mua phải được gắn vá»›i má»™t Customer User ID duy nhất.

Lưu ý rằng mức độ truy cập vẫn được chia sẻ giữa các ngưá»i dùng ẩn danh.

Bạn có thể “gỡ liên kết†giao dịch mua bằng cách xóa hồ sÆ¡ ngưá»i dùng cá»§a chá»§ sở hữu. Sau khi xóa, mức độ truy cập sẽ khả dụng cho hồ sÆ¡ ngưá»i dùng đầu tiên yêu cầu nó, dù là ẩn danh hay đã xác định.

Việc tắt chia sẻ chỉ ảnh hưởng đến ngưá»i dùng má»›i. Các gói đăng ký đã được chia sẻ giữa ngưá»i dùng sẽ tiếp tục được chia sẻ ngay cả sau khi tắt tùy chá»n này.

Apple và Google yêu cầu in-app purchase phải được chia sẻ hoặc chuyển giao giữa các ngưá»i dùng vì há» dá»±a vào Apple/Google ID để liên kết giao dịch mua. Nếu không có chia sẻ, viÿÿệc khôi phục giao dịch mua có thể không hoạt động sau khi cài lại ứng dụng.

Tắt chia sẻ có thể khiến ngưá»i dùng không thể lấy lại quyá»n truy cập sau khi đăng nhập.

Chúng tôi khuyến nghị chỉ tắt chia sẻ nếu ngưá»i dùng cá»§a bạn bắt buá»™c phải đăng nhập trước khi thá»±c hiện giao dịch mua. Nếu không, má»™t ngưá»i dùng đã xác định có thể mua gói đăng ký, đăng nhập vào tài khoản khác và mất quyá»n truy cập vÄ©nh viá»…n.

Tôi nên chá»n cài đặt nào?

Ứng dụng cá»§a tôi…Tùy chá»n nên chá»n
Không có hệ thống đăng nhập và chỉ sá»­ dụng ID hồ sÆ¡ ngưá»i dùng ẩn danh cá»§a Adapty.Dùng tùy chá»n mặc định, vì mức độ truy cập luôn được chia sẻ giữa các ID hồ sÆ¡ ngưá»i dùng ẩn danh cho cả ba tùy chá»n.
Có hệ thống đăng nhập tùy chá»n và cho phép khách hàng mua trước khi tạo tài khoản.Chá»n Transfer access to new user để đảm bảo những khách hàng mua khi chưa có tài khoản vẫn có thể khôi phục giao dịch sau này.
Yêu cầu khách hàng tạo tài khoản trước khi mua, nhưng cho phép giao dịch mua được liên kết vá»›i nhiá»u Customer User ID.Chá»n Transfer access to new user để đảm bảo chỉ má»™t Customer User ID có quyá»n truy cập tại má»™t thá»i Ä‘iểm, đồng thá»i vẫn cho phép ngưá»i dùng đăng nhập bằng Customer User ID khác mà không mất quyá»n truy cập đã trả phí.
Yêu cầu khách hàng tạo tài khoản trước khi mua, vá»›i quy tắc nghiêm ngặt ràng buá»™c giao dịch mua vá»›i má»™t Customer User ID duy nhất.Chá»n Disabled để đảm bảo giao dịch không bao giỠđược chuyển giao giữa các tài khoản.

Dấu thá»i gian sá»± kiện có ngày trong tương lai (Apple/iOS)

Hành vi này chỉ xảy ra với Apple App Store. Hệ thống thông báo của Google Play không gửi sự kiện trước.

Dấu thá»i gian sá»± kiện trong hồ sÆ¡ và tích hợp có thể hiển thị ngày trong tương lai vì Apple gá»­i sá»± kiện gia hạn trước.

  • Lý do xảy ra: Apple làm Ä‘iá»u này để đảm bảo gói đăng ký gia hạn tá»± động trước khi hết hạn, ngăn ngừa gián Ä‘oạn dịch vụ cho ngưá»i dùng. Äể biết thêm chi tiết, xem Diá»…n đàn nhà phát triển Apple: Server Notifications for Subscriptions.
  • Các loại sá»± kiện bị ảnh hưởng: Thông thưá»ng, Ä‘iá»u này áp dụng cho các lần gia hạn gói đăng ký và chuyển đổi từ dùng thá»­ sang trả phí. Các sá»± kiện này có thể có dấu thá»i gian trong tương lai vì Apple thông báo cho hệ thống vá» chúng trước.
  • Các loại sá»± kiện khác: Các in-app purchase bổ sung và thay đổi gói đăng ký được ghi lại vá»›i dấu thá»i gian thá»±c tế vì những sá»± kiện này không thể được dá»± Ä‘oán trước.
  • Ảnh hưởng đến Analytics và Event Feed: Các sá»± kiện này sẽ chỉ xuất hiện trong Analytics và Event Feed sau khi dấu thá»i gian cá»§a chúng đã qua. Các sá»± kiện có dấu thá»i gian trong tương lai không hiển thị trong cả hai phần.
  • Ảnh hưởng đến Integrations: Adapty gá»­i sá»± kiện đến các tích hợp ngay khi nhận được. Nếu má»™t sá»± kiện có dấu thá»i gian trong tương lai, Adapty gá»­i nó đến tích hợp cá»§a bạn vá»›i dấu thá»i gian trong tương lai không thay đổi.

Bước tiếp theo

ÿÿÿÿ