# Pushwoosh में डिवाइस आइडेंटिफ़ायर को समझना

Pushwoosh के साथ पंजीकृत किसी विशेष डिवाइस की पहचान करने के दो तरीके हैं – एक हार्डवेयर आईडी (HWID) और एक पुश टोकन।

## HWID

HWID (या हार्डवेयर आईडी) Pushwoosh SDK द्वारा डिवाइस को सौंपा गया एक प्रमुख पहचानकर्ता है।

#### Android HWID

एंड्रॉइड डिवाइस के लिए, HWID डिवाइस पर इंस्टॉल किए गए Pushwoosh SDK वाले पहले ऐप द्वारा उत्पन्न अक्षरों और अंकों का एक यादृच्छिक सेट है। इसे बाद में उन अन्य ऐप्स के साथ साझा किया जाता है जिनमें Pushwoosh SDK होता है ताकि ऐसे सभी ऐप्स का परिणाम स्वरूप एक ही HWID हो।

हालांकि, यदि कोई उपयोगकर्ता Pushwoosh SDK वाले सभी ऐप्स को हटा देता है और फिर कुछ को फिर से इंस्टॉल करता है, तो एक नया HWID फिर से उत्पन्न होगा।

एंड्रॉइड HWID उदाहरण: `5dcaed99-e1e0-44dc-bde2-b96188b99e9e`

#### iOS HWID

iOS डिवाइस के लिए, IDFV ([Identifier for Vendor](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor)) का उपयोग डिवाइस के HWID के रूप में किया जा रहा है। यह तब तक नहीं बदलेगा जब तक डिवाइस पर एक ही विक्रेता का कम से कम एक ऐप इंस्टॉल हो।

iOS HWID उदाहरण (केवल अपर केस!): `CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93`

## पुश टोकन

पुश टोकन (डिवाइस टोकन) ऐप-डिवाइस संयोजन के लिए एक अद्वितीय कुंजी है जो Apple या Google पुश नोटिफिकेशन गेटवे द्वारा जारी की जाती है। यह गेटवे और पुश नोटिफिकेशन प्रदाताओं को संदेशों को रूट करने और यह सुनिश्चित करने की अनुमति देता है कि नोटिफिकेशन उस अद्वितीय ऐप-डिवाइस संयोजन तक पहुंचाया जाए जिसके लिए यह अभिप्रेत है।

#### iOS पुश टोकन

iOS डिवाइस पुश टोकन 64 हेक्साडेसिमल प्रतीकों वाली स्ट्रिंग्स हैं। iOS पुश टोकन उदाहरण: `03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f`

<Aside type="caution">
सुनिश्चित करें कि आपके API अनुरोधों में विशिष्ट डिवाइस को लक्षित करते समय आप जिन iOS पुश टोकन का उपयोग करते हैं, वे **लोअर केस** में हों।
</Aside>

#### Android पुश टोकन

एंड्रॉइड डिवाइस पुश टोकन की लंबाई भिन्न हो सकती है (आमतौर पर 255 वर्णों से कम) और आमतौर पर APA91b… से शुरू होते हैं; हालांकि, इसमें कोलन-पृथक उपसर्ग भी हो सकता है। एंड्रॉइड पुश टोकन उदाहरण: `APA91bFoi3lMMre9G3XzR1LrF4ZT82_15MsMdEICogXSLB8-MrdkRuRQFwNI5u8Dh0cI90ABD3BOKnxkEla8cGdisbDHl5cVIkZah5QUhSAxzx4Roa7b4xy9tvx9iNSYw-eXBYYd8k1XKf8Q_Qq1X9-x-U-Y79vdPq`

<Aside type="caution">
विशिष्ट डिवाइस को लक्षित करने के लिए कच्चे डिवाइस टोकन का उपयोग करना सबसे विश्वसनीय तरीका नहीं है क्योंकि FCM पुश टोकन समय-समय पर बदलते रहते हैं, और यह बताना मुश्किल है कि यह कितनी बार होता है।
</Aside>

