Định cấu hình AdServices

Khi bạn đọc tài liệu Hộp cát về quyền riêng tư trên Android, hãy sử dụng nút Bản dùng thử cho nhà phát triển hoặc Beta để chọn phiên bản chương trình bạn đang làm việc, vì hướng dẫn có thể khác nhau.


Hãy làm theo hướng dẫn bên dưới để khai báo quyền dành riêng cho API và định cấu hình quyền truy cập của SDK vào các tài nguyên do API được nhắm mục tiêu quản lý.

Khai báo các quyền AdServices theo API cụ thể

Để truy cập vào từng PPAPI, quyền normal đối với Dịch vụ quảng cáo là bắt buộc. Trong tệp kê khai, hãy khai báo quyền truy cập phù hợp tương ứng với các API cần thiết trong SDK hoặc ứng dụng của bạn.

Attribution Reporting API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />

Attribution Reporting API (với báo cáo gỡ lỗi):

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

API đối tượng tuỳ chỉnh/Protected Audience API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE" />

Topics API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS" />

Để nhận báo cáo gỡ lỗi với Attribution Reporting API (không bắt buộc), hãy thêm quyền AD_ID:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

Nếu dự án của bạn có các phần phụ thuộc trên mô-đun hoặc SDK, thì chúng có thể đã khai báo các quyền Dịch vụ quảng cáo bắt buộc trong tệp kê khai. Theo mặc định, bản dựng Gradle sẽ sáp nhập tất cả các tệp kê khai vào một tệp kê khai duy nhất được đóng gói vào ứng dụng. Hãy dùng khung hiển thị Tệp kê khai sáp nhập để xác minh rằng đang sử dụng các quyền chính xác.

Nếu bạn cần ngăn chặn việc hợp nhất bất kỳ quyền nào vào ứng dụng thông qua các phần phụ thuộc như SDK, hãy thêm điểm đánh dấu nút remove cho các quyền cụ thể đó. Ví dụ sau minh hoạ cách ngăn chặn việc hợp nhất quyền của Topics.

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS"
    tools:node="remove" />

Định cấu hình Dịch vụ quảng cáo theo API cụ thể

Tương tự như quyền truy cập PPAPI, mỗi API có một mục tương ứng trong cấu hình dịch vụ quảng cáo. Cấu hình này cấp cho bạn quyền truy cập kiểm soát chi tiết vào các tài nguyên do API quản lý trong ứng dụng hoặc SDK nhúng của bạn. Trong tệp kê khai, hãy chỉ định một thuộc tính adservicesConfig như trong ví dụ sau:

<application ...>
      ...
    <property android:name="android.adservices.AD_SERVICES_CONFIG"
        android:resource="@xml/ad_services_config" />

      ...
</application>

Chỉ định tài nguyên XML của dịch vụ quảng cáo được tham chiếu trong tệp kê khai, chẳng hạn như res/xml/ad_services_config.xml. Đối với mỗi API bảo đảm quyền riêng tư áp dụng cho ứng dụng (hoặc SDK nhúng) của bạn, hãy đặt thuộc tính allowAllToAccess thành true để cấp quyền truy cập cho mọi phương thức gọi.

Ngoài ra, bạn có thể dùng thuộc tính allowAdPartnersToAccess để cấp quyền truy cập chi tiết vào API cho từng công nghệ quảng cáo. Bạn cần cung cấp danh sách mã tài khoản đăng ký dành cho nhà phát triển có được bằng cách đăng ký. Nếu bạn đặt thuộc tính allowAllToAccess thành true, thì thuộc tính này sẽ được ưu tiên hơn mọi mã tài khoản đăng ký được chỉ định trong thuộc tính allowAdPartnersToAccess.

Các nền tảng công nghệ quảng cáo cũng phải đảm bảo rằng máy khách của ứng dụng cấp quyền truy cập thích hợp vào các API bảo đảm quyền riêng tư bắt buộc trong cấu hình dịch vụ quảng cáo.

Ví dụ sau đây cho thấy cách chỉ định quyền truy cập rộng rãi để cho phép mọi mã tài khoản có đăng ký được truy cập vào tất cả các API bảo đảm quyền riêng tư:

<ad-services-config>
   <!-- Attribution API -->
   <attribution allowAllToAccess="true" />

   <!-- Topics API -->
   <topics allowAllToAccess="true" />

   <!-- Protected Audience on Android API -->
   <custom-audiences allowAllToAccess="true" />
</ad-services-config>

Ví dụ sau cho thấy cách chỉ định quyền truy cập chi tiết vào từng API bảo đảm quyền riêng tư cho một số mã tài khoản đăng ký:

<ad-services-config>
    <!-- Attribution API -->
    <attribution allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />

    <!-- Topics API →-->
    <includes-sdk-library name="ENROLLMENT-ID" />
    <topics allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />

    <!-- Protected Audience on Android API -->
    <custom-audiences allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />
</ad-services-config>