यूनीक आइडेंटिफ़ायर के लिए सबसे सही तरीके

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

Android की अनुमतियों के बारे में सामान्य जानकारी पाने के लिए, अनुमतियों की खास जानकारी देखें. Android की अनुमतियों के साथ काम करने के सबसे सही तरीकों के बारे में जानने के लिए, ऐप्लिकेशन की अनुमतियों के सबसे सही तरीके देखें.

Android आइडेंटिफ़ायर के साथ काम करने के सबसे सही तरीके

अपने उपयोगकर्ताओं की निजता को सुरक्षित रखने के लिए, सबसे ज़्यादा पाबंदी वाले उस आइडेंटिफ़ायर का इस्तेमाल करें जो आपके ऐप्लिकेशन के इस्तेमाल के उदाहरण के मुताबिक हो. खास तौर पर, यहां दिए गए सबसे सही तरीके अपनाएं:

  1. जब भी मुमकिन हो, ऐसे आइडेंटिफ़ायर चुनें जिन्हें उपयोगकर्ता रीसेट कर सकते हैं. आपका ऐप्लिकेशन ये काम कर सकता है अपने ज़्यादातर उपयोग के उदाहरणों को तब भी हासिल कर सकता है, जब यह ऐसे हार्डवेयर आईडी जिन्हें रीसेट नहीं किया जा सकता.
  2. हार्डवेयर आइडेंटिफ़ायर का इस्तेमाल करने से बचें. ज़्यादातर मामलों में, ज़रूरी फ़ंक्शन को सीमित किए बिना, इंटरनेशनल मोबाइल डिवाइस आइडेंटिटी (आईएमईआई) जैसे हार्डवेयर आइडेंटिफ़ायर का इस्तेमाल करने से बचा जा सकता है.

    Android 10 (एपीआई लेवल 29), ऐसे आइडेंटिफ़ायर के लिए पाबंदियां जोड़ता है जिन्हें रीसेट नहीं किया जा सकता, इनमें IMEI और सीरियल नंबर, दोनों शामिल होते हैं. आपका ऐप्लिकेशन, डिवाइस या प्रोफ़ाइल का मालिक ऐप्लिकेशन होना चाहिए. इसके अलावा, आपके पास कैरियर से जुड़ी खास अनुमतियां होनी चाहिए या आपके पास इन आइडेंटिफ़ायर को ऐक्सेस करने के लिए, READ_PRIVILEGED_PHONE_STATE की खास अनुमति होनी चाहिए.

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

  4. विज्ञापन आईडी को रीसेट न करें.

  5. Firebase इंस्टॉलेशन आईडी (एफ़आईडी) या निजी तौर पर सेव किए गए जीयूआईडी का इस्तेमाल हर बार करें पेमेंट से जुड़ी धोखाधड़ी रोकने और टेलीफ़ोनी. बिना विज्ञापन वाले कॉन्टेंट के ज़्यादातर इस्तेमाल के लिए, एफ़आईडी या जीयूआईडी (ग्लोबली यूनीक आइडेंटिफ़ायर) काफ़ी होना चाहिए.

  6. निजता के खतरे को कम करने के लिए, अपने इस्तेमाल के उदाहरण के हिसाब से एपीआई का इस्तेमाल करें. इनके लिए DRM API का इस्तेमाल करें बेहतरीन कॉन्टेंट की सुरक्षा के साथ-साथ गलत इस्तेमाल से सुरक्षा के लिए, Play Integrity API. Play Integrity API की मदद से, यह पता लगाना आसान होता है कि कोई डिवाइस असली है या नहीं. इससे निजता को खतरा भी नहीं होता.

इस गाइड के बाकी सेक्शन में, Android ऐप्लिकेशन डेवलप करने के संदर्भ में इन नियमों के बारे में ज़्यादा जानकारी दी गई है.

विज्ञापन आईडी के साथ काम करना

विज्ञापन आईडी, उपयोगकर्ता के रीसेट करने लायक आइडेंटिफ़ायर है. यह विज्ञापनों के इस्तेमाल के उदाहरणों के लिए सही है. हालांकि, कुछ खास बातों का ध्यान रखना ज़रूरी है, आईडी:

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

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

दिलचस्पी के मुताबिक विज्ञापन दिखाने की सुविधा से जुड़े फ़्लैग का हमेशा सम्मान करें. विज्ञापन आईडी को कॉन्फ़िगर किया जा सकता है. इससे उपयोगकर्ता, आईडी से जुड़ी ट्रैकिंग की संख्या को सीमित कर सकते हैं. हमेशा AdvertisingIdClient.Info.isLimitAdTrackingEnabled() तरीका इस्तेमाल करें, ताकि यह पक्का किया जा सके कि आप उपयोगकर्ताओं की इच्छाओं के मुताबिक काम कर रहे हैं. Google Play के डेवलपर के लिए कॉन्टेंट से जुड़ी नीति में यह बताया गया है:

"...आपको उपयोगकर्ता की 'दिलचस्पी के मुताबिक विज्ञापन दिखाने की सुविधा से ऑप्ट आउट करने' या 'दिलचस्पी के मुताबिक विज्ञापन दिखाने की सुविधा से ऑप्ट आउट करने' की सेटिंग के हिसाब से काम करना चाहिए. अगर किसी उपयोगकर्ता ने इस सेटिंग को चालू किया है, विज्ञापन के लिए आइडेंटिफ़ायर का इस्तेमाल इन कामों के लिए नहीं किया जा सकता विज्ञापन के मकसद से या लोगों के हिसाब से विज्ञापन दिखाकर उन्हें टारगेट करने के लिए. जिन गतिविधियों की अनुमति दी गई है उनमें प्रासंगिक विज्ञापन, फ़्रीक्वेंसी कैपिंग, और कन्वर्ज़न शामिल हैं ट्रैकिंग, रिपोर्टिंग, और सुरक्षा के लिए इस्तेमाल किया जाता है."