## डिवाइस से लॉग, HWID और पुश टोकन एकत्र करना

### iOS

सबसे पहले, यदि आपके पास अपने ऐप के स्रोत कोड तक पहुंच है, तो सुनिश्चित करें कि आपके ऐप में `Pushwoosh_LOG_LEVEL` को `VERBOSE` पर सेट किया गया है। ऐसा करने के लिए, अपनी `Info.plist` फ़ाइल में `Pushwoosh_LOG_LEVEL` स्ट्रिंग कुंजी की जांच करें। यदि नहीं, तो अगले चरण पर जाएं। इस कुंजी के लिए संभावित मान यहां दिए गए हैं:

*   `NONE` - SDK से कोई लॉग नहीं
*   `ERROR` - कंसोल में केवल त्रुटियां प्रदर्शित करें
*   `WARNING` - चेतावनियां भी प्रदर्शित करें
*   `INFO` - सूचनात्मक संदेश जोड़ें
*   `DEBUG` - डीबग जानकारी जोड़ें
*   `VERBOSE` - SDK से सभी लॉग

`VERBOSE` कुंजी मान Pushwoosh SDK को पंजीकरण क्रियाओं के संबंध में महत्वपूर्ण जानकारी प्रदर्शित करने की अनुमति देता है।

2. इसके अलावा, डिवाइस को अपने Mac से कनेक्ट करें और Xcode लॉन्च करें। Window->Device and Simulators पर जाएं।

<img src="/pushwoosh-knowledge-hub-device-identifiers-1.webp" alt="Xcode डिवाइस और सिमुलेटर विंडो जो कनेक्टेड iOS डिवाइस दिखा रही है"/>

3. खुली हुई विंडो में, अपने कनेक्टेड डिवाइस का चयन करें और डिवाइस कंसोल देखने के लिए नीचे बाईं ओर ऊपर-त्रिकोण पर क्लिक करें:

<img src="/pushwoosh-knowledge-hub-device-identifiers-2.webp" alt="Xcode डिवाइस कंसोल व्यू जो डिवाइस लॉग दिखा रहा है जिसमें अप-ट्रायंगल बटन हाइलाइट किया गया है"/>

Xcode 9.3 संस्करण से शुरू होकर, डिवाइस कंसोल लॉग प्राप्त करने की प्रक्रिया थोड़ी बदल गई है। आपको बस अपने लॉन्चपैड पर जाना है और "कंसोल" एप्लिकेशन शुरू करना है। बाएं साइडबार में अपने डिवाइस का चयन करें। बस इतना ही!

<img src="/pushwoosh-knowledge-hub-device-identifiers-3.webp" alt="macOS कंसोल एप्लिकेशन जो बाएं साइडबार में चयनित कनेक्टेड iOS डिवाइस को डिवाइस लॉग के साथ प्रदर्शित कर रहा है"/>

4. अगला, डिवाइस पर अपना ऐप शुरू करें और डायलॉग विंडो की प्रतीक्षा करें। अपने ऐप के लिए पुश नोटिफिकेशन की अनुमति दें।

5. इन चरणों के बाद, कंसोल विंडो से पूरे डिवाइस लॉग का चयन करें और इसे किसी भी टेक्स्ट एडिटर में कॉपी करें।

[`/registerDevice`](/hi/developer/api-reference/device-api/) Pushwoosh API अनुरोध वह है जिसे आप ढूंढ रहे हैं:

<img src="/pushwoosh-knowledge-hub-device-identifiers-4.webp" alt="डिवाइस कंसोल लॉग जो hwid और पुश टोकन पैरामीटर के साथ registerDevice API अनुरोध दिखा रहा है"/>

यदि डिवाइस सही ढंग से पंजीकृत है, तो इस अनुरोध में "hwid" और "push token" मानों सहित निम्नलिखित पैरामीटर होने चाहिए:

