एट्रिब्यूशन रिपोर्टिंग के लिए डीबग रिपोर्ट सेट अप करना

एट्रिब्यूशन रिपोर्टिंग को डीबग करने के बारे में तीन हिस्सों वाली सीरीज़ का दूसरा हिस्सा. डीबग रिपोर्ट सेट अप करें.

शब्दावली

  • The reporting origin is the origin that sets the Attribution Reporting source and trigger headers. All reports generated by the browser are sent to this origin. In this guidance, we use https://adtech.example as the example reporting origin.
  • An attribution report (report for short) is the final report (event-level or aggregatable) that contains the measurement data you've requested.
  • A debug report contains additional data about an attribution report, or about a source or trigger event. Receiving a debug report does not necessarily mean that something is working incorrectly! There are two types of debug reports
  • A transitional debug report is a debug report that requires a cookie to be set in order to be generated and sent. Transitional debug reports will be unavailable if a cookie is not set, and once third-party cookies are deprecated. All debug reports described in this guide are transitional debug reports.
  • Success debug reports track successful generation of an attribution report. They relate directly to an attribution report. Success debug reports have been available since Chrome 101 (April 2022).
  • Verbose debug reports can track missing reports and help you determine why they're missing. They indicate cases where the browser did not record a source or trigger event, (which means it will not generate an attribution report), and cases where an attribution report can't be generated or sent for some reason. Verbose debug reports include a type field that describes the reason why a source event, trigger event or attribution report was not generated. Verbose debug reports are available starting in Chrome 109 (Stable in January 2023).
  • Debug keys are unique identifiers you can set on both the source side and the trigger side. Debug keys enable you to map cookie-based conversions and attribution-based conversions. When you've set up your system to generate debug reports and set debug keys, the browser will include these debug keys in all attribution reports and debug reports.

For more concepts and key terms used throughout our documentation, refer to the Privacy Sandbox glossary.

क्या आपको लागू करने से जुड़े सवाल पूछने हैं?

अगर आपको डीबग रिपोर्ट सेट अप करने में कोई समस्या आती है, तो डेवलपर सहायता से जुड़ी हमारी रिपॉज़िटरी में समस्या की जानकारी दें. हम आपकी समस्या हल करने में मदद करेंगे.

डीबग रिपोर्ट सेट अप करने की तैयारी करना

डीबग रिपोर्ट सेट अप करने से पहले, यह तरीका अपनाएं:

देखें कि आपने एपीआई इंटिग्रेशन के सबसे सही तरीके लागू किए हों

  • देखें कि आपका कोड, सुविधा की पहचान करने की प्रोसेस के बाद ही काम करता हो. यह पक्का करने के लिए कि Permissions-Policy की वजह से एपीआई ब्लॉक नहीं किया गया है, यह कोड चलाएं:

    if (document.featurePolicy.allowsFeature('attribution-reporting')) {
    // the Attribution Reporting API is enabled
    }
    

    अगर इस सुविधा की पहचान करने वाली जांच से 'सही है' वैल्यू मिलती है, तो एपीआई को उस कॉन्टेक्स्ट (पेज) में इस्तेमाल करने की अनुमति होती है जहां जांच की जाती है.

  • (टेस्टिंग के दौरान इसकी ज़रूरत नहीं है: देखें कि आपने Permissions-Policy सेट की है या नहीं)

इंटीग्रेशन से जुड़ी बुनियादी समस्याएं ठीक करना

डीबग रिपोर्ट से, बड़े पैमाने पर होने वाले नुकसान का पता लगाने और उसका विश्लेषण करने में मदद मिलती है. हालांकि, इंटिग्रेशन से जुड़ी कुछ समस्याओं का पता स्थानीय तौर पर लगाया जा सकता है. सोर्स और ट्रिगर हेडर के गलत कॉन्फ़िगरेशन, JSON पार्सिंग, असुरक्षित कॉन्टेक्स्ट (नॉन-एचटीटीपीएस) और एपीआई को काम करने से रोकने वाली अन्य समस्याओं के बारे में DevTools के समस्याएं टैब में बताया जाएगा.

DevTools से जुड़ी समस्याएं अलग-अलग तरह की हो सकती हैं. अगर आपको कोई invalid header समस्या आती है, तो हेडर को हेडर की पुष्टि करने वाले टूल में कॉपी करें. इससे आपको उस फ़ील्ड का पता लगाने और उसे ठीक करने में मदद मिलेगी जिसकी वजह से समस्या आ रही है.