विज्ञापन आईडी के इस्तेमाल से जुड़े SDK टूल की निजता या सुरक्षा से जुड़ी नीतियों के बारे में जानें. उदाहरण के लिए, यदि आप true को enableAdvertisingIdCollection() तरीके का इस्तेमाल कर रहे हैं, तो पक्का करें कि आपने सभी लागू होने वाला Analytics SDK नीतियों का पालन करना चाहिए.

यह भी ध्यान रखें कि Google Play डेवलपर कॉन्टेंट की नीति के मुताबिक, विज्ञापन आइडेंटिफ़ायर को "व्यक्तिगत पहचान से जुड़ी जानकारी से नहीं जोड़ा जाना चाहिए. इसके अलावा, यह किसी डिवाइस आइडेंटिफ़ायर (उदाहरण के लिए: SSAID, MAC पता, IMEI वगैरह) से भी नहीं जुड़ा होना चाहिए."

उदाहरण के लिए, मान लें कि आपको डेटाबेस को पॉप्युलेट करने के लिए जानकारी इकट्ठा करनी है टेबल में ये कॉलम मौजूद हैं:

TABLE-01
timestamp ad_id account_id clickid
TABLE-02
account_id name dob country

इस उदाहरण में, दोनों टेबल में account_id कॉलम के ज़रिए ad_id कॉलम को व्यक्तिगत पहचान से जुड़ी जानकारी से जोड़ा जा सकता है. अगर आपको अपने उपयोगकर्ताओं से साफ़ तौर पर अनुमति नहीं मिली है, तो यह Google Play डेवलपर कॉन्टेंट नीति का उल्लंघन होगा.

ध्यान रखें कि विज्ञापन देने वाले का आईडी और व्यक्तिगत पहचान से जुड़ी जानकारी के बीच के लिंक हमेशा इतने साफ़ नहीं होते. "क्वसी-आइडेंटिफ़ायर" हो सकते हैं जो व्यक्तिगत पहचान से जुड़ी जानकारी और विज्ञापन आईडी की कुंजी वाली टेबल, जिससे समस्याएं भी हो सकती हैं. उदाहरण के लिए, मान लें कि हम TABLE-01 और TABLE-02 को इस तरह बदलते हैं:

टेबल-01
timestamp ad_id clickid dev_model
TABLE-02
timestamp demo account_id dev_model name

इस मामले में, बहुत कम क्लिक इवेंट होने पर भी, इवेंट के टाइमस्टैंप और डिवाइस मॉडल का इस्तेमाल करके, विज्ञापन देने वाले के आईडी TABLE-01 और TABLE-02 में मौजूद निजी पहचान से जुड़ी जानकारी के बीच जॉइन किया जा सकता है.

हालांकि, यह पक्का करना मुश्किल होता है कि किसी डेटासेट में ऐसे कोई क्वॉज़ी-आइडेंटिफ़ायर मौजूद नहीं हैं, लेकिन जहां भी हो सके वहां यूनीक डेटा को सामान्य बनाकर, जॉइन से जुड़े सबसे ज़्यादा खतरों से बचा जा सकता है. पिछले उदाहरण में, इसका मतलब टाइमस्टैंप की सटीक जानकारी को कम करना होगा, ताकि हर टाइमस्टैंप के लिए एक ही मॉडल वाले कई डिवाइस दिखें.

अन्य समाधानों में ये शामिल हैं:

  • पीआईआई को विज्ञापन आईडी से साफ़ तौर पर लिंक करने वाली टेबल न डिज़ाइन करना. तय सीमा में ऊपर दिए गए पहले उदाहरण में बताया है, तो इसका मतलब है कि account_id कॉलम को शामिल नहीं किया जाएगा TABLE-01 में.

  • ऐसे उपयोगकर्ताओं या भूमिकाओं के लिए ऐक्सेस कंट्रोल सूचियों को अलग-अलग करना और उनकी निगरानी करना जिनके पास विज्ञापन आईडी की कुंजी वाले डेटा और पीआईआई, दोनों का ऐक्सेस है. एक साथ दोनों सोर्स को ऐक्सेस करने की सुविधा को ज़ोर से कंट्रोल और ऑडिट करके (उदाहरण के लिए, टेबल के बीच जॉइन करके), विज्ञापन आईडी और व्यक्तिगत पहचान से जुड़ी जानकारी के बीच असोसिएशन का जोखिम कम किया जा सकता है. आम तौर पर, ऐक्सेस कंट्रोल करने का मतलब है:

    1. विज्ञापन देने वाले व्यक्ति या कंपनी के आईडी की मदद से सेव किए गए डेटा और व्यक्तिगत पहचान से जुड़ी जानकारी के लिए, ऐक्सेस कंट्रोल लिस्ट (एसीएल) को बनाए रखना ताकि दोनों में मौजूद लोगों या भूमिकाओं की संख्या को कम किया जा सके ACL.
    2. किसी भी अपवाद का पता लगाने और उसे मैनेज करने के लिए, ऐक्सेस को लॉग और ऑडिट करने की प्रोसेस लागू करें इस नियम का पालन करें.

विज्ञापन आईडी के साथ ज़िम्मेदारी से काम करने के बारे में ज़्यादा जानकारी के लिए, यहां देखें AdvertisingIdClient एपीआई का रेफ़रंस.

