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. Bạn có thể xem cách triển khai IMA đang hoạt động bằng SDK UMP trong ứng dụng mẫu UMP Objective-C hoặc Swift.
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 Ad Manager. 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 quảng cáo đa phương tiện tương tác đượ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.
Nhập SDK
SDK UMP không được đưa vào phần phụ thuộc của SDK IMA, vì vậy, bạn phải tự thêm SDK UMP.
CocoaPods (ưu tiên)
Cách dễ nhất để nhập SDK vào một dự án iOS là sử dụng CocoaPods. Hãy mở Podfile của dự án rồi thêm dòng này vào mục tiêu của ứng dụng:
pod 'GoogleUserMessagingPlatform'
Sau đó, hãy chạy lệnh sau:
pod install --repo-update
Nếu bạn mới sử dụng CocoaPods, hãy xem bài viết Sử dụng CocoaPods để biết thông tin chi tiết về cách tạo và sử dụng Podfiles.
Trình quản lý gói Swift
SDK UMP cũng hỗ trợ Trình quản lý gói Swift. Hãy làm theo các bước sau để nhập gói Swift.
Trong Xcode, hãy cài đặt Gói Swift SDK UMP bằng cách chuyển đến File > Add Packages... (Tệp > Thêm gói...).
Khi thông báo nhắc xuất hiện, hãy tìm kiếm kho lưu trữ GitHub cho Gói Swift SDK UMP:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
Chọn phiên bản của Gói Swift SDK UMP mà bạn muốn sử dụng. Đối với các dự án mới, bạn nên sử dụng Phiên bản lớn tiếp theo.
Sau đó, Xcode sẽ phân giải các phần phụ thuộc của gói và tải các phần phụ thuộc đó xuống ở chế độ nền. Để biết thêm thông tin chi tiết về cách thêm các phần phụ thuộc của gói, hãy xem bài viết của Apple.
Thêm mã ứng dụng
Bạn có thể tìm thấy mã ứng dụng trong giao diện người dùng Ad Manager.
Thêm mã nhận dạng vào Info.plist
bằng đoạn mã sau:
<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Lấy thông tin về sự đồng ý của người dù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
requestConsentInfoUpdateWithParameters:completionHandler:
. 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.
Swift
// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
// ...
}
Objective-C
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
// ...
}];
Tải và hiển thị biểu mẫu thông báo về quyền riêng tư
Sau khi bạn nhận được trạng thái đồng ý mới nhất, hãy gọi
loadAndPresentIfRequiredFromViewController:completionHandler:
để 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.
Swift
try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)
Objective-C
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
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.
Kiểm tra xem 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
Sau khi bạn gọi
requestConsentInfoUpdateWithParameters:completionHandler:
, hãy kiểm tra
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
để xác định xem ứng dụng của bạn 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 điểm truy cập, 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 để hiển thị biểu mẫu 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.
Swift
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)areGDPRConsentMessagesRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
- (void)gatherConsentFromConsentPresentationViewController:(UIViewController *)viewController
consentGatheringComplete:
(void (^)(NSError *_Nullable))consentGatheringComplete {
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
// Set tag for under age of consent. Use NO constant to indicate that the user is not under age.
parameters.tagForUnderAgeOfConsent = NO;
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
// Uncomment the following line to simulate a consent request from users in the
// European Economic Area (EEA) for testing purposes.
// debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
// ...
}];
}
- (void)loadAndPresentIfRequiredFromViewController:(UIViewController *)viewController
completionHandler:(void (^)(NSError *_Nullable))completionHandler {
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
}
- (void)presentPrivacyOptionsFormFromViewController:(UIViewController *)viewController
completionHandler:
(void (^)(NSError *_Nullable))completionHandler {
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
}
@end
Để xem danh sách đầy đủ các trạng thái yêu cầu về lựa chọn về quyền riêng tư, hãy xem
UMPPrivacyOptionsRequirementStatus
.
Trình bày biểu mẫu về các lựa chọn về quyền riêng tư
Khi người dùng tương tác với phần tử của bạn, hãy hiển thị biểu mẫu lựa chọn về quyền riêng tư:
Swift
UMPConsentForm.presentPrivacyOptionsForm(
from: viewController, completionHandler: completionHandler)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
Yêu cầu quảng cáo có sự đồng ý của người dùng
Trước khi yêu cầu quảng cáo, hãy sử dụng
UMPConsentInformation.sharedInstance.canRequestAds
để kiểm tra xem bạn đã nhận được sự đồng ý của người dùng hay chưa:
Swift
UMPConsentInformation.sharedInstance.canRequestAds
Objective-C
UMPConsentInformation.sharedInstance.canRequestAds;
Sau đây là những nơi bạn có thể kiểm tra xem mình có thể yêu cầu quảng cáo trong khi thu thập sự đồng ý hay không:
- Sau khi SDK UMP thu thập sự đồng ý trong phiên hiện tại.
- Ngay sau khi bạn gọi
requestConsentInfoUpdateWithParameters:completionHandler:
. SDK UMP có thể đã thu thập sự đồng ý trong phiên ứng dụng trước.
Nếu xảy ra lỗi trong quá trình thu thập sự đồng ý, hãy kiểm tra xem bạn 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 ứng dụng trước đó.
Ngăn chặn công việc yêu cầu quảng cáo dư thừa
Khi bạn kiểm tra
UMPConsentInformation.sharedInstance.canRequestAds
sau khi thu thập sự đồng ý và sau khi gọi
requestConsentInfoUpdateWithParameters:completionHandler:
, hãy đảm bảo logic của bạn ngăn chặn các yêu cầu quảng cáo thừa có thể dẫn đến việc cả hai lần kiểm tra đều trả về true
. Ví dụ: với một biến boolean.
Thử nghiệm
Nếu bạn muốn thử nghiệm 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
requestConsentInfoUpdateWithParameters:completionHandler:
. 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:
<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
UMPDebugSettings().testDeviceIdentifiers
và truyền vào danh sách mã thiết bị thử nghiệm.Swift
let parameters = UMPRequestParameters() let debugSettings = UMPDebugSettings() debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"] parameters.debugSettings = debugSettings // Include the UMPRequestParameters in your consent request. UMPConsentInformation.sharedInstance.requestConsentInfoUpdate( with: parameters, completionHandler: { error in // ... })
Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init]; UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init]; debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ]; parameters.debugSettings = debugSettings; // Include the UMPRequestParameters in your consent request. [UMPConsentInformation.sharedInstance requestConsentInfoUpdateWithParameters:parameters completionHandler:^(NSError *_Nullable error){ // ... }];
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 UMPDebugGeography. Xin lưu ý rằng chế độ cài đặt gỡ lỗi chỉ hoạt động trên thiết bị thử nghiệm.
Swift
let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings
// Include the UMPRequestParameters in your consent request.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
with: parameters,
completionHandler: { error in
// ...
})
Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable error){
// ...
}];
Đặ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.
Swift
UMPConsentInformation.sharedInstance.reset()
Objective-C
[UMPConsentInformation.sharedInstance 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 Swift UmpExample và Objective-C UmpExample.