Xác định ứng dụng do nhà phát triển sở hữu

Đối với các trường hợp sử dụng như phân tích hoặc phòng chống gian lận trên một thiết bị nhất định, bạn có thể cần tương quan mức sử dụng hoặc hành động trên một nhóm ứng dụng do tổ chức của bạn sở hữu. Dịch vụ Google Play cung cấp một lựa chọn thân thiện với quyền riêng tư có tên là mã nhóm ứng dụng.

Phạm vi mã nhóm ứng dụng

Mã nhóm ứng dụng có thể có một trong các phạm vi được xác định sau đây. Để xác định phạm vi mà một mã cụ thể được liên kết, hãy gọi getScope().

Phạm vi nhà phát triển trên Google Play

Đối với các ứng dụng được cài đặt bằng Cửa hàng Google Play, API mã nhóm ứng dụng sẽ trả về một mã có phạm vi cho nhóm ứng dụng được xuất bản trong cùng một tài khoản nhà phát triển trên Google Play.

Ví dụ: giả sử bạn xuất bản 2 ứng dụng trong tài khoản nhà phát triển trên Google Play và cả hai ứng dụng đều được cài đặt trên cùng một thiết bị thông qua Cửa hàng Google Play. Các ứng dụng này dùng chung cùng một mã nhóm ứng dụng trên thiết bị đó. Mã này giống nhau ngay cả khi các ứng dụng được ký bằng các khoá khác nhau.

Phạm vi ứng dụng

Trong bất kỳ điều kiện nào sau đây, SDK mã nhóm ứng dụng sẽ trả về một mã riêng cho chính ứng dụng gọi trên một thiết bị nhất định:

  • Ứng dụng được cài đặt bằng một trình cài đặt không phải là Cửa hàng Google Play.
  • Dịch vụ Google Play không xác định được tài khoản nhà phát triển trên Google Play của ứng dụng.
  • Ứng dụng được cài đặt trên một thiết bị không có dịch vụ Google Play.

Không dựa vào giá trị được lưu vào bộ nhớ đệm của mã nhóm ứng dụng

Trong bất kỳ điều kiện nào sau đây, mã nhóm ứng dụng cho một nhóm ứng dụng nhất định được cài đặt từ Cửa hàng Google Play trên một thiết bị có thể được đặt lại:

  • Các nhóm ứng dụng dùng chung cùng một giá trị mã đã không truy cập vào API mã nhóm ứng dụng trong hơn 13 tháng.
  • Ứng dụng cuối cùng trong một nhóm ứng dụng nhất định bị gỡ cài đặt khỏi thiết bị.
  • Người dùng đặt lại thiết bị về trạng thái ban đầu.

Ứng dụng của bạn phải sử dụng SDK để truy xuất giá trị mã mỗi khi cần.

Thêm SDK mã nhóm ứng dụng vào ứng dụng

Đoạn mã sau đây cho thấy ví dụ về tệp build.gradle sử dụng thư viện mã nhóm ứng dụng:

dependencies {
    implementation 'com.google.android.gms:play-services-appset:16.1.0'
}

Đoạn mã mẫu sau đây minh hoạ cách bạn có thể truy xuất mã nhóm ứng dụng không đồng bộ bằng API Tác vụ trong dịch vụ Google Play:

Kotlin

val client = AppSet.getClient(applicationContext) as AppSetIdClient
val task: Task<AppSetIdInfo> = client.appSetIdInfo as Task<AppSetIdInfo>

task.addOnSuccessListener({
    // Determine current scope of app set ID.
    val scope: Int = it.scope

    // Read app set ID value, which uses version 4 of the
    // universally unique identifier (UUID) format.
    val id: String = it.id
})

Java

Context context = getApplicationContext();
AppSetIdClient client = AppSet.getClient(context);
Task<AppSetIdInfo> task = client.getAppSetIdInfo();

task.addOnSuccessListener(new OnSuccessListener<AppSetIdInfo>() {
    @Override
    public void onSuccess(AppSetIdInfo info) {
        // Determine current scope of app set ID.
        int scope = info.getScope();

      // Read app set ID value, which uses version 4 of the
      // universally unique identifier (UUID) format.
        String id = info.getId();
    }
});

Để biết thêm thông tin về định dạng UUID, hãy xem bài viết Mã nhận dạng duy nhất toàn cầu.