एफ़आईडी और जीयूआईडी (ग्लोबली यूनीक आइडेंटिफ़ायर) का इस्तेमाल करना

किसी डिवाइस पर चल रहे ऐप्लिकेशन इंस्टेंस की पहचान करने का सबसे आसान तरीका, Firebase इंस्टॉलेशन आईडी (एफ़आईडी) का इस्तेमाल करना है. विज्ञापनों के अलावा, ज़्यादातर इस्तेमाल के उदाहरणों में, यही तरीका अपनाने का सुझाव दिया जाता है. सिर्फ़ वह ऐप्लिकेशन इंस्टेंस जिसके लिए इस आइडेंटिफ़ायर को ऐक्सेस कर सकता है. साथ ही, यह (तुलनात्मक रूप से) आसानी से होता है रीसेट किया जा सकता है, क्योंकि यह सिर्फ़ तब तक बना रहता है, जब तक ऐप्लिकेशन इंस्टॉल रहता है.

इस वजह से, एफ़आईडी डिवाइस के स्कोप वाले हार्डवेयर आईडी, जिन्हें रीसेट नहीं किया जा सकता. ज़्यादा जानकारी के लिए, firebase.installations एपीआई रेफ़रंस देखें.

जिन मामलों में एफ़आईडी का इस्तेमाल करना मुमकिन नहीं है उनमें ऐप्लिकेशन इंस्टेंस की खास पहचान करने के लिए, कस्टम ग्लोबल यूनीक आईडी (जीयूआईडी) का भी इस्तेमाल किया जा सकता है. सबसे आसान ऐसा करने के लिए, यहां दिए गए कोड की मदद से अपना जीयूआईडी जनरेट करें:

KotlinJava
var uniqueID = UUID.randomUUID().toString()
String uniqueID = UUID.randomUUID().toString();

आइडेंटिफ़ायर दुनिया भर में यूनीक होता है. इसलिए, इसका इस्तेमाल किसी खास ऐप्लिकेशन इंस्टेंस की पहचान करने के लिए किया जा सकता है. सभी ऐप्लिकेशन में आइडेंटिफ़ायर को लिंक करने से जुड़ी समस्याओं से बचने के लिए, बाहरी (शेयर किए गए) स्टोरेज के बजाय, इंटरनल स्टोरेज में GUID सेव करें. ज़्यादा जानकारी के लिए, डेटा और फ़ाइल स्टोरेज की खास जानकारी पेज देखें.

MAC पतों के साथ काम न करें

MAC पते दुनिया भर में यूनीक होते हैं. इन्हें उपयोगकर्ता अपने हिसाब से सेट नहीं कर सकते और ये फ़ैक्ट्री में नहीं चलते रीसेट करता है. इन वजहों से, उपयोगकर्ता की निजता को सुरक्षित रखने के लिए, Android के 6 और उसके बाद के वर्शन पर, MAC पतों को ऐक्सेस करने की अनुमति सिर्फ़ सिस्टम ऐप्लिकेशन के लिए है. तीसरे पक्ष के ऐप्लिकेशन उन्हें ऐक्सेस नहीं कर सकता.

Android 11 में MAC पते की उपलब्धता में बदलाव

Android 11 और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन में, पासपॉइंट नेटवर्क के लिए मैक पते को पासपॉइंट प्रोफ़ाइल के हिसाब से रैंडमाइज़ किया जाता है. यह इन फ़ील्ड के आधार पर यूनीक मैक पता जनरेट करता है:

  • सभी शर्तें पूरी करने वाला डोमेन नेम (एफ़क्यूडीएन)
  • रेल्म
  • Passpoint प्रोफ़ाइल में इस्तेमाल किए गए क्रेडेंशियल के आधार पर क्रेडेंशियल:
    • उपयोगकर्ता क्रेडेंशियल: उपयोगकर्ता का नाम
    • प्रमाणपत्र क्रेडेंशियल: प्रमाणपत्र और प्रमाणपत्र प्रकार
    • सिम क्रेडेंशियल: ईएपी टाइप और IMSI

इसके अलावा, जिन ऐप्लिकेशन के पास विशेष सुविधाएं नहीं हैं वे डिवाइस का मैक पता ऐक्सेस नहीं कर सकते. सिर्फ़ आईपी पते वाले नेटवर्क इंटरफ़ेस दिखते हैं. इससे getifaddrs() और NetworkInterface.getHardwareAddress() के तरीकों पर असर पड़ता है. साथ ही, RTM_GETLINK नेटलिंक मैसेज भेजने पर भी असर पड़ता है.

इस बदलाव से ऐप्लिकेशन पर असर डालने वाले तरीकों की सूची नीचे दी गई है:

  • NetworkInterface.getHardwareAddress() हर इंटरफ़ेस के लिए शून्य दिखाता है.
  • ऐप्लिकेशन NETLINK_ROUTE सॉकेट पर bind() फ़ंक्शन का इस्तेमाल नहीं कर सकते.
  • ip कमांड, इंटरफ़ेस के बारे में जानकारी नहीं दिखाता.
  • ऐप्लिकेशन, RTM_GETLINK मैसेज नहीं भेज सकते.

ध्यान दें कि अधिकांश डेवलपर को ConnectivityManager लोअर-लेवल एपीआई, जैसे NetworkInterface getifaddrs(), या Netlink सॉकेट. उदाहरण के लिए, किसी ऐप्लिकेशन को मौजूदा रास्तों की अप-टू-डेट जानकारी चाहिए, तो वह ConnectivityManager.registerNetworkCallback() का इस्तेमाल करके नेटवर्क में होने वाले बदलावों को सुनकर और नेटवर्क से जुड़े LinkProperties.getRoutes() को कॉल करके यह जानकारी पा सकता है.