```txt title="उदाहरण"
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"gateway":"production","jailbroken":0,"app_version":"1.9","application":"D868A-C13C1","sounds":["bubble.wav"],"device_type":1,"userId":"1457691684303547","language":"en","hwid":"FBCA07FE-05EE-4770-B4BA-AB6737BC1A98","package":"com.pushwoosh.pushon","timezone":"25200","push_token":"ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7","os_version":"11.2.2","v":"5.5.1","device_model":"iPhone7,1"}}
| Status: "200 no error"
| Response: {"status_code":200,"status_message":"OK","response":{"iosCategories":[{"categoryId":0,"buttons":[{"id":"33389","label":"test","type":"0","startApplication":0},{"id":"1233","label":"ajhdkj","type":"1","startApplication":0}]}]}}
x
```

आपके डिवाइस के पुश टोकन के साथ नोटिस भी मौजूद होना चाहिए:

```
<Notice>: [PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7
```

### Android

1. यदि आपके पास ऐप के स्रोत कोड तक पहुंच है, तो सुनिश्चित करें कि Pushwoosh लॉग स्तर `NOISE` पर सेट है। ऐसा करने के लिए, `AndroidManifest.xml` में `NOISE` मान के साथ `com.pushwoosh.log_level` मेटा डेटा जोड़ें।

2. अगला, अपने Mac/PC पर Android Studio चलाएं और Tools -> Android -> Android Device Monitor पर जाएं।

<img src="/pushwoosh-knowledge-hub-device-identifiers-5.webp" alt="एंड्रॉइड स्टूडियो एंड्रॉइड डिवाइस मॉनिटर विंडो जो कनेक्टेड एंड्रॉइड डिवाइस दिखा रही है"/>

3. अपने डिवाइस को Mac/PC से कनेक्ट करें और ऐप लॉन्च करें। लगभग 30 सेकंड प्रतीक्षा करें, कंसोल विंडो से पूरे डिवाइस लॉग का चयन करें और इसे किसी भी टेक्स्ट एडिटर में कॉपी करें।

<img src="/pushwoosh-knowledge-hub-device-identifiers-6.webp" alt="एंड्रॉइड डिवाइस मॉनिटर कंसोल लॉग विंडो जो registerDevice अनुरोध के साथ डिवाइस लॉग दिखा रही है"/>

कृपया ध्यान दें कि Android Studio के नवीनतम संस्करणों में, आप डिवाइस कंसोल लॉग प्राप्त करने के लिए Logcat टूल का भी उपयोग कर सकते हैं। Android Studio चलाएं और View -> Tool Windows -> Logcat पर जाएं:

<img src="/pushwoosh-knowledge-hub-device-identifiers-7.webp" alt="एंड्रॉइड स्टूडियो इंटरफ़ेस जो व्यू मेनू से एक्सेस किए गए Logcat टूल विंडो को दिखा रहा है"/>

उसके बाद, आप Logcat विंडो में डिवाइस लॉग का पता लगा सकते हैं:

<img src="/pushwoosh-knowledge-hub-device-identifiers-8.webp" alt="एंड्रॉइड स्टूडियो Logcat विंडो जो registerDevice API अनुरोध के साथ डिवाइस लॉग प्रदर्शित कर रही है"/>

नीचे उदाहरण दिया गया है, कि Pushwoosh /registerDevice API अनुरोध डिवाइस कंसोल लॉग के भीतर कैसा दिखता है:

<img src="/pushwoosh-knowledge-hub-device-identifiers-9.webp" alt="एंड्रॉइड डिवाइस कंसोल लॉग जो hwid और पुश टोकन पैरामीटर के साथ registerDevice API अनुरोध दिखा रहा है"/>

अनुरोध में "hwid" और "push token" पैरामीटर मान खोजें:

```txt title="उदाहरण"
[RequestManager]
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"application":"D868A-C13C1","hwid":"fc79efabee7649ec","v":"5.5.2","device_type":3,"userId":"fc79efabee7649ec","device_name":"Phone","language":"en","timezone":25200,"android_package":"com.pushwoosh.pushon","jailbroken":0,"device_model":"Sony F8332","os_version":"8.0.0","idfa":"d43ad490-4e6a-48a8-b8b9-f20b76fbf07b","app_version":"1.5","push_token":"dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_","sounds":"[]"}}
| Response: {"status_code":200,"status_message":"OK","response":null}
x
[RequestManager] registerDevice response success
```

