Tuân thủ Tính minh bạch Theo dõi Ứng dụng (ATT)

Read time 12 minutes

iOS 14 trở lên yêu cầu đơn vị phát hành phải có quyền theo dõi thiết bị của người dùng trên các ứng dụng. Cài đặt thiết bị này được gọi là Tính minh bạch Theo dõi Ứng dụng hoặc ATT. Unity khuyên bạn nên triển khai tiến trình phân quyền tùy chỉnh.

Đơn vị phát hành phải kích hoạt yêu cầu quyền ATT trước khi khởi chạy bất kỳ SDK nào nhằm nhận cài đặt IDFA.

Sau đây là tiến trình người dùng phổ biến để hiển thị yêu cầu quyền ATT:

  1. (Được đề xuất) Định cấu hình màn hình ngữ cảnh ATT giải thích giá trị của việc chọn tham gia theo dõi đơn vị quảng cáo.

  2. Định cấu hình mô tả theo dõi người dùng cho cảnh báo quyền hệ thống hiển thị khi bạn yêu cầu xác thực. Bước này là bắt buộc nếu bạn muốn yêu cầu quyền theo dõi người dùng.

  3. Triển khai tiến trình cấp phép trong dự án của bạn.

  • Kiểm tra trạng thái xác thực của thiết bị.
  • Nếu trạng thái xác thực của thiết bị không xác định, hãy hiển thị màn hình ngữ cảnh ATT và yêu cầu cấp quyền cho người dùng cuối.

Hiển thị màn hình ngữ cảnh ATT

Quảng cáo được nhắm mục tiêu mang lại tỷ lệ hoàn vốn cao hơn quảng cáo theo ngữ cảnh. Theo chính sách của Apple, bạn chỉ có thể nhắc người dùng chọn tham gia nhận quảng cáo được nhắm mục tiêu một lần cho mỗi lượt cài đặt ứng dụng. Do đó, Unity khuyên bạn nên triển khai màn hình ngữ cảnh giải thích lợi ích của việc chọn tham gia.

Gói Hỗ trợ iOS 14 của Unity bao gồm một Cảnh màn hình ngữ cảnh mẫu, được hoàn thiện với tài nguyên màn hình ngữ cảnh bản dựng sẵn có thể tùy chỉnh hoàn toàn. Các văn bản chỉ là ví dụ. Nếu bạn sử dụng văn bản trong một ứng dụng công khai, văn bản sẽ phải tuân theo các nguyên tắc chứng nhận tương tự như phần còn lại của văn bản nộp lên. Vì đây là cơ hội để tạo cơ hội cho việc chọn tham gia quảng cáo nhắm mục tiêu, Unity khuyên bạn nên tùy chỉnh thông báo và hình ảnh đi kèm.

Sử dụng tài nguyên trong Unity phiên bản 2019.1 trở lên

Các phiên bản Unity Editor mới hơn hỗ trợ nhập mẫu từ cửa sổ Package Manager.

  1. Trong Unity Editor, hãy chọn Window > Package Manager để mở cửa sổ Package Manager.
  2. Trong cửa sổ Package Manager, hãy chọn gói iOS 14 Support Advertising Support.
  3. Ở cuối phần mô tả gói, hãy tìm 01 Context Screen trong phần mẫu và chọn Import Into Project.
  4. Trong cửa sổ Project, hãy chọn Assets > Samples > iOS 14 Advertising Support > 01 Context Screen Scenes > Context Screen Sample để mở Cảnh Context Screen Sample.

Sau khi bạn đã nhập Cảnh mẫu, bạn có thể sao chép và sửa đổi cảnh, hoặc sao chép bản dựng sẵn để sử dụng trong một trong các Cảnh hiện có.

Sử dụng tài nguyên trong Unity phiên bản 2019.0 trở về trước