आइडेंटिफ़ायर की विशेषताएं

Android OS, अलग-अलग व्यवहार की विशेषताओं वाले कई आईडी ऑफ़र करता है. आपको किस आईडी का इस्तेमाल करना चाहिए, यह इस बात पर निर्भर करता है कि नीचे दी गई विशेषताएं कैसे काम करती हैं आपके इस्तेमाल का उदाहरण. इन विशेषताओं में निजता से जुड़ी सेटिंग भी शामिल हैं. इसलिए, यह समझना ज़रूरी है कि ये विशेषताएं एक-दूसरे से जुड़ी हैं.

दायरा

आइडेंटिफ़ायर के स्कोप से यह पता चलता है कि कौनसे सिस्टम, आइडेंटिफ़ायर को ऐक्सेस कर सकते हैं. Android पर आइडेंटिफ़ायर का स्कोप आम तौर पर तीन तरह के होते हैं:

  • एक ऐप्लिकेशन: यह आईडी, ऐप्लिकेशन के अंदर होता है और दूसरे ऐप्लिकेशन इसे ऐक्सेस नहीं कर सकते.
  • ऐप्लिकेशन का ग्रुप: इस आईडी को, मिलते-जुलते ऐप्लिकेशन के पहले से तय किए गए ग्रुप के लिए ऐक्सेस किया जा सकता है.
  • डिवाइस: इस आईडी को डिवाइस पर इंस्टॉल किए गए सभी ऐप्लिकेशन ऐक्सेस कर सकते हैं.

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

रीसेट करने की सुविधा और डेटा सेव रखने की सुविधा

रीसेट करने की सुविधा और मौजूद रहने की अवधि से, आइडेंटिफ़ायर के लाइफ़साइकल के बारे में पता चलता है. साथ ही, यह भी पता चलता है कि इसे कैसे रीसेट किया जा सकता है. सामान्य रीसेट ट्रिगर में ये शामिल हैं: इन-ऐप्लिकेशन रीसेट, इसके ज़रिए रीसेट होते हैं सिस्टम सेटिंग, लॉन्च होने पर रीसेट होती है, और इंस्टॉल होने पर रीसेट होती है. Android पर आइडेंटिफ़ायर इस्तेमाल करने की अवधि अलग-अलग हो सकती है. हालाँकि, आम तौर पर, आइडेंटिफ़ायर के इस्तेमाल की अवधि एक-दूसरे से जुड़ी होती है आईडी को रीसेट करने का तरीका:

  • सिर्फ़ सेशन के लिए: जब भी उपयोगकर्ता ऐप्लिकेशन को फिर से शुरू करता है, तो एक नए आईडी का इस्तेमाल किया जाता है.
  • इंस्टॉल-रीसेट: उपयोगकर्ता के अनइंस्टॉल और फिर से इंस्टॉल करने पर, हर बार एक नए आईडी का इस्तेमाल किया जाता है ऐप खोलें.
  • फ़ैक्ट्री सेटिंग पर रीसेट करना: जब भी उपयोगकर्ता अपने डिवाइस को फ़ैक्ट्री सेटिंग पर रीसेट करता है, तो एक नया आईडी जनरेट होता है.
  • फ़ैक्ट्री रीसेट के बाद भी मौजूद रहता है: यह आईडी, फ़ैक्ट्री रीसेट के बाद भी मौजूद रहता है.

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

यूनीक होने की वजह

खासियत से, टक्कर लगने की संभावना का पता चलता है; इसका मतलब है कि आइडेंटिफ़ायर, संबंधित स्कोप में मौजूद होते हैं. दुनिया भर में, यूनीक आइडेंटिफ़ायर की वजह से कभी कोई टकराव नहीं होता. ऐसा अन्य डिवाइसों या ऐप्लिकेशन पर भी नहीं होता. इसके अलावा, यूनीक होने का लेवल, आइडेंटिफ़ायर के एन्ट्रोपी और उसे बनाने के लिए इस्तेमाल किए गए रैंडम सोर्स पर निर्भर करता है. उदाहरण के लिए, कैलेंडर की तारीख के साथ जोड़े गए रैंडम आइडेंटिफ़ायर के लिए, टक्कर बहुत ज़्यादा है यूनिक्स के साथ सीड किए गए आइडेंटिफ़ायर के बजाय इंस्टॉलेशन (जैसे कि 2019-03-01) इंस्टॉलेशन का टाइमस्टैंप (जैसे कि 1551414181).

आम तौर पर, उपयोगकर्ता खाते के आइडेंटिफ़ायर को यूनीक माना जा सकता है. इसका मतलब है कि हर डिवाइस/खाते के कॉम्बिनेशन का यूनीक आईडी है. दूसरी ओर, किसी आबादी में आइडेंटिफ़ायर जितना कम यूनीक होगा, निजता की सुरक्षा उतनी ही ज़्यादा होगी. ऐसा इसलिए, क्योंकि यह किसी उपयोगकर्ता को ट्रैक करने के लिए कम काम का होता है.

पूरी सुरक्षा देने की सुविधा और अस्वीकार न किए जाने की सुविधा