Attribution Reporting हेडर की पुष्टि करना

Attribution Reporting API से जुड़े हेडर की पुष्टि करने के लिए, हेडर की पुष्टि करने वाले टूल का इस्तेमाल किया जा सकता है. एपीआई को डीबग करने के लिए, ब्राउज़र से होने वाली पुष्टि की गड़बड़ियों को मॉनिटर किया जा सकता है.

डीबग करने से जुड़ी रिपोर्ट पाने के लिए, Attribution-Reporting-Info रिस्पॉन्स हेडर के हिस्से के तौर पर report-header-errors का इस्तेमाल करें.

Attribution-Reporting-Info: report-header-errors

ध्यान दें कि Attribution-Reporting-Info एक डिक्शनरी स्ट्रक्चर्ड हेडरAttribution-Reporting-Info है. इसलिए, बूलियन report-header-errors कुंजी देने का मतलब है कि वैल्यू सही है.

डीबग करने से जुड़ी रिपोर्ट, रिपोर्टिंग एंडपॉइंट को तुरंत भेजी जाती हैं:

https://<reporting origin>/.well-known/attribution-reporting/debug/verbose

रिपोर्ट का डेटा, अनुरोध के मुख्य हिस्से में शामिल किया जाता है. यह डेटा, इस फ़ॉर्म में मौजूद ऑब्जेक्ट की JSON सूची के तौर पर होता है:

[{
  "type": "header-parsing-error",
  "body": {
    "context_site": "https://source.example",
    "header": "Attribution-Reporting-Register-Source",
    "value": "!!!", // header value received in the response
    "error": "invalid JSON" // optional error details that may vary across browsers or different versions of the same browser
  }
}]
हेडर की पुष्टि करने वाला टूल
हेडर की पुष्टि करने वाला टूल

डीबग रिपोर्ट सेट अप करना: ये ऐसे चरण हैं जो सफलता की रिपोर्ट और ज़्यादा जानकारी वाली रिपोर्ट, दोनों के लिए एक जैसे हैं

रिपोर्टिंग ऑरिजिन पर यह कुकी सेट करें:

Set-Cookie: ar_debug=1; SameSite=None; Secure; Path=/; HttpOnly

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

डेमो कोड: debug cookie

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

दूसरा चरण: डीबग कुंजियां सेट करना

हर डीबग कुंजी, 64-बिट का बिना हस्ताक्षर वाला पूर्णांक होना चाहिए. इसे बेस-10 स्ट्रिंग के तौर पर फ़ॉर्मैट किया गया हो. हर डीबग कुंजी को एक यूनीक आईडी बनाएं. डीबग की सफलता से जुड़ी रिपोर्ट सिर्फ़ तब जनरेट होगी, जब डीबग कुंजियां सेट की गई हों.

  • सोर्स-साइड की डीबग कुंजी को सोर्स-टाइम की उस अतिरिक्त जानकारी से मैप करें जो आपको डीबग करने के लिए काम की लगती है.
  • ट्रिगर-साइड डीबग कुंजी को ट्रिगर होने के समय की उस अतिरिक्त जानकारी पर मैप करें जो आपको डीबग करने के लिए ज़रूरी लगती है.

उदाहरण के लिए, ये डीबग कुंजियां सेट की जा सकती हैं:

  • कुकी आईडी + सोर्स टाइमस्टैंप को सोर्स डीबग कुंजी के तौर पर इस्तेमाल करें. साथ ही, उसी टाइमस्टैंप को कुकी पर आधारित सिस्टम में कैप्चर करें
  • कुकी आईडी + ट्रिगर टाइमस्टैंप को ट्रिगर डीबग कुंजी के तौर पर इस्तेमाल करें. साथ ही, उसी टाइमस्टैंप को कुकी पर आधारित सिस्टम में कैप्चर करें

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

सोर्स-साइड की डीबग कुंजी को source_event_id से अलग रखें, ताकि एक ही सोर्स इवेंट आईडी वाली अलग-अलग रिपोर्ट में अंतर किया जा सके.

Attribution-Reporting-Register-Source:
{
// … Usual fields for Attribution-Reporting-Register-Source
"debug_key":"647775351539539"
}
Attribution-Reporting-Register-Trigger:
{
// … Usual fields for Attribution-Reporting-Register-Trigger
"debug_key":"938321351539743"
}