Các phiên bản Unity cũ sẽ yêu cầu bạn mở mẫu dưới dạng một dự án Unity riêng biệt.

  1. Trong Unity Hub, dưới mục Projects, chọn ADD.
  2. Di chuyển đến thư mục com.unity.ads.ios-support mà bạn đã tải xuống từ kho lưu trữ gói, sau đó chọn SampleProject~ và chọn Select Folder.
  3. Chọn một phiên bản Unity để sử dụng với dự án mẫu và mở dự án đó.
  4. Trong cửa sổ Unity Editor's Project, hãy chọn Assets > Samples > iOS 14 Advertising Support > 01 Context Screen > Context Screen Sample để mở Cảnh Context Screen Sample.

Để kết hợp tài nguyên vào dự án của bạn:

  1. Trong thư mục dự án mẫu, hãy sao chép thư mục Assets/Samples/iOS 14 Advertising Support/01 - Context Screen.
  2. Dán thư mục đã sao chép vào thư mục của dự án đang hoạt động, theo cấu trúc sắp xếp mà bạn ưa thích.
  3. Mở dự án đang hoạt động và xác nhận rằng tài nguyên 01 - Context Screen đã được sao chép.
  4. Mở Cảnh Context Screen Sample và vào chế độ Play để xác nhận hành vi mong đợi.

Hành vi mong đợi

Cảnh sẽ không xuất hiện nội dung. Khi bạn vào chế độ Play, màn hình ngữ cảnh sẽ xuất hiện. Khi bạn chọn Next trên màn hình ngữ cảnh, sẽ không có gì xuất hiện vì yêu cầu ATT gốc chỉ xảy ra trên thiết bị iOS.

Tập lệnh ContextScreenManager (Assets/Samples/iOS 14 Advertising Support/01 - Context Screen/Scripts/ContextScreenManager) đảm bảo rằng màn hình ngữ cảnh xuất hiện khi Cảnh bắt đầu và chỉ khi người dùng chưa nhận được yêu cầu cấp quyền ATT trước đó.

Tập lệnh ContextScreenView (Assets/Samples/iOS 14 Advertising Support/01 - Context Screen/Scripts/ContentScreenView) kích hoạt yêu cầu cấp quyền ATT của Apple khi người dùng bỏ qua màn hình ngữ cảnh bằng cách gọi API RequestAuthorizationTracking của SDK.

Hiển thị yêu cầu cấp quyền ATT

Để tuân thủ nguyên tắc ATT của Apple, bạn phải cung cấp mô tả cho hộp thoại yêu cầu, sau đó triển khai yêu cầu cấp quyền trong ứng dụng của mình.

Định cấu hình mô tả theo dõi người dùng

Apple yêu cầu mô tả cho yêu cầu cấp quyền ATT. Bạn có thể đặt mô tả bằng khóa NSUserTrackingUsageDescription trong tệp Info.plist. Để đưa ra thông báo cho người dùng biết tại sao bạn yêu cầu quyền sử dụng dữ liệu theo dõi thiết bị:

  1. Trong trình điều hướng dự án Xcode của bạn, hãy mở tệp Info.plist.
  2. Trong trình chỉnh sửa danh sách thuộc tính, nhấp vào nút thêm (+) bên cạnh bất kỳ khóa nào để tạo khóa thuộc tính mới.
  3. Nhập tên khóa NSUserTrackingUsageDescription.
  4. Chọn loại giá trị chuỗi.
  5. Nhập thông báo theo dõi ứng dụng một cách rõ ràng vào trường giá trị. Một số ví dụ bao gồm:
  • "Chúng tôi sẽ sử dụng dữ liệu của bạn để cung cấp trải nghiệm quảng cáo tốt hơn và được cá nhân hóa."
  • "Chúng tôi cố gắng hiển thị quảng cáo cho các ứng dụng và sản phẩm mà bạn quan tâm nhất dựa trên ứng dụng bạn sử dụng, thiết bị bạn đang dùng và quốc gia bạn đang sinh sống."
  • "Chúng tôi cố gắng hiển thị quảng cáo cho các ứng dụng và sản phẩm mà bạn quan tâm nhất dựa trên ứng dụng bạn sử dụng."

