SDK Nền tảng thông báo cho người dùng (UMP) của Google là một công cụ thông báo và quyền riêng tư giúp bạn quản lý các lựa chọn về quyền riêng tư. Để biết thêm thông tin, hãy xem bài viết Giới thiệu về Quyền riêng tư và thông báo.
Tạo loại thông báo
Tạo thông báo cho người dùng bằng một trong các Loại thông báo cho người dùng hiện có trong thẻ Quyền riêng tư và thông báo của tài khoản AdMob. SDK UMP cố gắng hiển thị thông báo về quyền riêng tư được tạo từ mã ứng dụng AdMob được đặt trong dự án của bạn.
Để biết thêm thông tin, hãy xem bài viết Giới thiệu về quyền riêng tư và thông báo.
Thu thập sự đồng ý
Để thu thập sự đồng ý, hãy hoàn tất các bước sau:
- Yêu cầu cung cấp thông tin mới nhất về sự đồng ý của người dùng.
- Tải và hiển thị biểu mẫu đồng ý (nếu cần).
Yêu cầu cung cấp thông tin về sự đồng ý
Bạn nên yêu cầu cập nhật thông tin về trạng thái đồng ý của người dùng mỗi lần chạy ứng dụng bằng cách sử dụng Update()
. Yêu cầu này kiểm tra những thông tin sau:
- Liệu có bắt buộc phải có sự đồng ý hay không. Ví dụ: cần có sự đồng ý lần đầu tiên hoặc quyết định đồng ý trước đó đã hết hạn.
- Liệu có bắt buộc phải có điểm truy cập các lựa chọn về quyền riêng tư hay không. Một số thông báo về quyền riêng tư yêu cầu ứng dụng cho phép người dùng sửa đổi các lựa chọn về quyền riêng tư bất cứ lúc nào.
Tải và hiển thị biểu mẫu thông báo về quyền riêng tư (nếu cần)
Sau khi bạn nhận được trạng thái đồng ý mới nhất, hãy gọi LoadAndShowConsentFormIfRequired()
để tải mọi biểu mẫu cần thiết để thu thập sự đồng ý của người dùng. Sau khi tải, các biểu mẫu sẽ xuất hiện ngay lập tức.
Mã sau đây minh hoạ cách yêu cầu thông tin mới nhất về sự đồng ý của người dùng. Nếu cần, mã sẽ tải và hiển thị một biểu mẫu thông báo về quyền riêng tư:
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
});
}
Tuỳ chọn về quyền riêng tư
Một số biểu mẫu thông báo về quyền riêng tư được trình bày từ điểm truy cập lựa chọn về quyền riêng tư do nhà xuất bản hiển thị, cho phép người dùng quản lý các lựa chọn về quyền riêng tư của họ bất cứ lúc nào. Để tìm hiểu thêm về thông báo mà người dùng của bạn nhìn thấy tại điểm truy cập vào các tuỳ chọn về quyền riêng tư, hãy xem phần Các loại thông báo hiện có cho người dùng.
Để triển khai điểm truy cập các lựa chọn về quyền riêng tư, hãy hoàn tất các bước sau:
- Sau khi bạn gọi
Update()
, hãy kiểm traPrivacyOptionsRequirementStatus
để xác định xem có cần điểm truy cập các lựa chọn về quyền riêng tư hay không. - Nếu cần, hãy thêm một thành phần giao diện người dùng hiển thị và có thể tương tác vào ứng dụng của bạn để đóng vai trò là điểm truy cập các lựa chọn về quyền riêng tư. Nếu không bắt buộc phải có điểm truy cập quyền riêng tư, hãy định cấu hình phần tử giao diện người dùng để không hiển thị và không tương tác được.
- Hiển thị biểu mẫu lựa chọn về quyền riêng tư bằng
ShowPrivacyOptionsForm()
.
Ví dụ về mã sau đây minh hoạ các bước này:
[SerializeField, Tooltip("Button to show the privacy options form.")]
private Button _privacyButton;
private void Start()
{
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.onClick.AddListener(UpdatePrivacyButton);
// Disable the privacy settings button by default.
_privacyButton.interactable = false;
}
}
/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
public void ShowPrivacyOptionsForm()
{
Debug.Log("Showing privacy options form.");
ConsentForm.ShowPrivacyOptionsForm((FormError showError) =>
{
if (showError != null)
{
Debug.LogError("Error showing privacy options form with error: " + showError.Message);
}
// Enable the privacy settings button.
UpdatePrivacyButton();
});
}
/// <summary>
/// Updates the privacy buttons visual state based on the consent information.
/// </summary>
void UpdatePrivacyButton()
{
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
}
Yêu cầu quảng cáo
Trước khi yêu cầu quảng cáo trong ứng dụng, hãy kiểm tra xem bạn đã nhận được sự đồng ý của người dùng hay chưa bằng cách sử dụng
CanRequestAds()
. Có hai nơi để kiểm tra trong khi thu thập sự đồng ý:
- Sau khi thu thập được sự đồng ý trong phiên hiện tại.
- Ngay sau khi bạn gọi
Update()
. Có thể bạn đã nhận được sự đồng ý trong phiên trước. Để giảm độ trễ, bạn không nên đợi lệnh gọi lại hoàn tất để có thể bắt đầu tải quảng cáo sớm nhất có thể sau khi ứng dụng khởi chạy.
Nếu xảy ra lỗi trong quá trình thu thập sự đồng ý, bạn vẫn nên kiểm tra xem có thể yêu cầu quảng cáo hay không. SDK UMP sử dụng trạng thái đồng ý từ phiên trước.
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
if (ConsentInformation.CanRequestAds())
{
MobileAds.Initialize((InitializationStatus initstatus) =>
{
// TODO: Request an ad.
});
}
});
}
Thử nghiệm
Nếu bạn muốn kiểm thử tính năng tích hợp trong ứng dụng khi đang phát triển, hãy làm theo các bước sau để đăng ký thiết bị thử nghiệm theo phương thức lập trình. Hãy nhớ xoá mã dùng để đặt các mã thiết bị thử nghiệm này trước khi bạn phát hành ứng dụng.
- Gọi cho
Update()
. Kiểm tra đầu ra nhật ký để tìm thông báo tương tự như ví dụ sau. Thông báo đó sẽ cho bạn biết mã thiết bị của bạn và cách thêm thiết bị đó làm thiết bị thử nghiệm:
Android
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
iOS
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
Sao chép mã thiết bị thử nghiệm vào bảng nhớ tạm.
Sửa đổi mã của bạn để gọi
DebugGeography.TestDeviceHashedIds
và truyền vào danh sách mã thiết bị thử nghiệm.void Start() { var debugSettings = new ConsentDebugSettings { TestDeviceHashedIds = new List<string> { "TEST-DEVICE-HASHED-ID" } }; // Create a ConsentRequestParameters object. ConsentRequestParameters request = new ConsentRequestParameters { ConsentDebugSettings = debugSettings, }; // Check the current consent information status. ConsentInformation.Update(request, OnConsentInfoUpdated); }
Buộc một vị trí địa lý
SDK UMP giúp bạn thử nghiệm hoạt động của ứng dụng như thể thiết bị được dùng ở nhiều khu vực, chẳng hạn như Khu vực kinh tế Châu Âu (EEA) hoặc Vương quốc Anh, bằng cách sử dụng DebugGeography
. Xin lưu ý rằng chế độ cài đặt gỡ lỗi chỉ hoạt động trên thiết bị thử nghiệm.
void Start()
{
var debugSettings = new ConsentDebugSettings
{
// Geography appears as in EEA for debug devices.
DebugGeography = DebugGeography.EEA,
TestDeviceHashedIds = new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters
{
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
Đặt lại trạng thái đồng ý
Khi thử nghiệm ứng dụng bằng SDK UMP, bạn nên đặt lại trạng thái của SDK để có thể mô phỏng trải nghiệm cài đặt lần đầu của người dùng.
SDK cung cấp phương thức Reset()
để làm việc này.
ConsentInformation.Reset();
Ví dụ trên GitHub
Xem ví dụ đầy đủ về cách tích hợp SDK UMP được đề cập trong trang này trong HelloWorld.