डेमो कोड: source debug key डेमो कोड: trigger debug key

सफलता से जुड़ी डीबग रिपोर्ट सेट अप करना

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

तीसरा चरण: डीबग की गई रिपोर्ट इकट्ठा करने के लिए, एक एंडपॉइंट सेट अप करना

डीबग रिपोर्ट इकट्ठा करने के लिए, एक एंडपॉइंट सेट अप करें. यह एंडपॉइंट, मुख्य एट्रिब्यूशन एंडपॉइंट जैसा होना चाहिए. साथ ही, इसके पाथ में एक और debug स्ट्रिंग होनी चाहिए:

  • इवेंट-लेवल पर कन्वर्ज़न ट्रैक करने की सुविधा के लिए, डीबग रिपोर्ट का एंडपॉइंट: https://adtech.example/.well-known/attribution-reporting/debug/report-event-attribution
    • एग्रीगेट की जा सकने वाली सफलता से जुड़ी डीबग रिपोर्ट के लिए एंडपॉइंट: https://adtech.example/.well-known/attribution-reporting/debug/report-aggregate-attribution

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

// Handle incoming event-Level Success Debug reports
adtech.post(
  '/.well-known/attribution-reporting/debug/report-event-attribution',
  async (req, res) => {
    // Debug report is in req.body
    res.sendStatus(200);
  }
);

// Handle incoming aggregatable Success Debug reports
adtech.post(
  '/.well-known/attribution-reporting/debug/report-aggregate-attribution',
  async (req, res) => {
    // Debug report is in req.body
    res.sendStatus(200);
  }
);

डेमो कोड: इवेंट-लेवल की डीबग रिपोर्ट का एंडपॉइंट

डेमो कोड: एग्रीगेट की जा सकने वाली डीबग रिपोर्ट एंडपॉइंट

चौथा चरण: पुष्टि करें कि सेटअप से, डीबग रिपोर्ट जनरेट होंगी

  • अपने ब्राउज़र में chrome://attribution-internals खोलें.
  • पक्का करें कि इवेंट-लेवल की रिपोर्ट और एग्रीगेट की जा सकने वाली रिपोर्ट, दोनों टैब में डीबग रिपोर्ट दिखाएं चेकबॉक्स चुना गया हो.
  • उन साइटों को खोलें जिन पर आपने एट्रिब्यूशन रिपोर्टिंग लागू की है. एट्रिब्यूशन रिपोर्ट जनरेट करने के लिए इस्तेमाल किया जाने वाला तरीका अपनाएं. इसी तरीके से, सफलता की डीबग रिपोर्ट जनरेट होंगी.
  • chrome://attribution-internals में:
    • देखें कि एट्रिब्यूशन रिपोर्ट सही तरीके से जनरेट की गई हों.
    • इवेंट-लेवल की रिपोर्ट टैब और एग्रीगेट की जा सकने वाली रिपोर्ट टैब में जाकर, यह देखें कि डीबग रिपोर्ट जनरेट हुई हैं या नहीं. उन्हें सूची में, नीले debug पाथ के साथ पहचानें.
एट्रिब्यूशन की इंटरनल प्रोसेस
एट्रिब्यूशन की इंटरनल प्रोसेस
  • अपने सर्वर पर पुष्टि करें कि आपके एंडपॉइंट को ये सफलता से जुड़ी डीबग रिपोर्ट तुरंत मिल रही हैं. पक्का करें कि आपने इवेंट-लेवल और एग्रीगेट की जा सकने वाली, दोनों तरह की डीबग रिपोर्ट देखी हों.
ओरिजिन सर्वर के लॉग की रिपोर्टिंग
रिपोर्टिंग ओरिजिन सर्वर के लॉग

पांचवां चरण: डीबग रिपोर्ट में कन्वर्ज़न ट्रैक होने की जानकारी देखना

सक्सेस डीबग रिपोर्ट, एट्रिब्यूशन रिपोर्ट जैसी ही होती है. इसमें सोर्स-साइड और ट्रिगर-साइड, दोनों डीबग कुंजियां शामिल होती हैं.

