AdSelectionManager

public class AdSelectionManager
extends Object

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


AdSelection Manager, ऐप्लिकेशन और विज्ञापन SDK टूल के लिए एपीआई उपलब्ध कराता है, ताकि विज्ञापन चुनने की प्रोसेस चलाई जा सके रिपोर्ट इंप्रेशन.

खास जानकारी

सार्वजनिक तरीके

static AdSelectionManager get(Context context)

AdSelectionManager का इंस्टेंस बनाने का फ़ैक्ट्री तरीका.

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

डिवाइस से, पसंद के मुताबिक ऑडियंस का डेटा इकट्ठा करता है.

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

सर्वर साइड से विज्ञापन चुनने के नतीजों को बनाए रखता है.

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

उस सेवा को सूचना देता है कि चुने गए विज्ञापन के लिए, रिपोर्ट करने के लिए कोई नया विज्ञापन इवेंट है विज्ञापन चुनने की प्रोसेस की पहचान adSelectionId ने की.

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

उस सेवा को सूचना देता है कि चुने गए विज्ञापन के लिए, रिपोर्ट करने के लिए एक नया इंप्रेशन है विज्ञापन चुनने की प्रोसेस की पहचान adSelectionId ने की.

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

पहले चलाए गए विज्ञापन के परिणामों में से कोई विज्ञापन चुनता है.

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

कॉलर के लिए रीमार्केटिंग विज्ञापन चुनने के लिए, डिवाइस पर विज्ञापन चुनने की प्रक्रिया शुरू करता है का इस्तेमाल करें.

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

selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver) को कॉल करके पहले चुने गए विज्ञापन के काउंटर हिस्टोग्राम को अपडेट करता है.

इनहेरिट किए गए तरीके

सार्वजनिक तरीके

पाएं

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 6 में भी जोड़ा गया
public static AdSelectionManager get (Context context)

AdSelectionManager का इंस्टेंस बनाने का फ़ैक्ट्री तरीका.

पैरामीटर
context Context: इस्तेमाल करने के लिए Context यह मान null नहीं हो सकता.

रिटर्न
AdSelectionManager AdSelectionManager इंस्टेंस यह मान null नहीं हो सकता.

getAdSelectionData

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

डिवाइस से, पसंद के मुताबिक ऑडियंस का डेटा इकट्ठा करता है. भेजने के लिए, कंप्रेस किया गया और एन्क्रिप्ट (सुरक्षित) किया गया BLOB लौटाता है नीलामी सर्वर का इस्तेमाल करता है. ज़्यादा जानकारी के लिए, कृपया बिडिंग पर जाएं और नीलामी सेवाओं के बारे में जानकारी.

कस्टम ऑडियंस विज्ञापनों को इकट्ठा करने के लिए, उनके पास ad_render_id होना ज़रूरी है.

इनके नतीजों को प्रोसेस करने का तरीका जानने के लिए, AdSelectionManager#persistAdSelectionResult पर जाएं विज्ञापन को चुनने का काम, सर्वर-साइड पर किया जाता है. इसके लिए, इस एपीआई से जनरेट किए गए BLOB का इस्तेमाल किया जाता है.

आउटपुट, रिसीवर से पास किया जाता है, जो सही तरीके से चलने के लिए, GetAdSelectionDataOutcome दिखाता है या Exception में यह शामिल होता है: अपवाद के तौर पर डाला गया और उससे जुड़ा गड़बड़ी का मैसेज.

अगर IllegalArgumentException को फेंका जाता है, तो यह अमान्य इनपुट आर्ग्युमेंट की वजह से होता है विज्ञापन चुनने के लिए मिले एपीआई की जानकारी.

अगर IllegalStateException में गड़बड़ी का मैसेज "Failure of AdSelection" दिखता है सेवाएं.",

अगर TimeoutException थ्रो किया गया है, तो यह टाइम आउट के मिलने पर होता है बिडिंग, स्कोर या चुनने की पूरी प्रोसेस के दौरान, सबसे बढ़िया विज्ञापन खोजने के लिए किया जा सकता है.

अगर LimitExceededException को फेंक दिया जाता है, तो यह कॉलिंग पैकेज को करते समय ऐसा होता है तय सीमा से ज़्यादा हो जाता है और इसे थ्रॉटल कर दिया जाता है.

