AdSelectionManager
public
class
AdSelectionManager
extends Object
| java.lang.Object | |
| ↳ | android.adservices.adselection.AdSelectionManager |
AdSelection Manager มี API สำหรับแอปและ SDK โฆษณาเพื่อเรียกใช้กระบวนการเลือกโฆษณา รวมถึง รายงานจำนวนการแสดงผล
สรุป
วิธีการสาธารณะ | |
|---|---|
static
AdSelectionManager
|
get(Context context)
การสร้างอินสแตนซ์ของ AdSelectionManager โดยใช้วิธีการจากโรงงาน |
void
|
getAdSelectionData(GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
รวบรวมข้อมูลกลุ่มเป้าหมายที่กำหนดเองจากอุปกรณ์ |
TestAdSelectionManager
|
getTestAdSelectionManager()
|
void
|
persistAdSelectionResult(PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
คงผลการเลือกโฆษณาจากฝั่งเซิร์ฟเวอร์ |
void
|
reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
แจ้งบริการว่ามีเหตุการณ์โฆษณาใหม่ที่จะรายงานสำหรับโฆษณาที่เลือกโดย
การเรียกใช้การเลือกโฆษณาที่ระบุโดย |
void
|
reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
แจ้งบริการว่ามีการแสดงผลใหม่ที่จะรายงานสำหรับโฆษณาที่เลือกโดย
การเรียกใช้การเลือกโฆษณาที่ระบุโดย |
void
|
selectAds(AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
เลือกโฆษณาจากผลลัพธ์ของการเลือกโฆษณาที่เคยเรียกใช้ก่อนหน้านี้ |
void
|
selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
เรียกใช้กระบวนการเลือกโฆษณาบนอุปกรณ์เพื่อเลือกโฆษณารีมาร์เก็ตติ้งสำหรับผู้โทร แอปพลิเคชัน |
void
|
updateAdCounterHistogram(UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
อัปเดตฮิสโตแกรมตัวนับสำหรับโฆษณาที่ก่อนหน้านี้เลือกโดยการเรียกไปยัง |
วิธีการที่รับมา | |
|---|---|
วิธีการสาธารณะ
รับ
public static AdSelectionManager get (Context context)
การสร้างอินสแตนซ์ของ AdSelectionManager โดยใช้วิธีการจากโรงงาน
| พารามิเตอร์ | |
|---|---|
context |
Context: Context ที่จะใช้
ค่านี้ต้องไม่เป็น null |
| คิกรีเทิร์น | |
|---|---|
AdSelectionManager |
อินสแตนซ์ AdSelectionManager
ค่านี้ต้องไม่เป็น null |
รับข้อมูลการเลือกโฆษณา
public void getAdSelectionData (GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
รวบรวมข้อมูลกลุ่มเป้าหมายที่กำหนดเองจากอุปกรณ์ แสดง BLOB ที่บีบอัดและเข้ารหัสที่ส่งไปยัง เซิร์ฟเวอร์การประมูลเพื่อเลือกโฆษณา สำหรับรายละเอียดเพิ่มเติม โปรดไปที่ การเสนอราคา และคำอธิบายบริการประมูล
โฆษณากลุ่มเป้าหมายที่กำหนดเองต้องมี ad_render_id จึงจะมีสิทธิ์ในการรวบรวม
ดู AdSelectionManager#persistAdSelectionResult วิธีประมวลผลผลลัพธ์ของ
การเลือกโฆษณาจะทำงานในฝั่งเซิร์ฟเวอร์พร้อม BLOB ที่สร้างโดย API นี้
ตัวรับเอาต์พุตจะส่งเอาต์พุต ซึ่งอาจเป็น GetAdSelectionDataOutcome สำหรับการเรียกใช้ที่สำเร็จ หรือ Exception จะรวมประเภท
มีการส่งข้อยกเว้นและข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง
หากระบบโยน IllegalArgumentException ไม่ได้ อาจเกิดจากอาร์กิวเมนต์อินพุตที่ไม่ถูกต้อง
API ที่ได้รับเพื่อเรียกใช้การเลือกโฆษณา
หากระบบแสดง IllegalStateException พร้อมข้อความแสดงข้อผิดพลาด "ความล้มเหลวของการเลือกโฆษณา"
บริการ" แสดงว่าเกิดจากความล้มเหลวภายในของบริการเลือกโฆษณา
หากระบบโยน TimeoutException จะเกิดข้อผิดพลาดก็ต่อเมื่อหมดเวลา
ในระหว่างขั้นตอนการเสนอราคา การให้คะแนน หรือการเลือกโดยรวมเพื่อค้นหาโฆษณาที่ชนะการประมูล
หากระบบส่ง LimitExceededException สาเหตุจะเกิดขึ้นเมื่อแพ็กเกจการโทร
เกินขีดจำกัดของอัตราที่อนุญาตและถูกควบคุม
หากระบบโยน SecurityException ให้ โหนดนี้จะเกิดขึ้นเมื่อผู้โทรไม่ได้รับอนุญาต
หรือไม่มีการขอสิทธิ์
ต้องใช้ AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| พารามิเตอร์ | |
|---|---|
request |
GetAdSelectionDataRequest: ค่านี้ต้องไม่เป็น null |
executor |
Executor: ค่านี้ต้องไม่เป็น null
ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้
Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่
ในการส่งกิจกรรมผ่านชุดข้อความหลักของ
คุณสามารถใช้
Context.getMainExecutor()
หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม |
receiver |
OutcomeReceiver: ค่านี้ต้องไม่เป็น null |
getTestAdSelectionManager
public TestAdSelectionManager getTestAdSelectionManager ()
| คิกรีเทิร์น | |
|---|---|
TestAdSelectionManager |
ค่านี้ต้องไม่เป็น null |
perAdSelectionผลลัพธ์
public void persistAdSelectionResult (PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
คงผลการเลือกโฆษณาจากฝั่งเซิร์ฟเวอร์ สำหรับรายละเอียดเพิ่มเติม โปรดไปที่ การเสนอราคา และคำอธิบายบริการประมูล
ดู AdSelectionManager#getAdSelectionData สำหรับวิธีสร้าง BLOB ที่เข้ารหัสเพื่อ
เรียกใช้การเลือกโฆษณาในฝั่งเซิร์ฟเวอร์
ตัวรับส่งสัญญาณเอาต์พุต ซึ่งจะแสดงผล AdSelectionOutcome
เพื่อให้การเรียกใช้เสร็จสมบูรณ์ หรือ Exception จะมีประเภทของข้อยกเว้นที่ส่ง
ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง
หากระบบโยน IllegalArgumentException ไม่ได้ อาจเกิดจากอาร์กิวเมนต์อินพุตที่ไม่ถูกต้อง
API ที่ได้รับเพื่อเรียกใช้การเลือกโฆษณา
หากระบบแสดง IllegalStateException พร้อมข้อความแสดงข้อผิดพลาด "ความล้มเหลวของการเลือกโฆษณา"
บริการ" แสดงว่าเกิดจากความล้มเหลวภายในของบริการเลือกโฆษณา
หากระบบโยน TimeoutException จะเกิดข้อผิดพลาดก็ต่อเมื่อหมดเวลา
ในระหว่างขั้นตอนการเสนอราคา การให้คะแนน หรือการเลือกโดยรวมเพื่อค้นหาโฆษณาที่ชนะการประมูล
หากระบบส่ง LimitExceededException สาเหตุจะเกิดขึ้นเมื่อแพ็กเกจการโทร
เกินขีดจำกัดของอัตราที่อนุญาตและถูกควบคุม
หากระบบโยน SecurityException ให้ ข้อผิดพลาดนี้เกิดขึ้นเมื่อผู้โทรไม่ได้รับอนุญาต
หรือไม่มีการขอสิทธิ์
ต้องใช้ AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| พารามิเตอร์ | |
|---|---|
request |
PersistAdSelectionResultRequest: ค่านี้ต้องไม่เป็น null |
executor |
Executor: ค่านี้ต้องไม่เป็น null
ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้
Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่
ในการส่งกิจกรรมผ่านชุดข้อความหลักของ
คุณสามารถใช้
Context.getMainExecutor()
หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม |
receiver |
OutcomeReceiver: ค่านี้ต้องไม่เป็น null |
เหตุการณ์รายงาน
public void reportEvent (ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
แจ้งบริการว่ามีเหตุการณ์โฆษณาใหม่ที่จะรายงานสำหรับโฆษณาที่เลือกโดย
การเรียกใช้การเลือกโฆษณาที่ระบุโดย adSelectionId เหตุการณ์โฆษณาคือรายการที่
เกิดขึ้นกับโฆษณาที่เชื่อมโยงกับ adSelectionId ที่ระบุ ไม่มีการรับประกันเกี่ยวกับ
เวลาที่ระบบจะรายงานเหตุการณ์โฆษณา การรายงานเหตุการณ์อาจล่าช้าและรายงานอาจ
รวมกลุ่มแล้ว
เมื่อใช้ ReportEventRequest#getKey() บริการจะดึงข้อมูล reportingUri
ซึ่งจดทะเบียนในregisterAdBeacon ดูรายละเอียดเพิ่มเติมเกี่ยวกับ registerAdBeacon ในเอกสารของ reportImpression(ReportImpressionRequest, Executor, OutcomeReceiver) จากนั้น บริการ
จะแนบ ReportEventRequest#getData() เข้ากับเนื้อหาคำขอของคำขอ POST และ
ส่งคำขอ ส่วนเนื้อหาของคำขอ POST จะมี content-type เป็น text/plain และจะส่งข้อมูลใน charset=UTF-8
ตัวรับส่งสัญญาณเอาต์พุต ซึ่งจะแสดงผล Object ที่ว่างเปล่าสําหรับ
รันสำเร็จ หรือ Exception จะมีประเภทของข้อยกเว้นที่ใส่ และ
ที่เกี่ยวข้อง
หากระบบโยน IllegalArgumentException ไม่ได้ อาจเกิดจากอาร์กิวเมนต์อินพุตที่ไม่ถูกต้อง
API ที่ได้รับในการรายงานเหตุการณ์โฆษณา
หากระบบแสดง IllegalStateException พร้อมข้อความแสดงข้อผิดพลาด "ความล้มเหลวของการเลือกโฆษณา"
บริการ" แสดงว่าเกิดจากความล้มเหลวภายในของบริการเลือกโฆษณา
หากระบบส่ง LimitExceededException สาเหตุจะเกิดขึ้นเมื่อแพ็กเกจการโทร
เกินขีดจำกัดของอัตราที่อนุญาตและถูกควบคุม
หากระบบโยน SecurityException ให้ ข้อผิดพลาดนี้เกิดขึ้นเมื่อผู้โทรไม่ได้รับอนุญาต
หรือไม่มีการขอสิทธิ์
ระบบจะรายงานกิจกรรมมากที่สุด 1 ครั้งเพื่อพยายามอย่างเต็มที่
ต้องใช้ AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| พารามิเตอร์ | |
|---|---|
request |
ReportEventRequest: ค่านี้ต้องไม่เป็น null |
executor |
Executor: ค่านี้ต้องไม่เป็น null |
receiver |
OutcomeReceiver: ค่านี้ต้องไม่เป็น null |
รายงานการแสดงผล
public void reportImpression (ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
แจ้งบริการว่ามีการแสดงผลใหม่ที่จะรายงานสำหรับโฆษณาที่เลือกโดย
การเรียกใช้การเลือกโฆษณาที่ระบุโดย adSelectionId โดยไม่สามารถรับประกันได้ว่า
จะรายงานการแสดงผล การรายงานการแสดงผลอาจมีความล่าช้าและรายงาน
รวมกลุ่มแล้ว
บริการจะดึงข้อมูล JavaScript ของผู้ขายเพื่อคำนวณ URL การรายงานของผู้ขายที่ชนะ
ตรรกะจาก AdSelectionConfig#getDecisionLogicUri() ที่พบที่ ReportImpressionRequest.getAdSelectionConfig() จากนั้น บริการจะดำเนินการอย่างใดอย่างหนึ่ง
ที่พบใน JS ของผู้ขายชื่อ reportResult โดยให้สัญญาณในอุปกรณ์เป็น
รวมถึง ReportImpressionRequest#getAdSelectionConfig() เป็นพารามิเตอร์อินพุต
คำจำกัดความฟังก์ชันของ reportResult คือ
function reportResult(ad_selection_config, render_url, bid, contextual_signals) {
return { 'status': status, 'results': {'signals_for_buyer': signals_for_buyer,
'reporting_url': reporting_url } }; }
ในการคำนวณ URL การรายงานของผู้ซื้อที่ชนะ บริการจะดึงข้อมูลของผู้ซื้อที่ชนะ
ลอจิก JavaScript ที่ดึงข้อมูลผ่าน CustomAudience.getBiddingLogicUri() ของผู้ซื้อ จากนั้น บริการ
จะดำเนินการกับฟังก์ชันที่พบใน JS ของผู้ซื้อที่ชื่อ reportWin โดยที่
สัญญาณในอุปกรณ์ signals_for_buyer ที่คํานวณโดย reportResult และเฉพาะเจาะจง
จาก ReportImpressionRequest#getAdSelectionConfig() เป็นพารามิเตอร์อินพุต
คำจำกัดความฟังก์ชันของ reportWin คือ
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 } }; }
นอกจากนี้ ผู้ซื้อและผู้ขายมีตัวเลือกในการลงทะเบียนเพื่อรับรายงานเกี่ยวกับ
เหตุการณ์โฆษณา ซึ่งทำได้โดยเรียกใช้ฟังก์ชัน registerAdBeacon ที่จัดให้ในแพลตฟอร์ม
ภายใน reportWin และ reportResult สำหรับผู้ซื้อและผู้ขายตามลำดับ
คำจำกัดความฟังก์ชันของ registerBeacon คือ
function registerAdBeacon(beacons) โดยที่ beacons เป็นคำสั่งของสตริงเพื่อ
คู่สตริง
สำหรับเหตุการณ์โฆษณาแต่ละรายการที่ผู้ซื้อ/ผู้ขายสนใจในรายงาน ก็จะเพิ่มคู่ event_key: event_reporting_uri ในคำสั่ง beacons โดยที่ event_key เป็นตัวระบุสำหรับเหตุการณ์นั้นๆ event_keyนี้ควรตรงกับ
ReportEventRequest#getKey() เมื่อ SDK เรียกใช้ reportEvent(ReportEventRequest, Executor, OutcomeReceiver) นอกจากนี้
event_reporting_uri แต่ละรายการควรแยกวิเคราะห์เป็น Uri อย่างถูกต้อง ช่วงเวลานี้
จะเป็น Uri ที่รายงานเมื่อ SDK เรียกใช้ reportEvent(ReportEventRequest, Executor, OutcomeReceiver)
เมื่อผู้ซื้อ/ผู้ขายเพิ่มการจับคู่ทั้งหมดที่ต้องการรับเหตุการณ์แล้ว ก็จะสามารถ
เรียกใช้ registerAdBeacon(beacons) โดยที่ beacons เป็นชื่อของคำสั่งที่
เพิ่มคู่สนทนาแล้ว
registerAdBeacon จะโยน TypeError ในสถานการณ์ต่อไปนี้
- เรียก
registerAdBeaconมากกว่า 1 ครั้ง หากพบข้อผิดพลาดนี้ reportWin/reportผลลัพธ์ การจับคู่ชุดเดิมจะได้รับการลงทะเบียน registerAdBeaconไม่มีอาร์กิวเมนต์ dict 1 รายการ- เนื้อหาของอาร์กิวเมนต์ 1 คำสั่ง 1 ไม่ใช่การจับคู่
String: Stringทั้งหมด
เอาต์พุตจะส่งโดย receiver ซึ่งแสดงผล Object ที่ว่างเปล่า
เพื่อให้การเรียกใช้เสร็จสมบูรณ์ หรือ Exception จะมีประเภทของข้อยกเว้นที่ส่ง
ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง
หากระบบโยน IllegalArgumentException ไม่ได้ อาจเกิดจากอาร์กิวเมนต์อินพุตที่ไม่ถูกต้อง
API ที่ได้รับเพื่อรายงานการแสดงผล
หากระบบแสดง IllegalStateException พร้อมข้อความแสดงข้อผิดพลาด "ความล้มเหลวของการเลือกโฆษณา"
บริการ" แสดงว่าเกิดจากความล้มเหลวภายในของบริการเลือกโฆษณา
หากระบบส่ง LimitExceededException สาเหตุจะเกิดขึ้นเมื่อแพ็กเกจการโทร
เกินขีดจำกัดของอัตราที่อนุญาตและถูกควบคุม
หากระบบโยน SecurityException ให้ ข้อผิดพลาดนี้เกิดขึ้นเมื่อผู้โทรไม่ได้รับอนุญาต
หรือไม่มีการขอสิทธิ์
ระบบจะรายงานการแสดงผลมากที่สุด 1 ครั้งเพื่อพยายามอย่างเต็มที่
ต้องใช้ AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| พารามิเตอร์ | |
|---|---|
request |
ReportImpressionRequest: ค่านี้ต้องไม่เป็น null |
executor |
Executor: ค่านี้ต้องไม่เป็น null |
receiver |
OutcomeReceiver: ค่านี้ต้องไม่เป็น null |
เลือกโฆษณา
public void selectAds (AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
เลือกโฆษณาจากผลลัพธ์ของการเลือกโฆษณาที่เคยเรียกใช้ก่อนหน้านี้
อินพุต adSelectionFromOutcomesConfig มาจาก Ads SDK และออบเจ็กต์ AdSelectionFromOutcomesConfig ได้รับการโอนผ่านการเรียกใช้ Binder ด้วยเหตุนี้
ขนาดทั้งหมดของวัตถุเหล่านี้เชื่อมโยงกับข้อจำกัด IPC ของ Android โอนไม่สำเร็จ
AdSelectionFromOutcomesConfig จะขว้าง TransactionTooLargeException
ตัวรับส่งสัญญาณเอาต์พุต ซึ่งจะแสดงผล AdSelectionOutcome
เพื่อให้การเรียกใช้เสร็จสมบูรณ์ หรือ Exception จะมีประเภทของข้อยกเว้นที่ส่ง
ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง
อินพุต adSelectionFromOutcomesConfig ประกอบด้วย:
Sellerต้องเป็นAdTechIdentifierที่จดทะเบียน หรือไม่เช่นนั้นIllegalStateExceptionจะถูกโยนList of ad selection idsควรมีอยู่และมาจากการโทรselectAds(AdSelectionConfig, Executor, OutcomeReceiver)รายการที่มาจากแอปพลิเคชันเดียวกัน หรือไม่เช่นนั้นIllegalArgumentExceptionเพื่อตรวจสอบความถูกต้องของข้อมูลจะเพิ่มโฆษณาที่ละเมิดข้อมูล รหัสการเลือกSelection logic URIที่อาจเป็นไปตาม HTTPS หรือการสร้างการเลือกโฆษณาที่สร้างไว้ล่วงหน้า สคีมาหาก URI เป็นไปตามสคีมา HTTPS โฮสต์ควรตรงกับ
sellerไม่เช่นนั้น ระบบจะโยนIllegalArgumentExceptionให้URI ที่สร้างไว้ล่วงหน้าเป็นวิธีแทนที่ตรรกะที่สร้างไว้ล่วงหน้าทั่วไปสำหรับ JavaScript สำหรับ
selectOutcomeURI ที่สร้างไว้ล่วงหน้าสำหรับปลายทางนี้ควรเป็นไปตามนี้ad-selection-prebuilt://ad-selection-from-outcomes/<name>?<script-generation-parameters>
หากมีการส่ง URI ที่สร้างไว้ล่วงหน้าที่ไม่รองรับ หรือมีการปิดใช้ฟีเจอร์ URI ที่สร้างไว้ล่วงหน้า จากนั้น ระบบจะทิ้ง
IllegalArgumentExceptionดู
AdSelectionFromOutcomesConfig.Builder#setSelectionLogicUriสำหรับการสนับสนุน<name>และต้องใช้<script-generation-parameters>
หากระบบโยน IllegalArgumentException ไม่ได้ อาจเกิดจากอาร์กิวเมนต์อินพุตที่ไม่ถูกต้อง
API ที่ได้รับเพื่อเรียกใช้การเลือกโฆษณา
หากระบบแสดง IllegalStateException พร้อมข้อความแสดงข้อผิดพลาด "ความล้มเหลวของการเลือกโฆษณา"
บริการ" แสดงว่าเกิดจากความล้มเหลวภายในของบริการเลือกโฆษณา
หากระบบโยน TimeoutException จะเกิดข้อผิดพลาดก็ต่อเมื่อหมดเวลา
ในระหว่างขั้นตอนการเสนอราคา การให้คะแนน หรือการเลือกโดยรวมเพื่อค้นหาโฆษณาที่ชนะการประมูล
หากระบบส่ง LimitExceededException สาเหตุจะเกิดขึ้นเมื่อแพ็กเกจการโทร
เกินขีดจำกัดของอัตราที่อนุญาตและถูกควบคุม
หากระบบโยน SecurityException ให้ ข้อผิดพลาดนี้เกิดขึ้นเมื่อผู้โทรไม่ได้รับอนุญาต
หรือไม่มีการขอสิทธิ์
ต้องใช้ AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| พารามิเตอร์ | |
|---|---|
adSelectionFromOutcomesConfig |
AdSelectionFromOutcomesConfig: ค่านี้ต้องไม่เป็น null |
executor |
Executor: ค่านี้ต้องไม่เป็น null
ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้
Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่
ในการส่งกิจกรรมผ่านชุดข้อความหลักของ
คุณสามารถใช้
Context.getMainExecutor()
หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม |
receiver |
OutcomeReceiver: ค่านี้ต้องไม่เป็น null |
เลือกโฆษณา
public void selectAds (AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
เรียกใช้กระบวนการเลือกโฆษณาบนอุปกรณ์เพื่อเลือกโฆษณารีมาร์เก็ตติ้งสำหรับผู้โทร แอปพลิเคชัน
อินพุต adSelectionConfig มาจาก Ads SDK และออบเจ็กต์ AdSelectionConfig ได้รับการโอนผ่านการเรียกใช้ Binder ด้วยเหตุนี้ ขนาดรวม
ของออบเจ็กต์เหล่านี้เป็นไปตามข้อจำกัด Android IPC หากโอน AdSelectionConfig ไม่สำเร็จ จะทำให้ได้ TransactionTooLargeException
อินพุต adSelectionConfig มี Decision Logic Uri ที่ติดตามได้
สคีมา HTTPS หรือสคีมาการเลือกโฆษณาที่สร้างไว้ล่วงหน้า
หาก URI เป็นไปตามสคีมา HTTPS โฮสต์ควรตรงกับ seller หรือไม่เช่นนั้น
จะมีการขว้าง IllegalArgumentException
URI ที่สร้างไว้ล่วงหน้าเป็นวิธีแทนที่ตรรกะที่สร้างไว้ล่วงหน้าทั่วไปสำหรับ
JavaScript สำหรับ scoreAds URI ที่สร้างไว้ล่วงหน้าสำหรับปลายทางนี้ควรเป็นไปตามนี้
ad-selection-prebuilt://ad-selection/<name>?<script-generation-parameters>
หากมีการส่ง URI ที่สร้างไว้ล่วงหน้าที่ไม่รองรับ หรือมีการปิดใช้ฟีเจอร์ URI ที่สร้างไว้ล่วงหน้า
จากนั้น ระบบจะทิ้ง IllegalArgumentException
ดูAdSelectionConfig.Builder#setDecisionLogicUriสำหรับ<name>ที่รองรับและ
ต้องใช้ <script-generation-parameters>
ตัวรับส่งสัญญาณเอาต์พุต ซึ่งจะแสดงผล AdSelectionOutcome
เพื่อให้การเรียกใช้เสร็จสมบูรณ์ หรือ Exception จะมีประเภทของข้อยกเว้นที่ส่ง
ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง
หากระบบโยน IllegalArgumentException ไม่ได้ อาจเกิดจากอาร์กิวเมนต์อินพุตที่ไม่ถูกต้อง
API ที่ได้รับเพื่อเรียกใช้การเลือกโฆษณา
หากระบบแสดง IllegalStateException พร้อมข้อความแสดงข้อผิดพลาด "ความล้มเหลวของการเลือกโฆษณา"
บริการ" แสดงว่าเกิดจากความล้มเหลวภายในของบริการเลือกโฆษณา
หากระบบโยน TimeoutException จะเกิดข้อผิดพลาดก็ต่อเมื่อหมดเวลา
ในระหว่างขั้นตอนการเสนอราคา การให้คะแนน หรือการเลือกโดยรวมเพื่อค้นหาโฆษณาที่ชนะการประมูล
หากระบบส่ง LimitExceededException สาเหตุจะเกิดขึ้นเมื่อแพ็กเกจการโทร
เกินขีดจำกัดของอัตราที่อนุญาตและถูกควบคุม
หากระบบโยน SecurityException ให้ ข้อผิดพลาดนี้เกิดขึ้นเมื่อผู้โทรไม่ได้รับอนุญาต
หรือไม่มีการขอสิทธิ์
ต้องใช้ AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| พารามิเตอร์ | |
|---|---|
adSelectionConfig |
AdSelectionConfig: ค่านี้ต้องไม่เป็น null |
executor |
Executor: ค่านี้ต้องไม่เป็น null
ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้
Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่
ในการส่งกิจกรรมผ่านชุดข้อความหลักของ
คุณสามารถใช้
Context.getMainExecutor()
หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม |
receiver |
OutcomeReceiver: ค่านี้ต้องไม่เป็น null |
อัปเดตAdCounterHistogram
public void updateAdCounterHistogram (UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
อัปเดตฮิสโตแกรมตัวนับสำหรับโฆษณาที่ก่อนหน้านี้เลือกโดยการเรียกไปยัง selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver)
ฮิสโตแกรมตัวนับจะใช้ในการเลือกโฆษณาเพื่อแจ้งการกรองความถี่สูงสุด โฆษณาที่เป็นตัวเลือกที่โฆษณาที่มีการแสดงผลตรงกับหรือเกินความถี่สูงสุดจะถูกนำออกจากโฆษณา ระหว่างการเลือกโฆษณา
ฮิสโตแกรมตัวนับสามารถอัปเดตได้เฉพาะโฆษณาที่ระบุโดย adSelectionId ที่ระบุ ซึ่งแสดงผลจากการเรียกการเลือกโฆษณา FLEDGE ครั้งล่าสุดจากแอปผู้โทรเดียวกัน
ระบบจะแสดงผล SecurityException ผ่าน outcomeReceiver ในกรณีต่อไปนี้
- แอปไม่ได้ประกาศสิทธิ์ที่ถูกต้องในไฟล์ Manifest หรือ
- แอปหรือนิติบุคคลที่ระบุโดย
callerAdTechIdentifierไม่ได้รับอนุญาต เพื่อใช้ API
IllegalStateException ผ่านทาง outcomeReceiver หากการเรียกเกิดขึ้น
ไม่ได้มาจากแอปที่มีกิจกรรมเบื้องหน้า
ระบบจะแสดงผล LimitExceededException ผ่าน outcomeReceiver หากการโทร
เกินการควบคุม API ของแอปที่เรียกใช้
ในกรณีอื่นๆ ทั้งหมดที่ดำเนินการไม่สำเร็จ outcomeReceiver จะส่งกลับ Object ที่ว่างเปล่า โปรดทราบว่า เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ ข้อผิดพลาดภายในจะไม่ส่งกลับผ่าน
ข้อยกเว้น
ต้องใช้ AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| พารามิเตอร์ | |
|---|---|
updateAdCounterHistogramRequest |
UpdateAdCounterHistogramRequest: ค่านี้ต้องไม่เป็น null |
executor |
Executor: ค่านี้ต้องไม่เป็น null
ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้
Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่
ในการส่งกิจกรรมผ่านชุดข้อความหลักของ
คุณสามารถใช้
Context.getMainExecutor()
หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม |
outcomeReceiver |
OutcomeReceiver: ค่านี้ต้องไม่เป็น null |