{
  "attribution_destination": "https://advertiser.example",
  "randomized_trigger_rate": 0.0000025,
  "report_id": "7d76ef29-d59e-4954-9fff-d97a743b4715",
  "source_debug_key": "647775351539539",
  "source_event_id": "760938763735530",
  "source_type": "event",
  "trigger_data": "0",
  "trigger_debug_key": "156477391437535"
}

{
  "aggregation_service_payloads": [
    {
      "debug_cleartext_payload": "omRkYXRhgqJldmFsdWVEAACAAGZidWNrZXRQPPhnkD+7c+wm1RjAlowp3KJldmFsdWVEAAARMGZidWNrZXRQJFJl9DLxbnMm1RjAlowp3GlvcGVyYXRpb25paGlzdG9ncmFt",
      "key_id": "d5f32b96-abd5-4ee5-ae23-26490d834012",
      "payload": "0s9mYVIuznK4WRV/t7uHKquHPYCpAN9mZHsUGNiYd2G/9cg87Y0IjlmZkEtiJghMT7rmg3GtWVPWTJU5MvtScK3HK3qR2W8CVDmKRAhqqlz1kPZfdGUB4NsXGyVCy2UWapklE/r7pmRDDP48b4sQTyDMFExQGUTE56M/8WFVQ0qkc7UMoLI/uwh2KeIweQCEKTzw"
    }
  ],
  "shared_info": "{\"api\":\"attribution-reporting\",\"attribution_destination\":\"https://advertiser.example\",\"debug_mode\":\"enabled\",\"report_id\":\"4a04f0ff-91e7-4ef6-9fcc-07d000c20495\",\"reporting_origin\":\"https://adtech.example\",\"scheduled_report_time\":\"1669888617\",\"source_registration_time\":\"1669852800\",\"version\":\"0.1\"}",
  "source_debug_key": "647775351539539",
  "trigger_debug_key": "156477391437535"
}

ज़्यादा जानकारी वाली डीबग रिपोर्ट सेट अप करना

तीसरा चरण: सोर्स और ट्रिगर हेडर में वर्बोस डीबगिंग के लिए ऑप्ट इन करना

Attribution-Reporting-Register-Source और Attribution-Reporting-Register-Trigger, दोनों में debug_reporting को true पर सेट करें.

Attribution-Reporting-Register-Source:
{
// … Usual fields for Attribution-Reporting-Register-Source
"debug_key":"938321351539743",
"debug_reporting": true // defaults to false if not present
}

Attribution-Reporting-Register-Trigger:
{
// … Usual fields for Attribution-Reporting-Register-Trigger
"debug_key":"938321351539743",
"debug_reporting": true // defaults to false if not present
}

डेमो कोड: source header

डेमो कोड: ट्रिगर हेडर

चौथा चरण: ज़्यादा जानकारी वाली डीबग रिपोर्ट इकट्ठा करने के लिए, एंडपॉइंट सेट अप करना

डीबग रिपोर्ट इकट्ठा करने के लिए, एक एंडपॉइंट सेट अप करें. यह एंडपॉइंट, मुख्य एट्रिब्यूशन एंडपॉइंट जैसा होना चाहिए. साथ ही, इसके पाथ में एक अतिरिक्त debug/verbose स्ट्रिंग होनी चाहिए:

https://adtech.example/.well-known/attribution-reporting/debug/verbose

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

// Handle incoming verbose debug reports
adtech.post(
  '/.well-known/attribution-reporting/debug/verbose',
  async (req, res) => {
    // List of verbose debug reports is in req.body
    res.sendStatus(200);
  }
);

सक्सेस डीबग रिपोर्ट के उलट, वर्बोस रिपोर्ट के लिए सिर्फ़ एक एंडपॉइंट होता है. इवेंट-लेवल और एग्रीगेट की गई रिपोर्ट से जुड़ी ज़्यादा जानकारी वाली सभी रिपोर्ट, एक ही एंडपॉइंट पर भेजी जाएंगी.

डेमो कोड: वर्बोस डीबग रिपोर्ट एंडपॉइंट