ऐसे आइडेंटिफ़ायर का इस्तेमाल किया जा सकता है जिसे स्पूफ़ करना या फिर से चलाना मुश्किल हो. इससे यह साबित हो सकेगा कि जुड़े हुए डिवाइस या खाते में कुछ प्रॉपर्टी हैं. उदाहरण के लिए, यह साबित किया जा सकता है कि डिवाइस, स्पैम भेजने वाले व्यक्ति का इस्तेमाल किया गया वर्चुअल डिवाइस नहीं है. ऐसे आइडेंटिफ़ायर जिनमें स्पूफ़ करना मुश्किल होता है, वे अस्वीकार नहीं किए जा सकते. अगर डिवाइस किसी मैसेज पर गुप्त कुंजी से हस्ताक्षर करता है, तो यह दावा करना मुश्किल हो जाता है कि किसी और के डिवाइस से मैसेज भेजा गया है. किसी उपयोगकर्ता को, लेन-देन की पुष्टि करते समय, लेन-देन की जानकारी को अस्वीकार न किए जाने की सुविधा की ज़रूरत पड़ सकती है. हालांकि, यह सुविधा कभी-कभी उपयोगकर्ता के लिए परेशानी भी बन सकती है. जैसे, जब वह कोई ऐसा मैसेज भेज दे जिसे भेजने के बाद उसे पछतावा हो.

इस्तेमाल के सामान्य उदाहरण और इस्तेमाल करने के लिए सही आइडेंटिफ़ायर

यह सेक्शन, हार्डवेयर आईडी जैसे कि IMEI नंबर का इस्तेमाल करने के विकल्प देता है. इसका इस्तेमाल किया जा रहा है हम हार्डवेयर आईडी का इस्तेमाल करने की सलाह नहीं देते हैं, क्योंकि उपयोगकर्ता उन्हें रीसेट नहीं कर सकते हैं. डिवाइस के दायरे में आता है. कई मामलों में, ऐप्लिकेशन के दायरे वाला आइडेंटिफ़ायर काफ़ी होता है.

खाते

मोबाइल और इंटरनेट सेवा देने वाली कंपनी की स्थिति

इस मामले में, आपका ऐप्लिकेशन मोबाइल और इंटरनेट सेवा देने वाली कंपनी के खाते का इस्तेमाल करके, डिवाइस के फ़ोन और मैसेज भेजने की सुविधा के साथ इंटरैक्ट करता है.

इस्तेमाल के लिए सुझाया गया आइडेंटिफ़ायर: IMEI, IMSI, और Line1

यह सुझाव क्यों?

हार्डवेयर आइडेंटिफ़ायर का इस्तेमाल करने की अनुमति सिर्फ़ तब मिलती है, जब ऐसा करना ज़रूरी हो मोबाइल और इंटरनेट सेवा देने वाली कंपनी से जुड़ी सुविधाएं. उदाहरण के लिए, इन आइडेंटिफ़ायर का इस्तेमाल, मोबाइल और इंटरनेट सेवा देने वाली कंपनियों या सिम स्लॉट के बीच स्विच करने के लिए किया जा सकता है. इसके अलावा, इनका इस्तेमाल आईपी (लाइन 1 के लिए) - सिम पर आधारित उपयोगकर्ता खातों पर एसएमएस मैसेज डिलीवर करने के लिए भी किया जा सकता है. हालांकि, जिन ऐप्लिकेशन के लिए ऐक्सेस की सुविधा उपलब्ध नहीं है उनके लिए हम उपयोगकर्ता के डिवाइस की जानकारी पाने के लिए, खाते में साइन इन करने का सुझाव दें सर्वर साइड पर क्लिक करें. इसकी एक वजह यह है कि Android 6.0 (एपीआई लेवल 23) और इसके बाद के वर्शन में, इन आइडेंटिफ़ायर का इस्तेमाल सिर्फ़ रनटाइम की अनुमति के ज़रिए किया जा सकता है. उपयोगकर्ता यह कर सकते थे इस अनुमति को टॉगल करके बंद कर दें, ताकि आपके ऐप्लिकेशन को इन अपवादों को मैनेज करना चाहिए ग्रेसफ़ुली.

मोबाइल सदस्यता की स्थिति

ऐसे मामले में, आपको ऐप्लिकेशन की मुख्य सुविधाओं और उनके काम करने के तरीकों को मोबाइल के कुछ वर्शन के साथ जोड़ना होगा इस दौरान उनकी सदस्यता ली जा सकती है. उदाहरण के लिए, हो सकता है कि आपको डिवाइस में सिम कार्ड की मदद से ली गई मोबाइल सदस्यताओं के आधार पर, ऐप्लिकेशन की कुछ प्रीमियम सुविधाओं के ऐक्सेस की पुष्टि करनी पड़े.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: डिवाइस पर इस्तेमाल किए जाने वाले सिम की पहचान करने के लिए, सदस्यता आईडी एपीआई.

सदस्यता आईडी, डिवाइस में इस्तेमाल किए जा रहे इंस्टॉल किए गए सिम (इनमें फ़िज़िकल और इलेक्ट्रॉनिक सिम शामिल हैं) की खास ढंग से पहचान करने के लिए, इंडेक्स वैल्यू (1 से शुरू) देता है. इस आईडी की मदद से, आपका ऐप्लिकेशन किसी सिम के लिए सदस्यता की अलग-अलग जानकारी के साथ अपनी सुविधाओं को जोड़ सकता है. किसी सिम के लिए यह वैल्यू तब तक स्थिर रहती है, जब तक डिवाइस को फ़ैक्ट्री रीसेट नहीं किया जाता. हालांकि, ऐसा हो सकता है कि एक ही सिम का अलग-अलग डिवाइसों पर अलग सदस्यता आईडी हो या अलग-अलग सिम का अलग-अलग डिवाइसों पर एक ही आईडी हो.