Nhà phát triển Unity có thể tùy chọn tạo bước sau xây dựng để tự động thêm mô tả theo dõi người dùng vào tệp thay vì định cấu hình theo cách thủ công mỗi khi bạn tạo một bản dựng:

using UnityEditor;
using UnityEditor.Callbacks;
#if UNITY_IOS
using UnityEditor.iOS.Xcode;
#endif
using System.IO;
 
public class PostBuildStep {
    // Set the IDFA request description:
    const string k_TrackingDescription = "Your data will be used to provide you a better and personalized ad experience.";
 
    [PostProcessBuild(0)]
    public static void OnPostProcessBuild(BuildTarget buildTarget, string pathToXcode) {
        if (buildTarget == BuildTarget.iOS) {
            AddPListValues(pathToXcode);
        }
    }
 
    // Implement a function to read and write values to the plist file:
    static void AddPListValues(string pathToXcode) {
        // Retrieve the plist file from the Xcode project directory:
        string plistPath = pathToXcode + "/Info.plist";
        PlistDocument plistObj = new PlistDocument();
 
 
        // Read the values from the plist file:
        plistObj.ReadFromString(File.ReadAllText(plistPath));
 
        // Set values from the root object:
        PlistElementDict plistRoot = plistObj.root;
 
        // Set the description key-value in the plist:
        plistRoot.SetString("NSUserTrackingUsageDescription", k_TrackingDescription);
 
        // Save changes to the plist:
        File.WriteAllText(plistPath, plistObj.WriteToString());
    }
}

Triển khai yêu cầu cấp quyền ATT trong Unity

Gói Hỗ trợ iOS 14 cung cấp quyền truy cập vào API Apple để kiểm tra trạng thái cấp quyền của thiết bị và hiển thị yêu cầu nếu không xác định được trạng thái.

Tập lệnh sau đây minh họa cách triển khai yêu cầu quyền đơn giản bằng cách sử dụng định nghĩa tiền biên dịch UNITY_IOS để đảm bảo mã chỉ thực thi nếu chạy trên thiết bị iOS:

using UnityEngine;
#if UNITY_IOS
// Include the IosSupport namespace if running on iOS:
using Unity.Advertisement.IosSupport;
#endif
 
public class AttPermissionRequest : MonoBehaviour {
    void Awake() {
#if UNITY_IOS
        // Check the user's consent status.
        // If the status is undetermined, display the request request:
        if(ATTrackingStatusBinding.GetAuthorizationTrackingStatus() == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED) {
            ATTrackingStatusBinding.RequestAuthorizationTracking();
        }
#endif
    }
} 

Triển khai yêu cầu cấp quyền ATT trong Xcode

Tập lệnh ví dụ sau minh họa việc triển khai yêu cầu cấp quyền đơn giản:

#import <AppTrackingTransparency/AppTrackingTransparency.h>
 
- (void)requestTrackingAuthorization {
    [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
        // Tracking authorization completed. Start loading ads here.
    }];
}

Thử nghiệm yêu cầu cấp quyền của bạn

Để thử nghiệm quá trình triển khai, hãy xây dựng dự án của bạn cho iOS, sau đó mở dự án đó trong Xcode. Nếu bạn mở tệp Info.plist (theo mặc định, tệp này nằm trong thư mục gốc của gói ứng dụng), bạn sẽ thấy mô tả NSUserTrackingUsageDescription mà bạn đã thêm trong bước sau xây dựng.

Tiếp theo, hãy xây dựng và khởi chạy ứng dụng trên thiết bị thử nghiệm. Yêu cầu cấp quyền ATT sẽ hiển thị khi khởi chạy dự án lần đầu tiên.

Tài nguyên bổ sung