पांचवां चरण: पुष्टि करें कि सेटअप से ज़्यादा जानकारी वाली डीबग रिपोर्ट जनरेट होंगी

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

  1. अपने ब्राउज़र में chrome://attribution-internals खोलें.
  2. अपनी साइट पर एट्रिब्यूशन (कन्वर्ज़न) ट्रिगर करें. यह साइट, एट्रिब्यूशन रिपोर्टिंग के साथ सेट अप की गई हो. इस कन्वर्ज़न से पहले कोई विज्ञापन इंटरैक्शन (इंप्रेशन या क्लिक) नहीं हुआ था. इसलिए, आपको trigger-no-matching-source टाइप की ज़्यादा जानकारी वाली डीबग रिपोर्ट मिलेगी.
  3. chrome://attribution-internals में, ज़्यादा जानकारी वाली डीबग रिपोर्ट टैब खोलें और देखें कि trigger-no-matching-source टाइप की ज़्यादा जानकारी वाली डीबग रिपोर्ट जनरेट हुई है या नहीं.
  4. अपने सर्वर पर पुष्टि करें कि आपके एंडपॉइंट को यह वर्बोस डीबग रिपोर्ट तुरंत मिल गई है.

छठा चरण: ज़्यादा जानकारी वाली डीबग रिपोर्ट देखना

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

ब्राउज़र से भेजी गई ऐसी रिपोर्ट का उदाहरण जिसमें ज़्यादा जानकारी वाली डीबग रिपोर्ट शामिल हैं:

[
  {
    "body": {
      "attribution_destination": "http://arapi-advertiser.localhost",
      "randomized_trigger_rate": 0.0000025,
      "report_id": "92b7f4fd-b157-4925-999e-aad6361de759",
      "source_debug_key": "282273499788483",
      "source_event_id": "480041649210491",
      "source_type": "event",
      "trigger_data": "1",
      "trigger_debug_key": "282273499788483"
    },
    "type": "trigger-event-low-priority"
  },
  {
    "body": {
      "attribution_destination": "http://arapi-advertiser.localhost",
      "limit": "65536",
      "source_debug_key": "282273499788483",
      "source_event_id": "480041649210491",
      "source_site": "http://arapi-publisher.localhost",
      "trigger_debug_key": "282273499788483"
    },
    "type": "trigger-aggregate-insufficient-budget"
  }
]

ज़्यादा जानकारी वाली हर रिपोर्ट में ये फ़ील्ड शामिल होते हैं:

Type
रिपोर्ट जनरेट होने की वजह. ज़्यादा जानकारी वाली सभी रिपोर्ट के टाइप और हर टाइप के हिसाब से किए जाने वाले ऐक्शन के बारे में जानने के लिए, तीसरा भाग: डीबग करने से जुड़ी कुकबुक में, ज़्यादा जानकारी वाली रिपोर्ट का रेफ़रंस देखें.
Body
रिपोर्ट का मुख्य हिस्सा. यह इस बात पर निर्भर करेगा कि वह किस तरह का रिकॉर्ड है. तीसरा चरण: डीबग करने से जुड़ी कुकबुक में, वर्बोस रिपोर्ट के रेफ़रंस की समीक्षा करें.

अनुरोध के मुख्य हिस्से में, कम से कम एक और ज़्यादा से ज़्यादा दो वर्बोस रिपोर्ट होंगी:

  • अगर गड़बड़ी का असर सिर्फ़ इवेंट-लेवल की रिपोर्ट पर पड़ता है या सिर्फ़ एग्रीगेट की जा सकने वाली रिपोर्ट पर पड़ता है, तो एक वर्बोस रिपोर्ट. सोर्स या ट्रिगर के रजिस्ट्रेशन में गड़बड़ी होने की सिर्फ़ एक वजह होती है. इसलिए, हर गड़बड़ी के लिए और हर रिपोर्ट टाइप (इवेंट-लेवल या एग्रीगेट की जा सकने वाली) के लिए, ज़्यादा जानकारी वाली एक रिपोर्ट जनरेट की जा सकती है.
  • अगर गड़बड़ी का असर इवेंट-लेवल और एग्रीगेट की जा सकने वाली, दोनों तरह की रिपोर्ट पर पड़ता है, तो दो वर्बोस रिपोर्ट जनरेट होती हैं. हालांकि, एक अपवाद है: अगर इवेंट-लेवल और एग्रीगेट की जा सकने वाली रिपोर्ट के लिए गड़बड़ी की वजह एक ही है, तो सिर्फ़ एक वर्बोस रिपोर्ट जनरेट होती है (उदाहरण: trigger-no-matching-source)

अगला

तीसरा हिस्सा: डीबग करने से जुड़ी कुकबुक