यह सुझाव क्यों?

ऐसा हो सकता है कि कुछ ऐप्लिकेशन फ़िलहाल आईसीसी इसके लिए आईडी उद्देश्य है. आईसीसी आईडी को दुनिया भर में यूनीक माना जाता है और इसे रीसेट नहीं किया जा सकता. इसलिए, ऐक्सेस को READ_PRIVILEGED_PHONE_STATE वाले ऐप्लिकेशन तक सीमित कर दिया गया है Android 10 के बाद से काम करने की अनुमति है. Android 11 और इसके बाद के वर्शन में Android का नया वर्शन ने इसके माध्यम से ICCID के लिए प्रतिबंधित getIccId() एपीआई, चाहे ऐप्लिकेशन का टारगेट एपीआई लेवल कुछ भी हो. जिन ऐप्लिकेशन पर असर पड़ा है उन्हें सदस्यता आईडी का इस्तेमाल करने के लिए माइग्रेट करना चाहिए.

सिंगल साइन-ऑन

इस स्थिति में, आपका ऐप्लिकेशन सिंगल साइन-ऑन अनुभव देता है. इससे उपयोगकर्ता इन कामों को कर पाएंगे अपने संगठन के साथ कोई मौजूदा खाता जोड़ें.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: खाता मैनेजर के साथ काम करने वाले खाते, जैसे Google खाता लिंक करना

यह सुझाव क्यों?

Google खाते को लिंक करने पर, उपयोगकर्ता किसी उपयोगकर्ता के मौजूदा Google खाते को अपने ऐप्लिकेशन के लिए उपयोगकर्ता खाता बना सकते हैं. इससे आपको अपने ऐप्लिकेशन का आसान और ज़्यादा सुरक्षित ऐक्सेस मिलता है संगठन के प्रॉडक्ट और सेवाएं इस्तेमाल करते हैं. इसके अलावा, सिर्फ़ ज़रूरी डेटा शेयर करने के लिए, कस्टम OAuth स्कोप तय किए जा सकते हैं. साथ ही, उपयोगकर्ता के डेटा का इस्तेमाल कैसे किया जाता है, यह साफ़ तौर पर बताकर उपयोगकर्ता का भरोसा बढ़ाया जा सकता है.

विज्ञापन

सही दर्शकों को टारगेट करना

इस मामले में, आपका ऐप्लिकेशन उपयोगकर्ता की दिलचस्पियों की प्रोफ़ाइल बनाता है, ताकि उसे ज़्यादा काम के विज्ञापन दिखाए जा सकें.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: अगर आपका ऐप्लिकेशन विज्ञापनों के लिए किसी आईडी का इस्तेमाल करता है और उसे Google Play पर अपलोड या पब्लिश करता है, तो वह आईडी विज्ञापन आईडी होना चाहिए.

यह सुझाव क्यों?

यह विज्ञापन से जुड़ा इस्तेमाल का उदाहरण है. इसके लिए, आपके संगठन के अलग-अलग ऐप्लिकेशन में उपलब्ध आईडी की ज़रूरत पड़ सकती है. इसलिए, विज्ञापन आईडी का इस्तेमाल करना सबसे सही तरीका है. Google Play के डेवलपर के लिए कॉन्टेंट से जुड़ी नीति के मुताबिक, विज्ञापन के इस्तेमाल के उदाहरणों के लिए विज्ञापन आईडी का इस्तेमाल करना ज़रूरी है. ऐसा इसलिए है, क्योंकि उपयोगकर्ता इसे रीसेट कर सकता है.

आप ऐप्लिकेशन में उपयोगकर्ता का डेटा शेयर करते हैं या नहीं, अगर आप उसे इकट्ठा और इस्तेमाल करते हैं विज्ञापन उद्देश्यों के लिए, आपको डेटा की सुरक्षा वाला सेक्शन Play Console में ऐप्लिकेशन कॉन्टेंट पेज के सबसे ऊपरी हिस्से पर जाएं.

आकलन

इस मामले में, आपका ऐप्लिकेशन किसी उपयोगकर्ता की प्रोफ़ाइल बनाता है. यह प्रोफ़ाइल, उसी डिवाइस पर आपके संगठन के सभी ऐप्लिकेशन में उपयोगकर्ता के व्यवहार के आधार पर बनाई जाती है.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: विज्ञापन आईडी या Play इंस्टॉल रेफ़रर एपीआई

यह सुझाव क्यों दिया गया है?

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

कन्वर्ज़न

इस मामले में, कन्वर्ज़न को ट्रैक किया जा रहा है, ताकि यह पता लगाया जा सके कि आपकी मार्केटिंग रणनीति हो गया है.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: विज्ञापन आईडी या Play इंस्टॉल रेफ़रर एपीआई

यह सुझाव क्यों दिया गया है?

यह विज्ञापन से जुड़ा इस्तेमाल का उदाहरण है. इसके लिए, आपके संगठन के अलग-अलग ऐप्लिकेशन में उपलब्ध आईडी की ज़रूरत पड़ सकती है. इसलिए, विज्ञापन आईडी का इस्तेमाल करना सबसे सही तरीका है. विज्ञापन आईडी का इस्तेमाल इनके लिए ज़रूरी है विज्ञापन के इस्तेमाल के उदाहरणों के मुताबिक, Google Play डेवलपर के लिए कॉन्टेंट की नीति, क्योंकि उपयोगकर्ता इसे रीसेट कर सकता है.

रीमार्केटिंग करना

