Sử dụng Play Age Signals API (beta)

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:

  1. Chuyển đến trang Dấu hiệu về độ tuổi trong Play Console.
  2. 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.
  3. 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 userStatusVERIFIED, bạn có thể bỏ qua các trường khác.

Sử dụng ageLowerageUpper để 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 ageLowerageUpper để 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 ageLowerageUpper để 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 ageLowerageUpper để 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 ageLowerageUpper để 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 userStatusnull, 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 ageLowerageUpper để 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 ageLowerageUpper để 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à DECLAREDUNKNOWN.

Đối với người dùng đã khai báo độ tuổi, bạn sẽ nhận được những thông tin sau:

  • userStatus sẽ là AgeSignalsVerificationStatus.DECLARED.
  • ageLower sẽ là một số (ví dụ: 13).
  • ageUpper sẽ là một số hoặc null (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:

  • userStatus sẽ 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:

  • userStatus sẽ là AgeSignalsVerificationStatus.VERIFIED.
  • ageLower sẽ là một số (ví dụ: 18).
  • ageUpper sẽ là một số hoặc null (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:

  • userStatus sẽ là AgeSignalsVerificationStatus.SUPERVISED.
  • ageLower sẽ là một số (ví dụ: 13).
  • ageUpper sẽ là một số hoặc null (ví dụ: 15).
  • mostRecentApprovalDate sẽ là một đối tượng ngày Java (ví dụ: 2026-01-01) hoặc null (nếu không có thay đổi đáng kể nào được phê duyệt).
  • installID sẽ 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:

  • userStatus sẽ là AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower sẽ là một số (ví dụ: 13).
  • ageUpper sẽ là một số hoặc null (ví dụ: 15).
  • mostRecentApprovalDate sẽ là một đối tượng ngày Java (ví dụ: 2026-01-01) hoặc null (nếu không có thay đổi đáng kể nào được phê duyệt).
  • installID sẽ 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
  • Yêu cầu người dùng cập nhật ứng dụng Cửa hàng Google Play.
-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.
-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.
-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.
-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.
-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.
-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.
-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.
-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