ÿÿ Xác định ngưá»i dùng | Capacitor SDK | Tài liệu Adapty

Xác định ngưá»i dùng trong Capacitor SDK

Adapty tạo má»™t ID hồ sÆ¡ ná»™i bá»™ cho má»—i ngưá»i dùng. Tuy nhiên, nếu bạn có hệ thống xác thá»±c riêng, bạn nên thiết lập Customer User ID cá»§a chính mình. Bạn có thể tìm ngưá»i dùng theo Customer User ID cá»§a há» trong phần Profiles và sá»­ dụng nó trong server-side API, ID này sẽ được gá»­i đến tất cả các tích hợp.

Thiết lập customer user ID khi cấu hình

Nếu bạn đã có user ID trong quá trình cấu hình, chỉ cần truyá»n nó dưới dạng tham số customerUserId vào phương thức .activate():


try {
  await adapty.activate({
    apiKey: 'YOUR_PUBLIC_SDK_KEY',
    params: {
      customerUserId: 'YOUR_USER_ID'
    }
  });
} catch (error) {
  console.error('Failed to activate Adapty:', error);
}

Thiết lập customer user ID sau khi cấu hình

Nếu bạn chưa có user ID khi cấu hình SDK, bạn có thể thiết lập nó sau bất kỳ lúc nào bằng phương thức .identify(). Trưá»ng hợp phổ biến nhất để sá»­ dụng phương thức này là sau khi đăng ký hoặc đăng nhập, khi ngưá»i dùng chuyển từ trạng thái ẩn danh sang ngưá»i dùng đã xác thá»±c.


try {
  await adapty.identify({ customerUserId: 'YOUR_USER_ID' });
  console.log('User identified successfully');
} catch (error) {
  console.error('Failed to identify user:', error);
}

Tham số yêu cầu:

Tham sốBắt buộcMô tả
customerUserIdbắt buá»™cChuá»—i định danh ngưá»i dùng.

Gá»­i lại dữ liệu quan trá»ng cá»§a ngưá»i dùng

Trong má»™t số trưá»ng hợp, chẳng hạn khi ngưá»i dùng đăng nhập lại vào tài khoản cá»§a há», máy chá»§ cá»§a Adapty đã có thông tin vá» ngưá»i dùng đó. Trong những tình huống này, Adapty SDK sẽ tá»± động chuyển sang làm việc vá»›i ngưá»i dùng má»›i. Nếu bạn đã truyá»n dữ liệu nào đó cho ngưá»i dùng ẩn danh, chẳng hạn như các thuá»™c tính tùy chỉnh hoặc attribution từ các mạng bên thứ ba, bạn nên gá»­i lại dữ liệu đó cho ngưá»i dùng đã xác định.

Äiá»u quan trá»ng cần lưu ý là bạn nên yêu cầu lại tất cả các paywall và sản phẩm sau khi xác định ngưá»i dùng, vì dữ liệu cá»§a ngưá»i dùng má»›i có thể khác.

Äăng xuất và đăng nhập

Bạn có thể đăng xuất ngưá»i dùng bất kỳ lúc nào bằng cách gá»i phương thức .logout():


try {
  await adapty.logout();
  console.log('User logged out successfully');
} catch (error) {
  console.error('Failed to logout user:', error);
}

Sau đó, bạn có thể đăng nhập ngưá»i dùng bằng phương thức .identify().

Gán appAccountToken (iOS)

appAccountToken là má»™t UUID cho phép bạn liên kết các giao dịch App Store vá»›i danh tính ngưá»i dùng ná»™i bá»™ cá»§a bạn.
StoreKit gắn token này vá»›i má»i giao dịch, nhỠđó backend cá»§a bạn có thể khá»›p dữ liệu App Store vá»›i ngưá»i dùng cá»§a bạn.

Hãy sá»­ dụng má»™t UUID ổn định được tạo cho má»—i ngưá»i dùng và tái sá»­ dụng nó cho cùng má»™t tài khoản trên các thiết bị. Äiá»u này đảm bảo rằng các giao dịch mua và thông báo App Store được liên kết chính xác.

Bạn có thể thiết lập token theo hai cách – trong quá trình kích hoạt SDK hoặc khi xác định ngưá»i dùng.

Bạn phải luôn truyá»n appAccountToken cùng vá»›i customerUserId. Nếu bạn chỉ truyá»n token, nó sẽ không được đưa vào giao dịch.

// During configuration:
await adapty.activate({
    apiKey: 'YOUR_PUBLIC_SDK_KEY',
    params: {
        customerUserId: 'YOUR_USER_ID',
        ios: { appAccountToken: "YOUR_APP_ACCOUNT_TOKEN" },
    }
});
// Or when identifying users
await adapty.identify({
    customerUserId: 'YOUR_USER_ID',
    params: {
        ios: { appAccountToken: 'YOUR_APP_ACCOUNT_TOKEN' },
    }
});

Thiết lập obfuscated account ID (Android)

Google Play yêu cầu obfuscated account ID cho má»™t số trưá»ng hợp sá»­ dụng nhất định nhằm tăng cưá»ng quyá»n riêng tư và bảo mật cho ngưá»i dùng. Các ID này giúp Google Play xác định các giao dịch mua trong khi vẫn giữ thông tin ngưá»i dùng ẩn danh, Ä‘iá»u này đặc biệt quan trá»ng để ngăn chặn gian lận và phân tích.