पुश टोकन डिवाइस पंजीकरण नोटिस में शामिल है:

```
I/Pushwoosh(12733): [DeviceRegistrar] Registered for pushes: dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_
03-30 14:45:10.539: D/PushOn(12733): Registered for push notifications
```

### Chrome (डेस्कटॉप)

1. अपनी वेबसाइट पर जाएं।

2. पृष्ठ पर कहीं भी राइट-क्लिक करें और "Inspect" दबाएं।

<img src="/pushwoosh-knowledge-hub-device-identifiers-10.webp" alt="क्रोम ब्राउज़र डेवलपर टूल्स जो इंस्पेक्ट एलिमेंट संदर्भ मेनू विकल्प के साथ खुले हैं"/>

3. खुली हुई विंडो में, "Application" टैब पर जाएं।

4. फिर, बाएं साइडबार पर, IndexedDB -> Pushwoosh\_SDK\_Store -> keyValue चुनें। यहां, HWID और पुश टोकन पैरामीटर खोजें।

<img src="/pushwoosh-knowledge-hub-device-identifiers-11.webp" alt="क्रोम डेवलपर टूल्स एप्लिकेशन टैब जो Pushwoosh SDK स्टोर और HWID और पुश टोकन वाले keyValue के साथ IndexedDB दिखा रहा है"/>

### Chrome (मोबाइल)

1. अपने मोबाइल डिवाइस को कंप्यूटर से कनेक्ट करें।

2. अपने डेस्कटॉप Chrome पर chrome://inspect/#devices पर जाएं।

3. अपने मोबाइल Chrome पर अपनी वेबसाइट खोलें।

4. एक बार जब वेबसाइट आपके मोबाइल Chrome पर खुल जाती है, तो आप डेस्कटॉप Chrome पृष्ठ के भीतर संबंधित पृष्ठ देखेंगे। कृपया नीचे दिए गए स्क्रीनशॉट पर एक नज़र डालें:

<img src="/pushwoosh-knowledge-hub-device-identifiers-12.webp" alt="क्रोम रिमोट डिबगिंग पेज जो इंस्पेक्ट बटन हाइलाइट किए गए कनेक्टेड मोबाइल डिवाइस को दिखा रहा है"/>

5. ऊपर स्क्रीनशॉट में हाइलाइट किए गए "Inspect" बटन को दबाएं।

6. निम्नलिखित विंडो आपके डेस्कटॉप Chrome पर दिखाई देगी। वहां, "Application" टैब के भीतर, IndexedDB -> PUSHWOOSH\_SDK\_STORE खोलें। इसके बाद, keyValue पर क्लिक करें और API\_PARAMS सेक्शन खोलें:

<img src="/pushwoosh-knowledge-hub-device-identifiers-13.webp" alt="क्रोम डेवलपर टूल्स एप्लिकेशन टैब जो API_PARAMS सेक्शन में hwid और पुश टोकन के साथ IndexedDB PUSHWOOSH SDK स्टोर दिखा रहा है"/>

API\_PARAMS सेक्शन में, आपको "hwid" और "push token" पैरामीटर उनके मानों के साथ मिलेंगे।

### Safari

1. अपनी वेबसाइट पर जाएं।
2. पृष्ठ पर कहीं भी राइट-क्लिक करें और Inspect Element चुनें।
3. Storage टैब -> Indexed Databases -> PUSHWOOSH\_SDK\_STORE -> keyValue पर जाएं।
4. API\_PARAMS का विस्तार करें और यहां "hwid" और "push token" मान खोजें।

<img src="/pushwoosh-knowledge-hub-device-identifiers-14.webp" alt="सफारी डेवलपर टूल्स स्टोरेज टैब जो API_PARAMS में hwid और पुश टोकन के साथ Indexed Databases में PUSHWOOSH SDK स्टोर keyValue दिखा रहा है"/>