Ditambahkan di level API 34
Juga di Ekstensi Layanan Iklan 4

AdSelectionManager

public class AdSelectionManager
extends Object

java.lang.Object
   ↳ android.adservices.adselection.AdSelectionManager


AdSelection Manager menyediakan API untuk SDK iklan dan aplikasi untuk menjalankan proses pemilihan iklan melaporkan tayangan.

Ringkasan

Metode publik

static AdSelectionManager get(Context context)

Metode setelan pabrik untuk membuat instance AdSelectionManager.

void getAdSelectionData(GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcomeException> receiver)

Mengumpulkan data audiens kustom dari perangkat.

TestAdSelectionManager getTestAdSelectionManager()
void persistAdSelectionResult(PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcomeException> receiver)

Mempertahankan hasil pemilihan iklan dari sisi server.

void reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<ObjectException> receiver)

Memberi tahu layanan bahwa ada peristiwa iklan baru yang akan dilaporkan untuk iklan yang dipilih oleh proses pemilihan iklan yang diidentifikasi oleh adSelectionId.

void reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<ObjectException> receiver)

Memberi tahu layanan bahwa ada tayangan baru yang akan dilaporkan untuk iklan yang dipilih oleh proses pemilihan iklan yang diidentifikasi oleh adSelectionId.

void selectAds(AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcomeException> receiver)

Memilih iklan dari hasil pemilihan iklan yang dijalankan sebelumnya.

void selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcomeException> receiver)

Menjalankan proses pemilihan iklan di perangkat untuk memilih iklan pemasaran ulang untuk pemanggil aplikasi.

void updateAdCounterHistogram(UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<ObjectException> outcomeReceiver)

Memperbarui histogram penghitung untuk iklan yang sebelumnya dipilih oleh panggilan ke selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver).

Metode turunan

Metode publik

get

Ditambahkan di level API 34
Juga di Ekstensi Layanan Iklan 6
public static AdSelectionManager get (Context context)

Metode setelan pabrik untuk membuat instance AdSelectionManager.

Parameter
context Context: Context yang akan digunakan Nilai ini tidak boleh null.

Hasil
AdSelectionManager Instance AdSelectionManager Nilai ini tidak boleh null.

getAdSelectionData

public void getAdSelectionData (GetAdSelectionDataRequest request, 
                Executor executor, 
                OutcomeReceiver<GetAdSelectionDataOutcomeException> receiver)

Mengumpulkan data audiens kustom dari perangkat. Menampilkan blob yang dikompresi dan dienkripsi untuk dikirim server lelang untuk pemilihan iklan. Untuk detail lebih lanjut, kunjungi Bidding dan Penjelasan Layanan Lelang.

Iklan audiens kustom harus memiliki ad_render_id agar memenuhi syarat untuk dikumpulkan.

Lihat AdSelectionManager#persistAdSelectionResult untuk mengetahui cara memproses hasil pemilihan iklan akan berjalan di sisi server dengan blob yang dihasilkan oleh API ini.

Output diteruskan oleh penerima, yang akan menampilkan GetAdSelectionDataOutcome agar operasi berhasil, atau Exception menyertakan jenis pengecualian yang ditampilkan dan pesan error yang terkait.

Jika IllegalArgumentException ditampilkan, hal tersebut disebabkan oleh argumen input yang tidak valid yang diterima API untuk menjalankan pemilihan iklan.

Jika IllegalStateException ditampilkan dengan pesan error "Failure of AdSelection layanan.", hal ini disebabkan oleh kegagalan internal layanan pemilihan iklan.

Jika TimeoutException ditampilkan, error tersebut disebabkan saat waktu tunggu habis selama proses bidding, penskoran, atau keseluruhan proses pemilihan untuk menemukan Iklan pemenang.

Jika LimitExceededException ditampilkan, hal itu akan terjadi saat paket panggilan melebihi batas kapasitas yang diizinkan dan akan di-throttle.

Jika SecurityException ditampilkan, error tersebut akan muncul saat pemanggil tidak diberi otorisasi atau izin tidak diminta.
Memerlukan AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parameter
request GetAdSelectionDataRequest: Nilai ini tidak boleh null.

executor Executor: Nilai ini tidak boleh null. Peristiwa callback dan pemroses dikirim melalui ini Executor, yang menyediakan cara mudah untuk mengontrol thread mana data Untuk mengirim peristiwa melalui thread utama metode Anda dapat menggunakan Context.getMainExecutor(). Jika tidak, sediakan Executor yang melakukan pengiriman ke thread yang sesuai.