अगर SecurityException को ट्रिगर किया जाता है, तो यह तब दिखता है, जब कॉलर को अनुमति नहीं दी जाती है या अनुमति का अनुरोध नहीं किया गया है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE की ज़रूरत है

पैरामीटर
request GetAdSelectionDataRequest: यह वैल्यू null नहीं हो सकती.

executor Executor: यह वैल्यू null नहीं हो सकती. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

receiver OutcomeReceiver: यह वैल्यू null नहीं हो सकती.

getTestAdSelectionManager

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public TestAdSelectionManager getTestAdSelectionManager ()

रिटर्न
TestAdSelectionManager यह मान null नहीं हो सकता.

परसिस्ट विज्ञापन चुनने का नतीजा

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

सर्वर साइड से विज्ञापन चुनने के नतीजों को बनाए रखता है. ज़्यादा जानकारी के लिए, कृपया बिडिंग पर जाएं और नीलामी सेवाओं के बारे में जानकारी

एन्क्रिप्ट (सुरक्षित) किया गया BLOB जनरेट करने का तरीका जानने के लिए, AdSelectionManager#getAdSelectionData पर जाएं सर्वर साइड पर विज्ञापन को चुनें.

आउटपुट पाने वाला व्यक्ति उसे पास करता है, जो नतीजे के तौर पर AdSelectionOutcome दिखाता है एक सफल रन के लिए होता है या Exception में अपवाद दिया गया होता है और गड़बड़ी का मैसेज भी दिखेगा.

अगर IllegalArgumentException को फेंका जाता है, तो यह अमान्य इनपुट आर्ग्युमेंट की वजह से होता है विज्ञापन चुनने के लिए मिले एपीआई की जानकारी.

अगर IllegalStateException में गड़बड़ी का मैसेज "Failure of AdSelection" दिखता है सेवाएं.",

अगर TimeoutException थ्रो किया गया है, तो यह टाइम आउट के मिलने पर होता है बिडिंग, स्कोर या चुनने की पूरी प्रोसेस के दौरान, सबसे बेहतरीन विज्ञापन खोजने के लिए किया जा सकता है.

अगर LimitExceededException को फेंक दिया जाता है, तो यह कॉलिंग पैकेज को करते समय ऐसा होता है तय सीमा से ज़्यादा हो जाता है और इसे थ्रॉटल कर दिया जाता है.

अगर SecurityException को ट्रिगर किया जाता है, तो यह तब दिखता है, जब कॉलर को अनुमति नहीं दी जाती है या अनुमति का अनुरोध नहीं किया गया है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE की ज़रूरत है

पैरामीटर
request PersistAdSelectionResultRequest: यह वैल्यू null नहीं हो सकती.

executor Executor: यह वैल्यू null नहीं हो सकती. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

receiver OutcomeReceiver: यह वैल्यू null नहीं हो सकती.

रिपोर्टइवेंट

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

उस सेवा को सूचना देता है कि चुने गए विज्ञापन के लिए, रिपोर्ट करने के लिए कोई नया विज्ञापन इवेंट है विज्ञापन चुनने की प्रोसेस की पहचान adSelectionId ने की. विज्ञापन इवेंट तब होता है, जब दिए गए adSelectionId से जुड़े विज्ञापन के साथ होता है. इस बात की कोई गारंटी नहीं है कि विज्ञापन इवेंट की रिपोर्ट कब की जाएगी. इवेंट की रिपोर्टिंग में देरी हो सकती है. साथ ही, रिपोर्ट में देरी हो सकती है बैच किए गए.

ReportEventRequest#getKey() का इस्तेमाल करके, सेवा reportingUri को फ़ेच करेगी जिसे registerAdBeacon में रजिस्टर किया गया था. registerAdBeacon की ज़्यादा जानकारी के लिए, reportImpression(ReportImpressionRequest, Executor, OutcomeReceiver) का दस्तावेज़ देखें. इसके बाद, सेवा में ReportEventRequest#getData() को पोस्ट अनुरोध के मुख्य हिस्से में अटैच कर देगा और अनुरोध भेजें. पीओएसटी अनुरोध के मुख्य हिस्से में text/plain का content-type होगा और डेटा, charset=UTF-8 में भेजा जाएगा.

