Bằng việc sử dụng Play Age Signals API (bản thử nghiệm), bạn đồng ý với điều khoản dịch vụ và đồng ý tuân thủ tất cả chính sách dành cho nhà phát triển của Google Play. Để yêu cầu trạng thái và độ tuổi của người dùng, bạn gọi API từ ứng dụng của mình trong thời gian chạy. Play Age Signals API chỉ trả về dữ liệu cho người dùng ở những khu vực mà Play bắt buộc phải cung cấp dữ liệu danh mục độ tuổi theo luật.
Play trả về một dải độ tuổi dựa trên các nhóm tuổi do khu vực tài phán và khu vực áp dụng xác định. Độ tuổi mặc định mà API trả về ở những khu vực tài phán và khu vực áp dụng là 0-12, 13-15, 16-17 và từ 18 trở lên, nhưng bạn có thể nhận được các độ tuổi tuỳ chỉnh. Google Play tự động cập nhật tín hiệu độ tuổi được lưu vào bộ nhớ đệm cho người dùng trong vòng từ 2 đến 8 tuần sau ngày sinh nhật của người dùng.
Tích hợp Play Age Signals API vào ứng dụng
Play Age Signals API được hỗ trợ trên điện thoại, thiết bị có thể gập lại và máy tính bảng chạy Android 6.0 (cấp độ API 23) trở lên. Để tích hợp Play Age Signals API vào ứng dụng, hãy thêm phần phụ thuộc sau vào tệp build.gradle của ứng dụng:
implementation 'com.google.android.play:age-signals:0.0.3'
Yêu cầu tín hiệu về độ tuổi
Sau đây là ví dụ về cách đưa ra yêu cầu về dấu hiệu về độ tuổi:
Kotlin
// Create an instance of a manager val ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()) // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener { ageSignalsResult -> // Store the install ID for later... val installId = ageSignalsResult.installId() if (ageSignalsResult.userStatus() == AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED) { // Disallow access... } else { // Do something else if the user is VERIFIED, DECLARED, SUPERVISED, etc. } }
Java
// Create an instance of a manager AgeSignalsManager ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()); // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener( ageSignalsResult -> { // Store the install ID for later... String installId = ageSignalsResult.installId(); if (ageSignalsResult .userStatus() .equals(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED)) { // Disallow access ... } else { // Do something else if the user is SUPERVISED, VERIFIED, etc. } });
(Không bắt buộc) Nhận độ tuổi tuỳ chỉnh
Các độ tuổi mặc định mà API trả về ở những khu vực tài phán và khu vực áp dụng là 0-12, 13-15, 16-17 và từ 18 trở lên.
Ngoài ra, để tuỳ chỉnh các độ tuổi mặc định theo độ tuổi tối thiểu để dùng ứng dụng của bạn, bạn có thể cung cấp các độ tuổi tối thiểu này cho ứng dụng của mình trên trang Dấu hiệu về độ tuổi trong Google Play Console. Các độ tuổi được trả về sẽ ghi đè phản hồi mặc định của API. Ví dụ: nếu bạn cung cấp độ tuổi tối thiểu là 9, 15 và 17, thì một người dùng 14 tuổi sẽ thuộc độ tuổi từ 10 đến 15.
Để tuỳ chỉnh các độ tuổi mặc định mà Age Signals API trả về, bạn có thể cung cấp độ tuổi tối thiểu cho ứng dụng của mình:
- Chuyển đến trang Dấu hiệu về độ tuổi trong Play Console.
- Trên thẻ Độ tuổi tuỳ chỉnh, hãy nhập tối đa 3 độ tuổi tối thiểu cho ứng dụng của bạn. Các độ tuổi tối thiểu phải cách nhau ít nhất 2 năm và bạn có thể thay đổi thông tin này mỗi năm một lần.
- Nhấp vào Lưu.
Phản hồi về dấu hiệu độ tuổi
Phản hồi của Play Age Signals API (thử nghiệm) bao gồm các trường và giá trị sau. Các giá trị này có thể thay đổi. Nếu bạn muốn có các giá trị gần đây nhất, hãy yêu cầu phản hồi API khi ứng dụng của bạn mở. Bạn chịu trách nhiệm cung cấp trải nghiệm phù hợp với lứa tuổi bằng cách sử dụng những tín hiệu này.
| Trường phản hồi | Giá trị | Mô tả |
|---|---|---|
userStatus |
ĐÃ XÁC MINH | Google đã xác minh tuổi của người dùng bằng một phương thức hợp lý về mặt thương mại, chẳng hạn như giấy tờ tuỳ thân do chính phủ cấp, thẻ tín dụng hoặc công nghệ ước tính tuổi dựa trên khuôn mặt. Nếu userStatus là VERIFIED, bạn có thể bỏ qua các trường khác.
Sử dụng ageLower và ageUpper để xác định độ tuổi của người dùng.
|
| ĐÃ KHAI BÁO | Độ tuổi của người dùng do chính người dùng, cha mẹ hoặc người giám hộ hợp pháp của họ khai báo.
Sử dụng ageLower và ageUpper để xác định độ tuổi của người dùng. |
|
| SUPERVISED | Người dùng có Tài khoản Google được giám sát do cha mẹ quản lý và cha mẹ đặt độ tuổi cho người dùng.
Sử dụng ageLower và ageUpper để xác định độ tuổi của người dùng.
Sử dụng mostRecentApprovalDate để xác định thay đổi quan trọng gần đây nhất đã được phê duyệt. |
|
| SUPERVISED_APPROVAL_PENDING | Người dùng có một Tài khoản Google được giám sát và cha mẹ giám sát của họ chưa phê duyệt một hoặc nhiều thay đổi quan trọng đang chờ xử lý.
Sử dụng ageLower và ageUpper để xác định độ tuổi của người dùng.
Sử dụng mostRecentApprovalDate để xác định thay đổi quan trọng gần đây nhất đã được phê duyệt. |
|
| SUPERVISED_APPROVAL_DENIED | Người dùng có Tài khoản Google được giám sát và cha mẹ giám sát của họ đã từ chối phê duyệt một hoặc nhiều thay đổi quan trọng.
Sử dụng ageLower và ageUpper để xác định độ tuổi của người dùng.
Sử dụng mostRecentApprovalDate để xác định thay đổi quan trọng gần đây nhất đã được phê duyệt. |
|
| UNKNOWN (KHÔNG XÁC ĐỊNH) | Không xác định được độ tuổi của người dùng và người dùng đang ở một khu vực tài phán hoặc khu vực áp dụng.
Chỉ áp dụng cho các bang của Hoa Kỳ: Để nhận được tín hiệu về độ tuổi từ Google Play, hãy yêu cầu người dùng truy cập vào Cửa hàng Play để giải quyết trạng thái của họ. |
|
null |
Tất cả người dùng khác đều trả về giá trị này. Nếu userStatus là null, bạn có thể bỏ qua các trường khác. |
|
ageLower |
0 đến 18 | Giới hạn dưới (bao gồm) của độ tuổi của người dùng được giám sát.
Sử dụng ageLower và ageUpper để xác định độ tuổi của người dùng. |
null |
userStatus là tệp không xác định hoặc null. |
|
ageUpper |
2 đến 18 | Giới hạn trên (bao gồm cả giá trị này) của độ tuổi của người dùng được giám sát.
Sử dụng ageLower và ageUpper để xác định độ tuổi của người dùng. |
null |
Một trong hai userStatus được giám sát và cha mẹ của người dùng đã xác nhận rằng người dùng trên 18 tuổi.
Hoặc userStatus không xác định hoặc null. |
|
mostRecentApprovalDate |
Dấu ngày | Ngày effective from của thay đổi quan trọng gần đây nhất đã được phê duyệt. Khi một ứng dụng được cài đặt, ngày có thay đổi đáng kể gần đây nhất trước khi cài đặt sẽ được sử dụng. |
null |
Một là userStatus được giám sát và không có thay đổi đáng kể nào được gửi.
Hoặc userStatus đã được xác minh, không xác định hoặc null. |
|
installID |
Mã nhận dạng gồm chữ và số do Play tạo. | Mã nhận dạng do Google Play chỉ định cho lượt cài đặt của người dùng được giám sát, dùng cho mục đích thông báo cho bạn về việc phê duyệt ứng dụng bị thu hồi. Xem tài liệu về các lượt phê duyệt ứng dụng bị thu hồi. |
null |
userStatus đã được xác minh, không xác định hoặc null. |
Ví dụ về các phản hồi dành cho người dùng ở Brazil
Ở Brazil, userStatus chỉ có thể là DECLARED và UNKNOWN.
Đối với người dùng đã khai báo độ tuổi, bạn sẽ nhận được những thông tin sau:
userStatussẽ làAgeSignalsVerificationStatus.DECLARED.ageLowersẽ là một số (ví dụ: 13).ageUppersẽ là một số hoặcnull(ví dụ: 15).- Các trường phản hồi khác sẽ là
null.
Đối với người dùng có độ tuổi không xác định, bạn sẽ nhận được thông tin sau:
userStatussẽ làAgeSignalsVerificationStatus.UNKNOWN.- Các trường phản hồi khác sẽ là
null.
Trạng thái người dùng có thể thay đổi từ UNKNOWN thành DECLARED sau khi có thông tin về độ tuổi của người dùng để chia sẻ.
Ví dụ về câu trả lời cho người dùng ở các tiểu bang tại Hoa Kỳ
Ở các tiểu bang áp dụng tại Hoa Kỳ, userStatus có thể là VERIFIED, SUPERVISED, SUPERVISED_APPROVAL_PENDING, SUPERVISED_APPROVAL_DENIED, UNKNOWN hoặc null.
Đối với người dùng đã xác minh, bạn sẽ nhận được những thông tin sau:
userStatussẽ làAgeSignalsVerificationStatus.VERIFIED.ageLowersẽ là một số (ví dụ: 18).ageUppersẽ là một số hoặcnull(ví dụ:null).- Các trường phản hồi khác sẽ là
null.
Đối với người dùng được giám sát, bạn sẽ nhận được những thông tin sau:
userStatussẽ làAgeSignalsVerificationStatus.SUPERVISED.ageLowersẽ là một số (ví dụ: 13).ageUppersẽ là một số hoặcnull(ví dụ: 15).mostRecentApprovalDatesẽ là một đối tượng ngày Java (ví dụ:2026-01-01) hoặcnull(nếu không có thay đổi đáng kể nào được phê duyệt).installIDsẽ là một mã nhận dạng gồm chữ và số do Play tạo (ví dụ:550e8400-e29b-41d4-a716-446655441111).
Đối với người dùng được giám sát có yêu cầu phê duyệt thay đổi quan trọng đang chờ xử lý, bạn sẽ nhận được thông tin sau:
userStatussẽ làAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowersẽ là một số (ví dụ: 13).ageUppersẽ là một số hoặcnull(ví dụ: 15).mostRecentApprovalDatesẽ là một đối tượng ngày Java (ví dụ:2026-01-01) hoặcnull(nếu không có thay đổi đáng kể nào được phê duyệt).installIDsẽ là một mã nhận dạng gồm chữ và số do Play tạo (ví dụ:550e8400-e29b-41d4-a716-446655441111).
Xử lý mã lỗi API
Nếu ứng dụng của bạn đưa ra Yêu cầu API Play Age Signals và lệnh gọi không thành công, thì ứng dụng sẽ nhận được mã lỗi. Những lỗi này có thể xảy ra vì nhiều lý do, chẳng hạn như ứng dụng Cửa hàng Play đã lỗi thời.
Chiến lược thử lại
Trong trường hợp người dùng đang hoạt động, bạn nên triển khai một chiến lược thử lại với điều kiện thoát là số lần thử tối đa để hạn chế tối đa việc lỗi làm gián đoạn trải nghiệm người dùng.
| Giá trị số của mã lỗi | Mã lỗi | Mô tả | Có thể thử lại |
|---|---|---|---|
| -1 | API_NOT_AVAILABLE | Play Age Signals API không hoạt động. Phiên bản ứng dụng Cửa hàng Play được cài đặt trên thiết bị có thể đã cũ. Giải pháp có thể áp dụng
|
Có |
| -2 | PLAY_STORE_NOT_FOUND | Không tìm thấy ứng dụng Cửa hàng Play trên thiết bị. Yêu cầu người dùng cài đặt hoặc bật Cửa hàng Play. | Có |
| -3 | NETWORK_ERROR | Không tìm thấy bất cứ mạng nào. Hãy yêu cầu người dùng kiểm tra kết nối. | Có |
| -4 | PLAY_SERVICES_NOT_FOUND | Không có Dịch vụ Play hoặc phiên bản quá cũ. Yêu cầu người dùng cài đặt, cập nhật hoặc bật Dịch vụ Google Play. | Có |
| -5 | CANNOT_BIND_TO_SERVICE | Không liên kết được với dịch vụ trong Cửa hàng Play. Điều này có thể là do phiên bản Cửa hàng Play được cài đặt trên thiết bị đã cũ hoặc bộ nhớ thiết bị đã quá tải. Yêu cầu người dùng cập nhật ứng dụng Cửa hàng Play. Thử lại với thời gian đợi luỹ thừa. | Có |
| -6 | PLAY_STORE_VERSION_OUTDATED | Người dùng cần cập nhật ứng dụng Cửa hàng Play. Yêu cầu người dùng cập nhật ứng dụng Cửa hàng Play. | Có |
| -7 | PLAY_SERVICES_VERSION_OUTDATED | Cần cập nhật Dịch vụ Google Play. Yêu cầu người dùng cập nhật Dịch vụ Play. | Có |
| -8 | CLIENT_TRANSIENT_ERROR | Đã xảy ra lỗi tạm thời trong thiết bị ứng dụng. Triển khai chiến lược thử lại với số lần thử tối đa làm điều kiện thoát. Nếu vấn đề vẫn chưa được giải quyết, hãy yêu cầu người dùng thử lại sau. | Có |
| -9 | APP_NOT_OWNED | Ứng dụng này không được cài đặt qua Google Play. Yêu cầu người dùng tải ứng dụng của bạn xuống từ Google Play. | Không |
| -10 | SDK_VERSION_OUTDATED | Phiên bản Play Age Signals SDK không còn được hỗ trợ nữa. Yêu cầu người dùng cập nhật ứng dụng của bạn lên phiên bản mới hơn có sử dụng phiên bản gần đây của Play Age Signals SDK. | Không |
| -100 | INTERNAL_ERROR | Lỗi nội bộ không xác định. Triển khai chiến lược thử lại với số lần thử tối đa làm điều kiện thoát. Nếu vấn đề vẫn chưa được giải quyết, hãy yêu cầu người dùng thử lại sau. Nếu việc này liên tục không thành công, hãy liên hệ với nhóm hỗ trợ nhà phát triển của Google Play, thêm Play Age Signals API vào tiêu đề và cung cấp càng nhiều thông tin kỹ thuật càng tốt (chẳng hạn như báo cáo lỗi). | Không |