receiver OutcomeReceiver: Nilai ini tidak boleh null.

getTestAdSelectionManager

Ditambahkan di level API 34
Juga di Ekstensi Layanan Iklan 4
public TestAdSelectionManager getTestAdSelectionManager ()

Hasil
TestAdSelectionManager Nilai ini tidak boleh null.

persistenAdSelectionResult

public void persistAdSelectionResult (PersistAdSelectionResultRequest request, 
                Executor executor, 
                OutcomeReceiver<AdSelectionOutcomeException> receiver)

Mempertahankan hasil pemilihan iklan dari sisi server. Untuk detail lebih lanjut, kunjungi Bidding dan Penjelasan Layanan Lelang

Lihat AdSelectionManager#getAdSelectionData guna mengetahui cara membuat blob terenkripsi untuk menjalankan pemilihan iklan di sisi server.

Output diteruskan oleh penerima, yang akan menampilkan AdSelectionOutcome agar operasi berhasil, atau Exception menyertakan jenis pengecualian yang ditampilkan dan pesan {i>error<i} yang terkait.

Jika IllegalArgumentException ditampilkan, hal tersebut disebabkan oleh argumen input yang tidak valid yang diterima API untuk menjalankan pemilihan iklan.

Jika IllegalStateException ditampilkan dengan pesan error "Failure of AdSelection layanan.", hal ini disebabkan oleh kegagalan internal layanan pemilihan iklan.

Jika TimeoutException ditampilkan, error tersebut disebabkan saat waktu tunggu habis selama proses bidding, penskoran, atau keseluruhan proses pemilihan untuk menemukan Iklan pemenang.

Jika LimitExceededException ditampilkan, hal itu akan terjadi saat paket panggilan melebihi batas kapasitas yang diizinkan dan akan di-throttle.

Jika SecurityException ditampilkan, error tersebut akan muncul saat pemanggil tidak diberi otorisasi atau izin tidak diminta.
Memerlukan AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parameter
request PersistAdSelectionResultRequest: Nilai ini tidak boleh null.

executor Executor: Nilai ini tidak boleh null. Peristiwa callback dan pemroses dikirim melalui ini Executor, yang menyediakan cara mudah untuk mengontrol thread mana data Untuk mengirim peristiwa melalui thread utama metode Anda dapat menggunakan Context.getMainExecutor(). Jika tidak, sediakan Executor yang melakukan pengiriman ke thread yang sesuai.

receiver OutcomeReceiver: Nilai ini tidak boleh null.

peristiwalaporan

public void reportEvent (ReportEventRequest request, 
                Executor executor, 
                OutcomeReceiver<ObjectException> receiver)

Memberi tahu layanan bahwa ada peristiwa iklan baru yang akan dilaporkan untuk iklan yang dipilih oleh proses pemilihan iklan yang diidentifikasi oleh adSelectionId. Peristiwa iklan adalah setiap kejadian yang terjadi pada iklan yang terkait dengan adSelectionId yang ditentukan. Tidak ada jaminan tentang kapan peristiwa iklan akan dilaporkan. Pelaporan peristiwa bisa tertunda dan laporan dapat dikelompokkan.

Dengan ReportEventRequest#getKey(), layanan akan mengambil reportingUri yang terdaftar di registerAdBeacon. Lihat dokumentasi reportImpression(ReportImpressionRequest, Executor, OutcomeReceiver) untuk detail selengkapnya terkait registerAdBeacon. Kemudian, layanan akan melampirkan ReportEventRequest#getData() ke isi permintaan dari permintaan POST dan kirim permintaan. Isi permintaan POST akan memiliki content-type dari text/plain, dan data akan dikirim di charset=UTF-8.

Output diteruskan oleh penerima, yang akan menampilkan Object kosong untuk berhasil dijalankan, atau Exception menyertakan jenis pengecualian yang ditampilkan dan pesan error yang sesuai.

Jika IllegalArgumentException ditampilkan, hal tersebut disebabkan oleh argumen input yang tidak valid API yang diterima untuk melaporkan peristiwa iklan.

Jika IllegalStateException ditampilkan dengan pesan error "Failure of AdSelection layanan.", hal ini disebabkan oleh kegagalan internal layanan pemilihan iklan.

