Bắt đầu

Chọn nền tảng: Android iOS Unity Flutter

SDK Nền tảng thông báo cho người dùng (UMP) của Google là một công cụ về quyền riêng tư và thông báo 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ề công cụ 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ị một 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.

Nhập SDK

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

UMP SDK 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.

  1. Trong Xcode, hãy cài đặt Gói Swift SDK UMP bằng cách chuyển đến File (Tệp) > Add Packages (Thêm gói)....

  2. Trong lời 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
    
  3. Chọn phiên bản của Gói Swift UMP SDK 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 đọc bài viết của Apple.

Tải xuống theo cách thủ công

Một cách khác để nhập SDK là nhập theo cách thủ công.

Tải SDK xuống

Sau đó, hãy kéo khung này vào dự án Xcode của bạn và nhớ chọn Sao chép các mục nếu cần.

Sau đó, bạn có thể thêm khung này vào bất kỳ tệp nào bạn cần bằng cách sử dụng:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Thêm mã ứng dụng

Bạn có thể tìm thấy mã ứng dụng của mình trong giao diện người dùng AdMob. Thêm mã nhận dạng vào Info.plist bằng đoạn mã sau:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

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 requestConsentInfoUpdate(with:completionHandler:). Yêu cầu này kiểm tra những điều sau:

  • Có cần có sự đồng ý hay không. Ví dụ: người dùng cần đồng ý lần đầu tiên hoặc quyết định đồng ý trước đó đã hết hạn.
  • 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ư của họ bất cứ lúc nào.

Swift


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  // ...
}

SwiftUI


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.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à trình bày biểu mẫu thông báo về quyền riêng tư

Sau khi nhận được trạng thái đồng ý mới nhất, hãy gọi loadAndPresentIfRequired(from:) để 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 ConsentForm.loadAndPresentIfRequired(from: viewController)

SwiftUI


try await ConsentForm.loadAndPresentIfRequired(from: nil)

Objective-C


[UMPConsentForm
    loadAndPresentIfRequiredFromViewController:viewController
                             completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                 // Consent gathering process is complete.
                                }];

Các lựa 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 các 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ề những loại thông báo mà người dùng của bạn nhìn thấy tại điểm truy cập lựa chọn về quyền riêng tư, hãy xem Các loại thông báo hiện có cho người dùng.

Kiểm tra xem 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

Sau khi gọi requestConsentInfoUpdate(with:completionHandler:), hãy kiểm tra UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus để xác định xem ứng dụng của bạn có cần một điểm truy cập các lựa chọn về quyền riêng tư hay không. Nếu cần một điểm truy cập, hãy thêm một phần tử giao diện người dùng có thể nhìn thấy và tương tác vào ứng dụng của bạn để trình bày biểu mẫu các lựa chọn về quyền riêng tư. Nếu không bắt buộc phải có một điểm truy cập vào quyền riêng tư, hãy định cấu hình phần tử giao diện người dùng của bạn để không hiển thị và tương tác được.

Swift


var isPrivacyOptionsRequired: Bool {
  return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}

Objective-C


- (BOOL)isPrivacyOptionsRequired {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
         UMPPrivacyOptionsRequirementStatusRequired;
}

Để 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 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 trình bày biểu mẫu lựa chọn về quyền riêng tư:

Swift


try await ConsentForm.presentPrivacyOptionsForm(from: viewController)

SwiftUI


try await ConsentForm.presentPrivacyOptionsForm(from: nil)

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

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

Sau đây là những nơi bạn cần kiểm tra xem bạn có thể yêu cầu quảng cáo trong khi thu thập sự đồng ý hay không:

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. UMP SDK sử dụng trạng thái đồng ý từ phiên ứng dụng trước đó.

Ngăn chặn các yêu cầu quảng cáo trùng lặp

Khi bạn kiểm tra UMPConsentInformation.sharedInstance.canRequestAds sau khi thu thập sự đồng ý và sau khi gọi requestConsentInfoUpdate(with: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 dư thừa có thể dẫn đến 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 kiểm thử hoạt độ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.

  1. Gọi cho requestConsentInfoUpdate(with:completionHandler:).
  2. 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 này cho 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]
    
  3. Sao chép mã thiết bị thử nghiệm vào khay nhớ tạm.

  4. 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 = RequestParameters()
    let debugSettings = DebugSettings()
    
    debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
    parameters.debugSettings = debugSettings
    
    // Include the UMPRequestParameters in your consent request.
    ConsentInformation.shared.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){
                              // ...
    }];
    

Chỉ định một vị trí địa lý

UMP SDK giúp bạn thử nghiệm hành vi 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 geography. 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 = RequestParameters()
let debugSettings = DebugSettings()

debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings

// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.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){
                           // ...
}];

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

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Ví dụ trên GitHub

Xem ví dụ đầy đủ về việc tích hợp UMP SDK được đề cập trong trang này trong