आउटपुट पाने वाला व्यक्ति इसे पास करता है, जो इसके लिए या तो खाली Object देता है चालू होता है या Exception में अपवाद के तौर पर 'थ्रेशोल्ड' और गड़बड़ी का मैसेज भी दिखेगा.

अगर IllegalArgumentException को फेंका जाता है, तो यह अमान्य इनपुट आर्ग्युमेंट की वजह से होता है विज्ञापन इवेंट की शिकायत करने के लिए मिला एपीआई.

अगर IllegalStateException में गड़बड़ी का मैसेज "Failure of AdSelection" दिखता है सेवाएं.",

अगर LimitExceededException को फेंक दिया जाता है, तो यह कॉलिंग पैकेज को करते समय ऐसा होता है तय सीमा से ज़्यादा हो जाता है और इसे थ्रॉटल कर दिया जाता है.

अगर SecurityException को ट्रिगर किया जाता है, तो यह तब दिखता है, जब कॉलर को अनुमति नहीं दी जाती है या अनुमति का अनुरोध नहीं किया गया है.

इवेंट को ज़्यादा से ज़्यादा एक बार, सबसे सही कोशिश के तौर पर रिपोर्ट किया जाएगा.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE की ज़रूरत है

पैरामीटर
request ReportEventRequest: यह वैल्यू null नहीं हो सकती.

executor Executor: यह वैल्यू null नहीं हो सकती.

receiver OutcomeReceiver: यह वैल्यू null नहीं हो सकती.

रिपोर्टइंप्रेशन

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public void reportImpression (ReportImpressionRequest request, 
                Executor executor, 
                OutcomeReceiver<ObjectException> receiver)

उस सेवा को सूचना देता है कि चुने गए विज्ञापन के लिए, रिपोर्ट करने के लिए एक नया इंप्रेशन है विज्ञापन चुनने की प्रोसेस की पहचान adSelectionId ने की. इस बात की कोई गारंटी नहीं है कि इंप्रेशन रिपोर्ट किए जाएंगे. इंप्रेशन की रिपोर्टिंग में देरी हो सकती है और इसकी वजह से बैच किए गए.

विजेता विक्रेता रिपोर्टिंग यूआरएल का हिसाब लगाने के लिए, सेवा विक्रेता की JavaScript फ़ेच करती है ReportImpressionRequest.getAdSelectionConfig() पर मिले AdSelectionConfig#getDecisionLogicUri() से लॉजिक. इसके बाद, यह सेवा विक्रेता 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 } }; }

विजेता खरीदार के रिपोर्टिंग यूआरएल का हिसाब लगाने के लिए, सेवा, जीतने वाले खरीदार के यूआरएल को फ़ेच करती है JavaScript लॉजिक, जिसे खरीदार के CustomAudience.getBiddingLogicUri() से फ़ेच किया जाता है. इसके बाद, सेवा में खरीदार JS में मिले reportWin फ़ंक्शन में से एक को एक्ज़ीक्यूट करता है, डिवाइस पर मौजूद सिग्नल, reportResult के हिसाब से कैलकुलेट किए गए signals_for_buyer, और किसी खास इनपुट पैरामीटर के तौर पर 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 स्ट्रिंग पेयर

विज्ञापन के हर ऐसे इवेंट के लिए जिसकी रिपोर्ट में खरीदार या सेलर की दिलचस्पी होती है, वह beacons डिक्शनरी में event_key: event_reporting_uri जोड़ा जोड़ देता है. यहां event_key, उस इवेंट का आइडेंटिफ़ायर होता है. यह event_key मेल खाना चाहिए SDK टूल के reportEvent(ReportEventRequest, Executor, OutcomeReceiver) शुरू करने पर ReportEventRequest#getKey(). इसके अलावा, हर event_reporting_uri को Uri में सही तरीके से पार्स होना चाहिए. यह SDK टूल के reportEvent(ReportEventRequest, Executor, OutcomeReceiver) शुरू करने पर, Uri को रिपोर्ट किया जाएगा.

