Mulai

Pilih platform: Android iOS Unity Flutter

Google User Messaging Platform (UMP) SDK adalah alat privasi dan pesan untuk membantu Anda mengelola pilihan privasi. Untuk mengetahui informasi selengkapnya, lihat Tentang Privasi & pesan.

Membuat jenis pesan

Buat pesan pengguna dengan salah satu Jenis pesan pengguna yang tersedia di tab Privasi & pesan di akun AdMob Anda. UMP SDK mencoba menampilkan pesan privasi yang dibuat dari ID Aplikasi AdMob yang ditetapkan di project Anda.

Untuk mengetahui detail selengkapnya, lihat Tentang privasi dan pesan.

Mengimpor SDK

CocoaPods (lebih disukai)

Cara termudah untuk mengimpor SDK ke project iOS adalah dengan menggunakan CocoaPods. Buka Podfile project Anda dan tambahkan baris ini ke target aplikasi Anda:

pod 'GoogleUserMessagingPlatform'

Kemudian, jalankan perintah berikut:

pod install --repo-update

Jika Anda baru menggunakan CocoaPods, lihat Menggunakan CocoaPods untuk mengetahui detail tentang cara membuat dan menggunakan Podfile.

Swift Package Manager

UMP SDK juga mendukung Swift Package Manager. Ikuti langkah-langkah berikut untuk mengimpor paket Swift.

  1. Di Xcode, instal Paket Swift SDK UMP dengan membuka File > Add Packages....

  2. Pada perintah yang muncul, telusuri repositori GitHub Paket Swift UMP SDK:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. Pilih versi Paket Swift UMP SDK yang ingin Anda gunakan. Untuk project baru, sebaiknya gunakan Up to Next Major Version.

Kemudian, Xcode akan menyelesaikan dependensi paket Anda dan mendownloadnya di latar belakang. Untuk mengetahui detail selengkapnya tentang cara menambahkan dependensi paket, lihat artikel Apple.

Download manual

Cara lain untuk mengimpor SDK adalah melakukannya secara manual.

Mendownload SDK

Kemudian, tarik framework ke project Xcode Anda, pastikan Anda memilih Copy items if needed.

Kemudian, Anda dapat menyertakan framework dalam file apa pun yang Anda butuhkan menggunakan:

Swift

import UserMessagingPlatform

Objective-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Tambahkan ID aplikasi

Anda dapat menemukan ID aplikasi di UI AdMob. Tambahkan ID ke Info.plist dengan cuplikan kode berikut:

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

Anda harus meminta pembaruan informasi izin pengguna di setiap peluncuran aplikasi, menggunakan requestConsentInfoUpdate(with:completionHandler:). Permintaan ini memeriksa hal berikut:

  • Apakah izin diperlukan. Misalnya, izin diperlukan untuk pertama kalinya, atau keputusan izin sebelumnya telah berakhir.
  • Apakah titik entri opsi privasi diperlukan. Beberapa pesan privasi mewajibkan aplikasi mengizinkan pengguna mengubah opsi privasi mereka kapan saja.

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) {
                           // ...
                         }];

Memuat dan menampilkan formulir pesan privasi

Setelah Anda menerima status izin terbaru, panggil loadAndPresentIfRequired(from:) untuk memuat formulir apa pun yang diperlukan untuk mengumpulkan izin pengguna. Setelah dimuat, formulir akan langsung ditampilkan.

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.
                                }];

Opsi privasi

Beberapa formulir pesan privasi ditampilkan dari titik entri opsi privasi yang dirender penayang, sehingga pengguna dapat mengelola opsi privasi mereka kapan saja. Untuk mempelajari lebih lanjut pesan yang dilihat pengguna di titik entri opsi privasi, lihat Jenis pesan pengguna yang tersedia.

Memeriksa apakah titik entri opsi privasi diperlukan

Setelah memanggil requestConsentInfoUpdate(with:completionHandler:), periksa UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus untuk menentukan apakah titik entri opsi privasi diperlukan untuk aplikasi Anda. Jika titik entri diperlukan, tambahkan elemen UI yang terlihat dan dapat berinteraksi ke aplikasi Anda yang menampilkan formulir opsi privasi. Jika titik entri privasi tidak diperlukan, konfigurasi elemen UI Anda agar tidak terlihat dan dapat berinteraksi.

Swift


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

Objective-C


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

Untuk daftar lengkap status persyaratan opsi privasi, lihat UMPPrivacyOptionsRequirementStatus.

Menampilkan formulir opsi privasi

Saat pengguna berinteraksi dengan elemen Anda, tampilkan formulir opsi privasi:

Swift


try await ConsentForm.presentPrivacyOptionsForm(from: viewController)

SwiftUI


try await ConsentForm.presentPrivacyOptionsForm(from: nil)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

Meminta iklan dengan izin pengguna

Sebelum meminta iklan, gunakan UMPConsentInformation.sharedInstance.canRequestAds untuk memeriksa apakah Anda telah mendapatkan izin dari pengguna:

Swift

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

Berikut adalah tempat yang harus diperiksa untuk mengetahui apakah Anda dapat meminta iklan saat mengumpulkan izin:

Jika terjadi error selama proses pengumpulan izin, periksa apakah Anda dapat meminta iklan. UMP SDK menggunakan status izin dari sesi aplikasi sebelumnya.

Mencegah tugas permintaan iklan yang berlebihan

Saat Anda memeriksa UMPConsentInformation.sharedInstance.canRequestAds setelah mengumpulkan izin dan setelah memanggil requestConsentInfoUpdate(with:completionHandler:), pastikan logika Anda mencegah permintaan iklan yang berlebihan yang dapat menyebabkan kedua pemeriksaan menampilkan true. Misalnya, dengan variabel boolean.

Pengujian

Jika Anda ingin menguji integrasi di aplikasi saat mengembangkan, ikuti langkah-langkah berikut untuk mendaftarkan perangkat pengujian secara terprogram. Pastikan untuk menghapus kode yang menetapkan ID perangkat pengujian ini sebelum merilis aplikasi Anda.

  1. Hubungi requestConsentInfoUpdate(with:completionHandler:).
  2. Periksa output log untuk menemukan pesan yang mirip dengan contoh berikut, yang menunjukkan ID perangkat Anda dan cara menambahkannya sebagai perangkat pengujian:

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. Salin ID perangkat pengujian Anda ke papan klip.

  4. Ubah kode Anda untuk memanggil UMPDebugSettings().testDeviceIdentifiers dan meneruskan daftar ID perangkat pengujian Anda.

    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){
                              // ...
    }];
    

Memaksakan geografi

UMP SDK menyediakan cara untuk menguji perilaku aplikasi Anda seolah-olah perangkat berada di berbagai wilayah, seperti EEA atau Inggris Raya, menggunakan geography. Perhatikan bahwa setelan debug hanya berfungsi di perangkat pengujian.

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){
                           // ...
}];

Saat menguji aplikasi dengan UMP SDK, Anda mungkin merasa perlu mereset status SDK agar dapat menyimulasikan pengalaman penginstalan pertama pengguna. SDK menyediakan metode reset untuk melakukannya.

Swift

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

Contoh di GitHub

Lihat contoh lengkap integrasi UMP SDK yang dibahas di halaman ini di