इस मामले में, आपका ऐप्लिकेशन उपयोगकर्ता की पिछली रुचियों के आधार पर विज्ञापन दिखाता है.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: विज्ञापन आईडी

यह सुझाव क्यों?

यह विज्ञापन से जुड़ा इस्तेमाल का उदाहरण है. इसके लिए, आपके संगठन के अलग-अलग ऐप्लिकेशन में उपलब्ध आईडी की ज़रूरत पड़ सकती है. इसलिए, विज्ञापन आईडी का इस्तेमाल करना सबसे सही तरीका है. Google Play के डेवलपर के लिए कॉन्टेंट से जुड़ी नीति के मुताबिक, विज्ञापन के इस्तेमाल के उदाहरणों के लिए विज्ञापन आईडी का इस्तेमाल करना ज़रूरी है. ऐसा इसलिए है, क्योंकि उपयोगकर्ता इसे रीसेट कर सकता है.

ऐप एनालिटिक्स

इस मामले में, आपका ऐप्लिकेशन उपयोगकर्ता के व्यवहार का आकलन करता है, ताकि आपको इन बातों का पता चल सके:

  • आपके संगठन के कौनसे अन्य प्रॉडक्ट या ऐप्लिकेशन, उपयोगकर्ता के लिए सही हो सकते हैं.
  • उपयोगकर्ताओं की आपके ऐप्लिकेशन के इस्तेमाल में दिलचस्पी बनाए रखने का तरीका.
  • साइन-आउट कर चुके या पहचान छिपाने वाले उपयोगकर्ताओं के लिए, इस्तेमाल के आंकड़े और आंकड़े मेज़र करना.

संभावित समाधानों में ये शामिल हैं:

  • ऐप्लिकेशन सेट आईडी: ऐप्लिकेशन सेट आईडी की मदद से, सभी प्लैटफ़ॉर्म पर उपयोगकर्ता के व्यवहार का विश्लेषण किया जा सकता है आपके संगठन के मालिकाना हक वाले कई ऐप्लिकेशन को तब तक इस्तेमाल किया जाता है, जब तक आप उपयोगकर्ता के डेटा का इस्तेमाल नहीं करते का इस्तेमाल किया जाता है. अगर Google Play की सेवाओं का इस्तेमाल करने वाले डिवाइसों को टारगेट किया जा रहा है, तो हमारा सुझाव है कि आप ऐप्लिकेशन सेट आईडी का इस्तेमाल करें.
  • Firebase आईडी (एफ़आईडी): एफ़आईडी का दायरा, उसे बनाने वाले ऐप्लिकेशन तक सीमित होता है. इससे, आइडेंटिफ़ायर का इस्तेमाल करके अलग-अलग ऐप्लिकेशन पर उपयोगकर्ताओं को ट्रैक करने से रोका जा सकता है. यह भी है आसानी से रीसेट हो सकता है, क्योंकि उपयोगकर्ता ऐप्लिकेशन का डेटा मिटा सकता है या ऐप्लिकेशन को फिर से इंस्टॉल कर सकता है. कॉन्टेंट बनाने एफ़आईडी बनाने की प्रोसेस आसान है; Firebase के इंस्टॉल देखें पढ़ें.

ऐप्लिकेशन तैयार करने से जुड़ी सेवाएं

क्रैश रिपोर्ट

इस मामले में, आपका ऐप्लिकेशन क्रैश होने की वजह और समय के हिसाब से, डेटा इकट्ठा करता है उपयोगकर्ता के डिवाइस पर टैप करें.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: एफ़आईडी या ऐप्लिकेशन सेट आईडी

यह सुझाव क्यों?

एफ़आईडी का स्कोप उस ऐप्लिकेशन के लिए होता है जो इसे बनाता है. यह आइडेंटिफ़ायर को सभी ऐप्लिकेशन पर उपयोगकर्ताओं को ट्रैक करने के लिए इस्तेमाल किया जा रहा है. इसे आसानी से रीसेट भी किया जा सकता है, क्योंकि उपयोगकर्ता ऐप्लिकेशन का डेटा मिटा सकता है या ऐप्लिकेशन को फिर से इंस्टॉल कर सकता है. एफ़आईडी बनाने की प्रोसेस आसान है. Firebase इंस्टॉलेशन गाइड देखें. ऐप्लिकेशन सेट आईडी की मदद से, ऐसे कई ऐप्लिकेशन पर उपयोगकर्ता के व्यवहार का विश्लेषण किया जा सकता है जिनमें जब तक विज्ञापन दिखाने के लिए उपयोगकर्ता के डेटा का इस्तेमाल नहीं किया जाता, तब तक आपके संगठन के पास अपने संगठन का मालिकाना हक होता है के मकसद से बनाया गया है.

परफ़ॉर्मेंस रिपोर्ट

इस मामले में, आपका ऐप्लिकेशन परफ़ॉर्मेंस मेट्रिक इकट्ठा करता है, जैसे कि लोड होने में लगने वाला समय और बैटरी खर्च. इससे आपके ऐप्लिकेशन की क्वालिटी को बेहतर बनाने में मदद मिलती है.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: Firebase की परफ़ॉर्मेंस मॉनिटर करना

यह सुझाव क्यों दिया गया है?

Firebase की परफ़ॉर्मेंस मॉनिटरिंग की सुविधा से, उन मेट्रिक पर फ़ोकस करने में मदद मिलती है जो आपके लिए सबसे ज़्यादा मायने रखती हैं. साथ ही, इससे आपके ऐप्लिकेशन में हाल ही में हुए बदलाव के असर की जांच करने में भी मदद मिलती है.

ऐप्लिकेशन की टेस्टिंग