जब खरीदार/विक्रेता ने उन सभी पेयरिंग को जोड़ लिया है जिनके लिए वे इवेंट पाना चाहते हैं, तो वे ये काम कर सकते हैं: registerAdBeacon(beacons) शुरू करें, जहां beacons उनका उच्चारण है ने जोड़ी इसमें जोड़ी.

registerAdBeacon इन स्थितियों में TypeError देगा:

  1. registerAdBeaconको एक से ज़्यादा बार कॉल किया गया है. अगर यह गड़बड़ी पाई जाती है reportWin/reportreport, जोड़े का मूल सेट रजिस्टर किया जाएगा
  2. registerAdBeacon में सिर्फ़ एक लिखवाने वाला तर्क नहीं होता.
  3. 1 लिखवाने वाले आर्ग्युमेंट के कॉन्टेंट में, सभी String: String पेयर नहीं होते हैं.

आउटपुट, receiver से पास किया जाता है, जो या तो खाली Object दिखाता है एक सफल रन के लिए होता है या Exception में अपवाद के तौर पर दिया गया टाइप शामिल होता है और गड़बड़ी का मैसेज भी दिखेगा.

अगर IllegalArgumentException को फेंका जाता है, तो यह अमान्य इनपुट आर्ग्युमेंट की वजह से होता है इंप्रेशन की रिपोर्ट करने के लिए मिले एपीआई को.

अगर IllegalStateException में गड़बड़ी का मैसेज "Failure of AdSelection" दिखता है सेवाएं.",

अगर LimitExceededException को फेंक दिया जाता है, तो यह कॉलिंग पैकेज को करते समय ऐसा होता है तय सीमा से ज़्यादा हो जाता है और इसे थ्रॉटल कर दिया जाता है.

अगर SecurityException को ट्रिगर किया जाता है, तो यह तब दिखता है, जब कॉलर को अनुमति नहीं दी जाती है या अनुमति का अनुरोध नहीं किया गया है.

इंप्रेशन, सबसे अच्छी कोशिश के तौर पर ज़्यादा से ज़्यादा एक बार रिपोर्ट किए जाएंगे.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE की ज़रूरत है

पैरामीटर
request ReportImpressionRequest: यह वैल्यू null नहीं हो सकती.

executor Executor: यह वैल्यू null नहीं हो सकती.

receiver OutcomeReceiver: यह वैल्यू null नहीं हो सकती.

विज्ञापन चुनें

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

पहले चलाए गए विज्ञापन के परिणामों में से कोई विज्ञापन चुनता है.

adSelectionFromOutcomesConfig इनपुट, Ads SDK टूल से मिलता है और AdSelectionFromOutcomesConfig ऑब्जेक्ट को बाइंडर कॉल के ज़रिए ट्रांसफ़र किया जाता है. इस वजह से, इन ऑब्जेक्ट के कुल साइज़ पर Android IPC की सीमाएं लागू होती हैं. को AdSelectionFromOutcomesConfig, एक TransactionTooLargeException फेंकेगा.

आउटपुट पाने वाला व्यक्ति उसे पास करता है, जो नतीजे के तौर पर AdSelectionOutcome दिखाता है एक सफल रन के लिए होता है या Exception में अपवाद दिया गया होता है और गड़बड़ी का मैसेज भी दिखेगा.

adSelectionFromOutcomesConfig इनपुट में शामिल है:

  • Seller, AdTechIdentifier के तौर पर रजिस्टर होना ज़रूरी है. या फिर, IllegalStateException फेंक दिया जाएगा.
  • List of ad selection ids मौजूद होना चाहिए और उसी ऐप्लिकेशन से आने वाले selectAds(AdSelectionConfig, Executor, OutcomeReceiver) कॉल से आना चाहिए. या फिर, इनपुट की पुष्टि के लिए IllegalArgumentException, उल्लंघन करने वाले विज्ञापन की लिस्टिंग को बढ़ावा देगा चयन आईडी.
  • Selection logic URI, जो एचटीटीपीएस या विज्ञापन चुनने के लिए पहले से बने यूआरएल को फ़ॉलो कर सकता है स्कीमा शामिल करने हैं.

    अगर यूआरआई, एचटीटीपीएस स्कीमा का पालन करता है, तो होस्ट को seller से मैच करना चाहिए. ऐसा न करने पर, IllegalArgumentException को फेंक दिया जाएगा.

    पहले से बने यूआरआई ऐसा तरीका है जिससे selectOutcome के लिए JavaScript. इस एंडपॉइंट के लिए पहले से बनाया गया Uri बाद में होना चाहिए;

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

    अगर पहले से बनाए गए किसी काम न करने वाले यूआरआई को पास कर दिया जाता है या पहले से बने यूआरआई की सुविधा को तो IllegalArgumentException को फेंक दिया जाएगा.

    इसके साथ काम करने वाली कंपनियों के बारे में जानने के लिए AdSelectionFromOutcomesConfig.Builder#setSelectionLogicUri पर जाएं <name> और <script-generation-parameters> डालना ज़रूरी है.