Jika LimitExceededException ditampilkan, hal itu akan terjadi saat paket panggilan melebihi batas kapasitas yang diizinkan dan akan di-throttle.

Jika SecurityException ditampilkan, error tersebut akan muncul saat pemanggil tidak diberi otorisasi atau izin tidak diminta.

Peristiwa akan dilaporkan paling banyak sekali sebagai upaya terbaik.
Memerlukan AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parameter
request ReportEventRequest: Nilai ini tidak boleh null.

executor Executor: Nilai ini tidak boleh null.

receiver OutcomeReceiver: Nilai ini tidak boleh null.

laporanTayangan

Ditambahkan di level API 34
Juga di Ekstensi Layanan Iklan 4
public void reportImpression (ReportImpressionRequest request, 
                Executor executor, 
                OutcomeReceiver<ObjectException> receiver)

Memberi tahu layanan bahwa ada tayangan baru yang akan dilaporkan untuk iklan yang dipilih oleh proses pemilihan iklan yang diidentifikasi oleh adSelectionId. Tidak ada jaminan terkait kapan tayangan iklan akan dilaporkan. Pelaporan tayangan dapat tertunda dan laporan dapat dikelompokkan.

Untuk menghitung URL pelaporan penjual yang menang, layanan mengambil JavaScript penjual logika dari AdSelectionConfig#getDecisionLogicUri() yang ditemukan di ReportImpressionRequest.getAdSelectionConfig(). Kemudian, layanan mengeksekusi salah satu yang ditemukan di JS penjual yang disebut reportResult, yang memberikan sinyal di perangkat sebagai serta ReportImpressionRequest#getAdSelectionConfig() sebagai parameter input.

Definisi fungsi reportResult adalah:

function reportResult(ad_selection_config, render_url, bid, contextual_signals) { return { 'status': status, 'results': {'signals_for_buyer': signals_for_buyer, 'reporting_url': reporting_url } }; }

Untuk menghitung URL pelaporan pembeli yang menang, layanan ini mengambil Logika JavaScript yang diambil melalui CustomAudience.getBiddingLogicUri() pembeli. Kemudian, layanan mengeksekusi salah satu fungsi yang ditemukan di JS pembeli yang disebut reportWin, yang menyediakan sinyal di perangkat, signals_for_buyer yang dihitung oleh reportResult, dan spesifik dari ReportImpressionRequest#getAdSelectionConfig() sebagai parameter input.

Definisi fungsi reportWin adalah:

function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer, contextual_signals, custom_audience_reporting_signals) { return {'status': 0, 'results': {'reporting_url': reporting_url } }; }

Selain itu, pembeli dan penjual memiliki opsi untuk mendaftar guna menerima laporan tentang peristiwa iklan. Untuk melakukannya, mereka dapat memanggil fungsi registerAdBeacon yang disediakan platform di dalam reportWin dan reportResult masing-masing untuk pembeli dan penjual.

Definisi fungsi registerBeacon adalah:

function registerAdBeacon(beacons), dengan beacons adalah dict dari string untuk pasangan string

Untuk setiap peristiwa iklan yang ingin dilaporkan oleh pembeli/penjual, mereka akan menambahkan pasangan event_key: event_reporting_uri ke dikte beacons, dengan event_key adalah ID untuk peristiwa spesifik tersebut. event_key ini harus cocok ReportEventRequest#getKey() saat SDK memanggil reportEvent(ReportEventRequest, Executor, OutcomeReceiver). Selain itu, setiap event_reporting_uri harus diurai dengan benar ke dalam Uri. Ini akan menjadi Uri yang dilaporkan saat SDK memanggil reportEvent(ReportEventRequest, Executor, OutcomeReceiver).

Saat pembeli/penjual telah menambahkan semua pasangan yang ingin mereka terima peristiwanya, mereka dapat panggil registerAdBeacon(beacons), dengan beacons adalah nama dikte yang yang ditambahkan pasangan.

registerAdBeacon akan menampilkan TypeError dalam situasi ini:

  1. registerAdBeacon dipanggil lebih dari sekali. Jika {i>error<i} ini ditemukan dalam reportWin/reportResult, kumpulan pasangan asli akan didaftarkan
  2. registerAdBeacon tidak memiliki tepat 1 argumen dict.
  3. Konten argumen 1 dikte bukan semua pasangan String: String.