इस स्थिति में, आपका ऐप्लिकेशन, टेस्टिंग के लिए आपके ऐप्लिकेशन के साथ उपयोगकर्ता के अनुभव का आकलन करता है या डीबग करने के मकसद से.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: एफ़आईडी या ऐप्लिकेशन सेट आईडी

यह सुझाव क्यों?

एफ़आईडी का स्कोप उस ऐप्लिकेशन के लिए होता है जो इसे बनाता है. यह आइडेंटिफ़ायर को सभी ऐप्लिकेशन पर उपयोगकर्ताओं को ट्रैक करने के लिए इस्तेमाल किया जा रहा है. इसे आसानी से रीसेट किया जा सकता है, क्योंकि उपयोगकर्ता ऐप्लिकेशन का डेटा मिटा सकते हैं या उसे फिर से इंस्टॉल कर सकते हैं. एफ़आईडी बनाने की प्रोसेस आसान; देखें Firebase इंस्टॉल करने से जुड़ी गाइड. ऐप्लिकेशन सेट आईडी की मदद से, ऐसे कई ऐप्लिकेशन पर उपयोगकर्ता के व्यवहार का विश्लेषण किया जा सकता है जिनमें जब तक विज्ञापन दिखाने के लिए उपयोगकर्ता के डेटा का इस्तेमाल नहीं किया जाता, तब तक आपके संगठन के पास अपने संगठन का मालिकाना हक होता है के मकसद से बनाया गया है.

क्रॉस-डिवाइस इंस्टॉलेशन

इस मामले में, आपके ऐप्लिकेशन को सही इंस्टेंस की पहचान करनी होगी, जब इसे एक ही उपयोगकर्ता के कई डिवाइसों पर इंस्टॉल किया जाता है.

इस्तेमाल के लिए सुझाया गया आइडेंटिफ़ायर: एफ़आईडी या जीयूआईडी

यह सुझाव क्यों दिया गया है?

एफ़आईडी को खास तौर पर इस काम के लिए डिज़ाइन किया गया है. इसका दायरा सिर्फ़ ऐप्लिकेशन तक सीमित है, ताकि इसका इस्तेमाल अलग-अलग ऐप्लिकेशन में उपयोगकर्ताओं को ट्रैक करने के लिए न किया जा सके. साथ ही, ऐप्लिकेशन को फिर से इंस्टॉल करने पर, यह रीसेट हो जाता है. बहुत कम मामलों में जब एफ़आईडी होता है जीयूआईडी का इस्तेमाल किया जा सकता है.

सुरक्षा

गलत इस्तेमाल का पता लगाना

इस मामले में, आपको अपनी बैकएंड सेवाओं पर हमला करने वाले कई फ़र्ज़ी डिवाइसों का पता लगाना है.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: Google Play Integrity API का इंटिग्रिटी टोकन

यह सुझाव क्यों?

यह पुष्टि करने के लिए कि अनुरोध किसी असली Android डिवाइस से आया है, न कि एम्युलेटर या अन्य डिवाइस के झूठे नाम से मेल भेजने वाले अन्य कोड—इस टूल का इस्तेमाल करें Google Play Integrity API.

विज्ञापन से होने वाली धोखाधड़ी

इस मामले में, आपका ऐप्लिकेशन यह जांच करता है कि आपके ऐप्लिकेशन में उपयोगकर्ता के इंप्रेशन और कार्रवाइयां सही हैं और उनकी पुष्टि की जा सकती है.

इस्तेमाल करने के लिए सुझाया गया आइडेंटिफ़ायर: विज्ञापन आईडी

यह सुझाव क्यों?

विज्ञापन के इस्तेमाल के मामलों में, विज्ञापन आईडी का इस्तेमाल करना ज़रूरी है. Google Play डेवलपर के लिए कॉन्टेंट की नीति, क्योंकि उपयोगकर्ता इसे रीसेट कर सकता है.

डिजिटल राइट मैनेजमेंट (डीआरएम)

इस मामले में, आपका ऐप्लिकेशन धोखे से बौद्धिक संपत्ति वाले ऐक्सेस को सुरक्षित रखना चाहता है प्रॉपर्टी या पैसे लेकर दिखाया जाने वाला कॉन्टेंट.

इस्तेमाल के लिए सुझाया गया आइडेंटिफ़ायर: एफ़आईडी या जीयूआईडी का इस्तेमाल करने पर, उपयोगकर्ताओं को ये काम करने के लिए मजबूर करना पड़ता है सामग्री सीमाओं से बचने के लिए ऐप्लिकेशन को फिर से इंस्टॉल करें, जो पर परेशानी हो सकती है. अगर यह सुरक्षा काफ़ी नहीं है, तो Android एक डीएमआर एपीआई उपलब्ध कराता है. इसका इस्तेमाल, कॉन्टेंट के ऐक्सेस को सीमित करने के लिए किया जा सकता है. इसमें हर APK के लिए एक आइडेंटिफ़ायर, Widevine आईडी शामिल होता है.

उपयोगकर्ता प्राथमिकताएं

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

इस्तेमाल के लिए सुझाया गया आइडेंटिफ़ायर: एफ़आईडी या जीयूआईडी

यह सुझाव क्यों दिया गया है?

हमारा सुझाव है कि आप फिर से इंस्टॉल करके जानकारी को कायम रखने का सुझाव नहीं देते, क्योंकि उपयोगकर्ता ऐसा कर सकते हैं ऐप्लिकेशन को फिर से इंस्टॉल करके अपनी प्राथमिकताएं रीसेट करना चाहते हैं.