अगर IllegalArgumentException को फेंका जाता है, तो यह अमान्य इनपुट आर्ग्युमेंट की वजह से होता है विज्ञापन चुनने के लिए मिले एपीआई की जानकारी.

अगर IllegalStateException में गड़बड़ी का मैसेज "Failure of AdSelection" दिखता है सेवाएं.",

अगर TimeoutException थ्रो किया गया है, तो यह टाइम आउट के मिलने पर होता है बिडिंग, स्कोर या चुनने की पूरी प्रोसेस के दौरान, सबसे बढ़िया विज्ञापन खोजने के लिए किया जा सकता है.

अगर LimitExceededException को फेंक दिया जाता है, तो यह कॉलिंग पैकेज को करते समय ऐसा होता है तय सीमा से ज़्यादा हो जाता है और इसे थ्रॉटल कर दिया जाता है.

अगर SecurityException को ट्रिगर किया जाता है, तो यह तब दिखता है, जब कॉलर को अनुमति नहीं दी जाती है या अनुमति का अनुरोध नहीं किया गया है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE की ज़रूरत है

पैरामीटर
adSelectionFromOutcomesConfig AdSelectionFromOutcomesConfig: यह वैल्यू null नहीं हो सकती.

executor Executor: यह वैल्यू null नहीं हो सकती. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

receiver OutcomeReceiver: यह वैल्यू null नहीं हो सकती.

विज्ञापन चुनें

एपीआई लेवल 34 में जोड़ा गया
public void selectAds (AdSelectionConfig adSelectionConfig, 
                Executor executor, 
                OutcomeReceiver<AdSelectionOutcomeException> receiver)

कॉलर के लिए रीमार्केटिंग विज्ञापन चुनने के लिए, डिवाइस पर विज्ञापन चुनने की प्रोसेस शुरू करता है का इस्तेमाल करें.

adSelectionConfig इनपुट, Ads SDK टूल से मिलता है और AdSelectionConfig ऑब्जेक्ट को बाइंडर कॉल के ज़रिए ट्रांसफ़र किया जाता है. इस वजह से, कुल साइज़ में से ये ऑब्जेक्ट, Android IPC की सीमाओं के दायरे में आते हैं. AdSelectionConfig को ट्रांसफ़र न कर पाने पर, TransactionTooLargeException दिखेगा.

adSelectionConfig इनपुट में Decision Logic Uri शामिल है, जो इसे फ़ॉलो कर सकता है या तो एचटीटीपीएस या विज्ञापन चुनने के लिए पहले से बने स्कीमा.

अगर यूआरआई, एचटीटीपीएस स्कीमा का पालन करता है, तो होस्ट को seller से मैच करना चाहिए. या फिर, IllegalArgumentException को फेंक दिया जाएगा.

पहले से बने यूआरआई ऐसा तरीका है जिससे scoreAds के लिए JavaScript. इस एंडपॉइंट के लिए पहले से बनाया गया Uri बाद में होना चाहिए;

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

अगर पहले से बनाए गए किसी काम न करने वाले यूआरआई को पास कर दिया जाता है या पहले से बने यूआरआई की सुविधा को तो IllegalArgumentException को फेंक दिया जाएगा.

इसके साथ काम करने वाली <name> और इसके बारे में जानने के लिए, AdSelectionConfig.Builder#setDecisionLogicUri पर जाएं <script-generation-parameters> आवश्यक है.