Output diteruskan oleh receiver, yang menampilkan Object kosong agar operasi berhasil, atau Exception menyertakan jenis pengecualian yang ditampilkan dan pesan {i>error<i} yang terkait.

Jika IllegalArgumentException ditampilkan, hal tersebut disebabkan oleh argumen input yang tidak valid yang diterima API untuk melaporkan tayangan iklan.

Jika IllegalStateException ditampilkan dengan pesan error "Failure of AdSelection layanan.", hal ini disebabkan oleh kegagalan internal layanan pemilihan iklan.

Jika LimitExceededException ditampilkan, hal itu akan terjadi saat paket panggilan melebihi batas kapasitas yang diizinkan dan akan di-throttle.

Jika SecurityException ditampilkan, error tersebut akan muncul saat pemanggil tidak diberi otorisasi atau izin tidak diminta.

Tayangan akan dilaporkan maksimal sekali sebagai upaya upaya terbaik.
Memerlukan AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parameter
request ReportImpressionRequest: Nilai ini tidak boleh null.

executor Executor: Nilai ini tidak boleh null.

receiver OutcomeReceiver: Nilai ini tidak boleh null.

selectAds

public void selectAds (AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, 
                Executor executor, 
                OutcomeReceiver<AdSelectionOutcomeException> receiver)

Memilih iklan dari hasil pemilihan iklan yang dijalankan sebelumnya.

adSelectionFromOutcomesConfig input disediakan oleh Ads SDK dan objek AdSelectionFromOutcomesConfig ditransfer melalui panggilan Binder. Karena alasan ini, ukuran total objek ini terikat pada batasan IPC Android. Kegagalan saat mentransfer AdSelectionFromOutcomesConfig akan menampilkan TransactionTooLargeException.

Output diteruskan oleh penerima, yang akan menampilkan AdSelectionOutcome agar operasi berhasil, atau Exception menyertakan jenis pengecualian yang ditampilkan dan pesan {i>error<i} yang terkait.

adSelectionFromOutcomesConfig input berisi:

Jika IllegalArgumentException ditampilkan, hal tersebut disebabkan oleh argumen input yang tidak valid yang diterima API untuk menjalankan pemilihan iklan.

Jika IllegalStateException ditampilkan dengan pesan error "Failure of AdSelection layanan.", hal ini disebabkan oleh kegagalan internal layanan pemilihan iklan.

Jika TimeoutException ditampilkan, error tersebut disebabkan saat waktu tunggu habis selama proses bidding, penskoran, atau keseluruhan proses pemilihan untuk menemukan Iklan pemenang.

Jika LimitExceededException ditampilkan, hal itu akan terjadi saat paket panggilan melebihi batas kapasitas yang diizinkan dan akan di-throttle.

Jika SecurityException ditampilkan, error tersebut terjadi saat pemanggil tidak diberi otorisasi atau izin tidak diminta.
Memerlukan AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parameter
adSelectionFromOutcomesConfig AdSelectionFromOutcomesConfig: Nilai ini tidak boleh null.

executor Executor: Nilai ini tidak boleh null. Peristiwa callback dan pemroses dikirim melalui ini Executor, yang menyediakan cara mudah untuk mengontrol thread mana data Untuk mengirim peristiwa melalui thread utama metode Anda dapat menggunakan Context.getMainExecutor(). Jika tidak, sediakan Executor yang melakukan pengiriman ke thread yang sesuai.

receiver OutcomeReceiver: Nilai ini tidak boleh null.

selectAds

Ditambahkan di level API 34
public void selectAds (AdSelectionConfig adSelectionConfig, 
                Executor executor, 
                OutcomeReceiver<AdSelectionOutcomeException> receiver)

Menjalankan proses pemilihan iklan di perangkat untuk memilih iklan pemasaran ulang untuk pemanggil aplikasi.

adSelectionConfig input disediakan oleh Ads SDK dan objek AdSelectionConfig ditransfer melalui panggilan Binder. Karena alasan ini, ukuran total objek ini terikat pada batasan IPC Android. Jika gagal mentransfer AdSelectionConfig, TransactionTooLargeException akan ditampilkan.

Input adSelectionConfig berisi Decision Logic Uri yang dapat mengikuti baik skema HTTPS atau Bawaan Pilihan Iklan.

Jika URI mengikuti skema HTTPS, host harus cocok dengan seller. Jika tidak, IllegalArgumentException akan ditampilkan.