Bạn có thể cần thiết lập các ID này nếu ứng dụng cá»§a bạn xá»­ lý dữ liệu ngưá»i dùng nhạy cảm hoặc nếu bạn phải tuân thá»§ các quy định vá» quyá»n riêng tư cụ thể. Các ID obfuscated cho phép Google Play theo dõi các giao dịch mua mà không để lá»™ định danh ngưá»i dùng thá»±c tế.

// During configuration:
await adapty.activate({
  apiKey: 'YOUR_PUBLIC_SDK_KEY',
  params: {
    android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' },
  }
});
// Or when identifying users
await adapty.identify({
    customerUserId: 'YOUR_USER_ID',
    params: {
        android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' },
    }
});

Phát hiện ngưá»i dùng trên nhiá»u thiết bị

Khi SDK được kích hoạt, nó tá»± động Ä‘á»c các quyá»n hiện có cá»§a ngưá»i dùng từ StoreKit (iOS) hoặc Google Play Billing (Android) và đồng bá»™ chúng vá»›i backend cá»§a Adapty. Má»™t gói đăng ký Ä‘ang hoạt động sẽ xuất hiện trên hồ sÆ¡ ngưá»i dùng Adapty mà không cần ứng dụng gá»i restorePurchases.

Äiá»u không xảy ra tá»± động là nhận diện rằng má»™t hồ sÆ¡ ngưá»i dùng trên thiết bị má»›i thuá»™c vá» cùng má»™t ngưá»i dùng như hồ sÆ¡ trên thiết bị ban đầu. Adapty khá»›p các hồ sÆ¡ ngưá»i dùng theo Customer User ID, vì vậy tính liên tục danh tính phụ thuá»™c vào những gì bạn sá»­ dụng làm CUID.

Những gì Adapty có thể phát hiện trên nhiá»u thiết bị

Cài đặt của bạnAdapty phát hiện được gìBạn phải làm gì
Customer User ID = device_id (không đăng nhập ứng dụng)Thiết bị má»›i nhận được CUID khác và do đó có hồ sÆ¡ ngưá»i dùng khác. Gói đăng ký đồng bá»™ vá»›i hồ sÆ¡ ngưá»i dùng má»›i thông qua sá»± kiện Access level updated, nhưng subscription_started không kích hoạt — hồ sÆ¡ ngưá»i dùng má»›i được coi là ngưá»i kế thừa cá»§a giao dịch mua ban đầu. Các phân tích dá»±a trên subscription_started sẽ đếm thiếu những ngưá»i dùng quay lại.Sá»­ dụng ID tài khoản ổn định làm Customer User ID để ngưá»i dùng quay lại khá»›p vá»›i hồ sÆ¡ ngưá»i dùng hiện có trên các thiết bị.
Customer User ID = ID tài khoản ổn định (đăng nhập trên má»i thiết bị)SDK tá»± động đồng bá»™ gói đăng ký khi activate(), và identify() khá»›p hồ sÆ¡ ngưá»i dùng hiện có theo CUID.Không cần cài đặt thêm — cả danh tính lÿÿẫn gói đăng ký Ä‘á»u được xá»­ lý tá»± động.
Ngưá»i kế thừa Apple Family SharingThành viên gia đình nhận gói đăng ký thông qua sá»± kiện Access level updated — subscription_started không kích hoạt.Lắng nghe sá»± kiện Access level updated. Xem Apple Family Sharing để biết ma trận sá»± kiện đầy đủ.
Cùng tài khoản Apple/Google, ngưá»i dùng khác nhau trong ứng dụngHồ sÆ¡ ngưá»i dùng đầu tiên ghi lại giao dịch mua trở thành hồ sÆ¡ cha. Các hồ sÆ¡ ngưá»i dùng tiếp theo thấy gói đăng ký thông qua chuá»—i kế thừa, vá»›i má»™t sá»± kiện Access level updated.Yêu cầu đăng nhập, sau đó chá»n chế độ chia sẻ phù hợp vá»›i mô hình cá»§a bạn.

Khôi phục giao dịch mua trên thiết bị mới

Hiển thị nút “Khôi phục giao dịch mua†do ngưá»i dùng khởi tạo trên paywall cá»§a bạn. Apple App Review (hướng dẫn 3.1.1) yêu cầu có nút này, và nó đóng vai trò dá»± phòng khi quá trình đồng bá»™ tá»± động bá» sót má»™t trưá»ng hợp đặc biệt. Nút này nên gá»i restorePurchases trên SDK cá»§a bạn.

Không cần gá»i restorePurchases theo chương trình khi khởi chạy lần đầu trong Ä‘iá»u kiện sá»­ dụng bình thưá»ng — SDK đã thá»±c hiện tương đương khi activate(). Chỉ dùng các lệnh gá»i theo chương trình để buá»™c kiểm tra biên lai má»›i, ví dụ khi debug trưá»ng hợp mất quyá»n truy cập sau khi activate() đã hoàn thành.

ÿÿÿÿ