इस दस्तावेज़ में, Android पर प्राइवसी सैंडबॉक्स को सेट अप करते समय आने वाली सामान्य समस्याओं को हल करने का तरीका बताया गया है. अगर आपको इस गाइड में कोई गड़बड़ी नहीं मिलती है, तो हमें बताएं.
कुछ गड़बड़ियों की कई वजहें हो सकती हैं. आम तौर पर होने वाली कुछ गड़बड़ियों और उन्हें ठीक करने के तरीके यहां बताए गए हैं. हालांकि, गड़बड़ी का यही मैसेज किसी और वजह से भी मिल सकता है.
समस्या हल करने से पहले
डिवाइस कॉन्फ़िगरेशन के अपडेट बंद करें
प्राइवसी सैंडबॉक्स की जांच में आ रही समस्याओं को हल करने के लिए, सबसे पहले अपने डिवाइस के कॉन्फ़िगरेशन अपडेट को बंद करें. इससे यह पक्का किया जाता है कि आपका डिवाइस, सर्वर से अपडेट किए गए कॉन्फ़िगरेशन फ़ेच न करे. साथ ही, आपके टेस्टिंग डिवाइस पर गलती से प्राइवसी सैंडबॉक्स बंद हो जाए.
इस निर्देश की मदद से, डिवाइस कॉन्फ़िगरेशन के अपडेट बंद करें:
adb shell device_config set_sync_disabled_for_tests persistent
अगर आपको जांच करने के बाद, डिवाइस कॉन्फ़िगरेशन के अपडेट को फिर से चालू करना है, तो इस निर्देश का इस्तेमाल करें:
adb shell device_config set_sync_disabled_for_tests none
विज्ञापन सेवाएं वर्बोज़ लॉगिंग चालू करें
adservices से आने वाले ट्रैफ़िक की जानकारी से, आपको दिखाई दे रही गड़बड़ियों के बारे में ज़्यादा जानकारी मिलती है. चालू करने के लिए, इस निर्देश का इस्तेमाल करें:
adb shell setprop log.tag.adservices VERBOSE
पक्का करें कि आपका डिवाइस ठीक से कॉन्फ़िगर किया गया है
अगर आपने अभी-अभी अपने डिवाइस के कॉन्फ़िगरेशन अपडेट को बंद किया है, तो हमारा सुझाव है कि आप इन चरणों को फिर से चलाकर पक्का करें कि आपका डिवाइस ठीक से कॉन्फ़िगर किया गया है और टेस्ट के दौरान उसी तरह बना रहे.
- लागू होने वाले adb कमांड की मदद से, PPAPI चालू करें.
- अपने लक्ष्यों के हिसाब से, डिवाइस को रजिस्टर करें या रजिस्टर करने की सुविधा बंद करें.
कोड की जांच करके, पक्का करें कि PPAPI उपलब्ध हैं
अपने कोडबेस में जांच जोड़कर यह पक्का किया जा सकता है कि आपके डिवाइस पर प्राइवसी सैंडबॉक्स के लिए, ज़रूरी वर्शन मौजूद हैं या नहीं.
अगर SDK टूल एक्सटेंशन के ज़रिए बीटा रिलीज़ का इस्तेमाल किया जा रहा है, तो सही बिल्ड और SDK एक्सटेंशन वर्शन देखें:
अगर Jetpack Libraries की मदद से बीटा रिलीज़ का इस्तेमाल किया जा रहा है, तो अगर आपके डिवाइस पर प्राइवसी सैंडबॉक्स उपलब्ध नहीं है, तो इनिशलाइज़ेशन फ़ंक्शन null
दिखाता है. उदाहरण के लिए:
किसी भी रिलीज़ के लिए, Google Play services की जांच करें:
सुरक्षा के अपवाद
सुरक्षा से जुड़े अपवाद की गड़बड़ियां आम तौर पर तब होती हैं, जब प्राइवसी सैंडबॉक्स के रिसॉर्स को ऐक्सेस करने की अनुमति नहीं होती है.
अनुमति का अनुरोध नहीं किया गया था
गड़बड़ी:
Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to
call this API. Permission was not requested
.
संभावित वजह:
आपको विज्ञापन आईडी ऐक्सेस करने के लिए अनुमति का एलान करना होगा.
ठीक करें:
अपने AndroidManifest.xml
में अनुमति का एलान करें:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
कॉलर को अनुमति नहीं है
गड़बड़ी:
Failed to find resolveInfo for adServices service. Intent action:
android.adservices.adid.AdIdProviderService
Failed to find AdServices services
Caller not authorized
संभावित वजह:
आपने अपने डिवाइस को सही तरीके से रजिस्टर नहीं किया है. पक्का करें कि आपने डिवाइस को कॉन्फ़िगर करने के लिए, रजिस्ट्रेशन के बाद दिए गए निर्देशों का पालन किया हो. इनमें रजिस्ट्रेशन के बाद वाले तरीके भी शामिल हैं.
संभावित वजह:
रजिस्टर करने वाले यूआरएल मेल नहीं खाते.
ठीक करें:
- रजिस्ट्रेशन वाला डेटा देखें और देखें कि कोड में इस्तेमाल किए जा रहे यूआरएल और प्राइवसी सैंडबॉक्स में रजिस्टर किए गए यूआरएल में कोई अंतर तो नहीं है. उदाहरण के लिए, हो सकता है कि
https://adtech.example.com/source
का इस्तेमाल किया जा रहा हो, लेकिन रजिस्टर किया गया यूआरएलhttps://adtech.example.com/register_source
था - रजिस्टर किए गए यूआरएल से मेल खाने के लिए, अपने कोड में बदलाव करें. उदाहरण के लिए, यूआरएल में "/register_source" को जोड़ने के लिए, "/source" के बजाय सैंपल ऐप्लिकेशन की लाइन में बदलाव किया जा सकता है.
अगर आपको अब भी यह गड़बड़ी दिखती है, तो:
ऐसा हो सकता है कि आपकी कंपनी, रजिस्ट्रेशन की सूची में शामिल न हो या कंपनी रजिस्टर की गई हो, लेकिन ऐप्लिकेशन के मेनिफ़ेस्ट की अनुमति वाली सूची में शामिल न हो. android-ps-support@google.com पर संपर्क करके पक्का करें कि आपके संगठन को प्राइवसी सैंडबॉक्स के साथ रजिस्टर किया गया है.
कॉल करने वाले (कॉलर) को अनुमति नहीं है
गड़बड़ी:
Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to
call this API. Caller is not allowed. Package [package name] is not allowed to
call the API
.
संभावित वजह:
पैकेज का नाम, अनुमति वाली सूची में शामिल नहीं है.
ठीक करें:
अनुमति वाली सूची में शामिल सभी पैकेज के नामों को अनुमति दें:
अगर सीधे adb शेल का इस्तेमाल किया जाता है, तो:
पहले बताए गए निर्देश, बैश और दूसरे शेल के लिए काम करते हैं, लेकिन अगर आपने सीधे adb शेल शुरू किया है और कमांड चलाने की कोशिश की है, तो आपको कोट से बाहर नहीं निकलना चाहिए. इसके बजाय, इस तरह के निर्देश चलाएं:
ठीक करें:
अनुमति वाली सूची में अपने पैकेज का नाम जोड़ें:
adb shell device_config put adservices ppapi_app_allow_list [package name]
पुष्टि करें कि आपका पैकेज नाम अनुमति वाली सूची में शामिल है:
adb shell device_config get adservices ppapi_app_allow_list
अगर ज़रूरी हो, तो अनुमति वाले डोमेन की सूची को इस निर्देश से मिटाया जा सकता है:
adb shell device_config delete adservices ppapi_app_allow_list
राज्य के अवैध अपवाद
अवैध राज्य के अपवादों से यह संकेत मिलता है कि तरीके को गैर-कानूनी या गलत समय पर शुरू किया गया है, जहां एनवायरमेंट या ऐप्लिकेशन, अनुरोध की गई कार्रवाई के लिए सही नहीं है.
राज्य के अवैध अपवाद: सेवा उपलब्ध नहीं है
गड़बड़ी:
com.example.measurement.sampleapp E Failed binding to measurement service:
java.lang.IllegalStateException: Service is not available
संभावित वजह:
किल स्विच बंद होना चाहिए.
ठीक करें:
इस निर्देश की मदद से, किल स्विच को बंद किया जा सकता है:
adb shell 'device_config put adservices global_kill_switch false'
संभावित वजह:
उपयोगकर्ता की सहमति नहीं दी गई है.
ठीक करें:
इसे चलाया जा सकता है:
adb shell am start -n com.google.android.adservices.api/com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity
पहले दिए गए निर्देश के पूरा होने के बाद, "Privacy Sandbox चालू करें" प्राथमिकता को "चालू" पर टॉगल करें.
adb कमांड के साथ गड़बड़ियां
नौकरी नहीं मिल सकी
गड़बड़ी:
Could not find job 14 in package com.google.android.adservices.api/ user 0
संभावित वजह:
प्राइवसी सैंडबॉक्स के एपीआई को ट्रिगर नहीं किया गया है.
ठीक करें: इस जॉब को चलाने से पहले, प्राइवसी सैंडबॉक्स के किसी एपीआई को कॉल करें, जैसे कि
registerSource()
, getTopics()
या selectAds()
. यह कॉल विफल हो सकता है, लेकिन API को सक्रिय करने के लिए यह आवश्यक है. इसके बाद, jobscheduler 14
कमांड को फिर से चलाएं.
संभावित वजह:
आपको Google Play Store को अपडेट करना होगा.
ठीक करें:
- अपने Google खाते से, डिवाइस या एम्युलेटर में लॉग इन करें.
- Google Play Store > प्रोफ़ाइल आइकॉन > सेटिंग > इसके बारे में जानकारी पर जाएं. Play Store वर्शन शीर्षक के नीचे, Play Store अपडेट करें पर टैप करें.
टिकट फ़ाइल करना
अगर इन तरीकों से आपकी गड़बड़ी ठीक नहीं होती है, तो टिकट फ़ाइल करें और यह जानकारी शामिल करें:
- कौनसी रिलीज़ इस्तेमाल की जा रही है, डेवलपर झलक या बीटा वर्शन? आप कौनसा वर्शन इस्तेमाल कर रहे हैं? वर्शन कोड देखने के लिए, सेटिंग > फ़ोन के बारे में जानकारी > बिल्ड नंबर पर जाएं.
- अगर बीटा वर्शन वाली रिलीज़ का इस्तेमाल किया जा रहा है, तो
adb shell getprop | grep build.version.extensions
चलाएं और नतीजों को अपने टिकट में शामिल करें. - आपके डिवाइस में Google Play services का कौनसा वर्शन है?
adb shell dumpsys package com.google.android.gms | grep versionName
चलाएं और अपने टिकट में उस निर्देश के नतीजे शामिल करें. - गड़बड़ी की पूरी रिपोर्ट शामिल करें. आप
adb bugreport
चलाकर या निर्देशों का पालन करके, गड़बड़ी की पूरी रिपोर्ट पा सकते हैं.