URI bawaan adalah cara menggantikan logika bawaan generik dengan JavaScript untuk scoreAds. Uri bawaan untuk endpoint ini harus mengikuti;

  • ad-selection-prebuilt://ad-selection/<name>?<script-generation-parameters>

Jika URI bawaan yang tidak didukung diteruskan atau fitur URI bawaan dinonaktifkan oleh layanan, IllegalArgumentException akan ditampilkan.

Lihat AdSelectionConfig.Builder#setDecisionLogicUri untuk mengetahui <name> dan <script-generation-parameters> diperlukan.

Output diteruskan oleh penerima, yang akan menampilkan AdSelectionOutcome agar operasi berhasil, atau Exception menyertakan jenis pengecualian yang ditampilkan dan pesan {i>error<i} yang terkait.

Jika IllegalArgumentException ditampilkan, hal tersebut disebabkan oleh argumen input yang tidak valid yang diterima API untuk menjalankan pemilihan iklan.

Jika IllegalStateException ditampilkan dengan pesan error "Failure of AdSelection layanan.", hal ini disebabkan oleh kegagalan internal layanan pemilihan iklan.

Jika TimeoutException ditampilkan, error tersebut disebabkan saat waktu tunggu habis selama proses bidding, penskoran, atau keseluruhan proses pemilihan untuk menemukan Iklan pemenang.

Jika LimitExceededException ditampilkan, hal itu akan terjadi saat paket panggilan melebihi batas kapasitas yang diizinkan dan akan di-throttle.

Jika SecurityException ditampilkan, error tersebut akan muncul saat pemanggil tidak diberi otorisasi atau izin tidak diminta.
Memerlukan AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parameter
adSelectionConfig AdSelectionConfig: Nilai ini tidak boleh null.

executor Executor: Nilai ini tidak boleh null. Peristiwa callback dan pemroses dikirim melalui ini Executor, yang menyediakan cara mudah untuk mengontrol thread mana data Untuk mengirim peristiwa melalui thread utama metode Anda dapat menggunakan Context.getMainExecutor(). Jika tidak, sediakan Executor yang melakukan pengiriman ke thread yang sesuai.

receiver OutcomeReceiver: Nilai ini tidak boleh null.

updateAdCounterHistogram

public void updateAdCounterHistogram (UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, 
                Executor executor, 
                OutcomeReceiver<ObjectException> outcomeReceiver)

Memperbarui histogram penghitung untuk iklan yang sebelumnya dipilih oleh panggilan ke selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver).

Histogram penghitung digunakan dalam pemilihan iklan untuk menginformasikan pemfilteran pembatasan frekuensi pada iklan kandidat. Iklan yang batas frekuensinya terpenuhi atau terlampaui akan dihapus dari yang sama selama pemilihan iklan.

Histogram penghitung hanya dapat diperbarui untuk iklan yang ditentukan oleh adSelectionId tertentu yang ditampilkan oleh panggilan terbaru ke pemilihan iklan FLEDGE dari aplikasi pemanggil yang sama.

SecurityException ditampilkan melalui outcomeReceiver jika:

  1. aplikasi belum menyatakan izin yang benar dalam manifesnya, atau
  2. aplikasi atau entitas yang diidentifikasi oleh callerAdTechIdentifier tidak diizinkan untuk menggunakan API.
IllegalStateException ditampilkan melalui outcomeReceiver jika panggilan tersebut tidak berasal dari aplikasi dengan aktivitas latar depan.

LimitExceededException ditampilkan melalui outcomeReceiver jika panggilan melebihi throttle API aplikasi pemanggil.

Dalam semua kasus kegagalan lainnya, outcomeReceiver akan menampilkan Object kosong. Perlu diperhatikan bahwa untuk melindungi privasi pengguna, error internal tidak akan dikirim kembali melalui pengecualian.
Memerlukan AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parameter
updateAdCounterHistogramRequest UpdateAdCounterHistogramRequest: Nilai ini tidak boleh null.

executor Executor: Nilai ini tidak boleh null. Peristiwa callback dan pemroses dikirim melalui ini Executor, yang menyediakan cara mudah untuk mengontrol thread mana data Untuk mengirim peristiwa melalui thread utama metode Anda dapat menggunakan Context.getMainExecutor(). Jika tidak, sediakan Executor yang melakukan pengiriman ke thread yang sesuai.

outcomeReceiver OutcomeReceiver: Nilai ini tidak boleh null.