आउटपुट पाने वाला व्यक्ति उसे पास करता है, जो नतीजे के तौर पर AdSelectionOutcome दिखाता है एक सफल रन के लिए होता है या Exception में अपवाद दिया गया होता है और गड़बड़ी का मैसेज भी दिखेगा.

अगर IllegalArgumentException को फेंका जाता है, तो यह अमान्य इनपुट आर्ग्युमेंट की वजह से होता है विज्ञापन चुनने के लिए मिले एपीआई की जानकारी.

अगर IllegalStateException में गड़बड़ी का मैसेज "Failure of AdSelection" दिखता है सेवाएं.",

अगर TimeoutException थ्रो किया गया है, तो यह टाइम आउट के मिलने पर होता है बिडिंग, स्कोर या चुनने की पूरी प्रोसेस के दौरान, सबसे बढ़िया विज्ञापन खोजने के लिए किया जा सकता है.

अगर LimitExceededException को फेंक दिया जाता है, तो यह कॉलिंग पैकेज को करते समय ऐसा होता है तय सीमा से ज़्यादा हो जाता है और इसे थ्रॉटल कर दिया जाता है.

अगर SecurityException को ट्रिगर किया जाता है, तो यह तब दिखता है, जब कॉलर को अनुमति नहीं दी जाती है या अनुमति का अनुरोध नहीं किया गया है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE की ज़रूरत है

पैरामीटर
adSelectionConfig AdSelectionConfig: यह वैल्यू null नहीं हो सकती.

executor Executor: यह वैल्यू null नहीं हो सकती. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

receiver OutcomeReceiver: यह वैल्यू null नहीं हो सकती.

updatedAdCounterHistogram

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

selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver) को कॉल करके पहले चुने गए विज्ञापन के काउंटर हिस्टोग्राम को अपडेट करता है.

काउंटर हिस्टोग्राम का इस्तेमाल विज्ञापन चुनने में होता है, ताकि फ़्रीक्वेंसी कैप फ़िल्टर करने की सुविधा चालू की जा सके उम्मीदवार के विज्ञापन, जहां फ़्रीक्वेंसी कैप की शर्तें पूरी होती हैं या पार हो जाती हैं उन्हें विज्ञापन चुनने के दौरान बिडिंग की प्रोसेस को पूरा करना.

काउंटर हिस्टोग्राम सिर्फ़ उन विज्ञापनों के लिए अपडेट किए जा सकते हैं जो उसी कॉलर ऐप्लिकेशन से FLEDGE विज्ञापन को चुनने पर हाल ही में दिए गए adSelectionId के ज़रिए दिखाए गए हैं.

outcomeReceiver के ज़रिए SecurityException लौटाया जाता है, अगर:

  1. ऐप्लिकेशन ने अपने मेनिफ़ेस्ट में सही अनुमतियों का एलान नहीं किया है या
  2. callerAdTechIdentifier ने जिस ऐप्लिकेशन या इकाई की पहचान की है उसे अनुमति नहीं है एपीआई का इस्तेमाल करने के लिए.
अगर कॉल होता है, तो outcomeReceiver के ज़रिए IllegalStateException को लौटा दिया जाता है ये नतीजे, फ़ोरग्राउंड गतिविधि वाले ऐप्लिकेशन से नहीं लिए जाते.

कॉल करने पर, outcomeReceiver के ज़रिए एक LimitExceededException लौटाया जाता है कॉलिंग ऐप्लिकेशन के एपीआई थ्रॉटल से ज़्यादा हो जाता है.

गड़बड़ी के अन्य सभी मामलों में, outcomeReceiver, खाली Object दिखाएगा. ध्यान दें कि उपयोगकर्ता की गोपनीयता की सुरक्षा के लिए, आंतरिक त्रुटियों को अपवाद.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE की ज़रूरत है

पैरामीटर
updateAdCounterHistogramRequest UpdateAdCounterHistogramRequest: यह वैल्यू null नहीं हो सकती.

executor Executor: यह वैल्यू null नहीं हो सकती. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

outcomeReceiver OutcomeReceiver: यह वैल्यू null नहीं हो सकती.