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

एट्रिब्यूशन रिपोर्टिंग को डीबग करने के बारे में तीन में से दूसरा चरण. डीबग रिपोर्ट सेट अप करें.

शब्दावली

  • रिपोर्टिंग ऑरिजिन वह ऑरिजिन है जो एट्रिब्यूशन रिपोर्टिंग सोर्स और ट्रिगर हेडर को सेट करता है. ब्राउज़र से जनरेट की गई सभी रिपोर्ट इस ऑरिजिन पर भेजी जाती हैं. इस दिशा-निर्देश में, हम https://adtech.example का इस्तेमाल रिपोर्टिंग ऑरिजिन के उदाहरण के तौर पर करते हैं.
  • एट्रिब्यूशन रिपोर्ट (कम शब्दों में रिपोर्ट) एक फ़ाइनल रिपोर्ट (इवेंट-लेवल या एग्रीगेटेबल) होती है. इसमें वह मेज़रमेंट डेटा होता है जिसका आपने अनुरोध किया है.
  • डीबग रिपोर्ट में, किसी एट्रिब्यूशन रिपोर्ट या किसी सोर्स या ट्रिगर इवेंट के बारे में ज़्यादा डेटा होता है. डीबग रिपोर्ट मिलने का मतलब यह नहीं है कि कोई गड़बड़ी ठीक से काम कर रही है! दो तरह की डीबग रिपोर्ट होती हैं
  • ट्रांज़िशनल डीबग रिपोर्ट एक डीबग रिपोर्ट होती है. इसे जनरेट करने और भेजने के लिए कुकी को सेट करना ज़रूरी होता है. कुकी सेट न होने पर और तीसरे पक्ष की कुकी के बंद होने पर, ट्रांज़िशनल डीबग रिपोर्ट उपलब्ध नहीं होंगी. इस गाइड में दी गई सभी डीबग रिपोर्ट, ट्रांज़िशनल डीबग रिपोर्ट हैं.
  • सफल डीबग रिपोर्ट एट्रिब्यूशन रिपोर्ट के सफल तरीके से जनरेट होने को ट्रैक करती हैं. वे सीधे तौर पर एट्रिब्यूशन रिपोर्ट से जुड़े होते हैं. सफलता की डीबग रिपोर्ट, Chrome 101 (अप्रैल 2022) से उपलब्ध हैं.
  • वर्बोस डीबग रिपोर्ट, नहीं मिल रही रिपोर्ट को ट्रैक कर सकती हैं. साथ ही, यह पता लगाने में भी मदद करती हैं कि ये रिपोर्ट क्यों उपलब्ध नहीं हैं. ये ऐसे मामलों की जानकारी देते हैं जहां ब्राउज़र ने किसी सोर्स या ट्रिगर इवेंट को रिकॉर्ड नहीं किया, जिसका मतलब है कि वह एट्रिब्यूशन रिपोर्ट जनरेट नहीं करेगा. साथ ही, ऐसे मामलों की जानकारी भी होती है जहां किसी वजह से एट्रिब्यूशन रिपोर्ट जनरेट या भेजी नहीं जा सकती. वर्बोस डीबग रिपोर्ट में एक type फ़ील्ड होता है, जो सोर्स इवेंट, ट्रिगर इवेंट या एट्रिब्यूशन रिपोर्ट जनरेट न होने की वजह बताता है. वर्बोस डीबग रिपोर्ट, Chrome 109 से उपलब्ध हैं (जनवरी 2023 में स्थिर).
  • डीबग की ऐसी यूनीक आइडेंटिफ़ायर हैं जिन्हें सोर्स साइड और ट्रिगर साइड, दोनों पर सेट किया जा सकता है. डीबग कुंजियों की मदद से, कुकी पर आधारित कन्वर्ज़न और एट्रिब्यूशन पर आधारित कन्वर्ज़न को मैप किया जा सकता है. जब आप अपने सिस्टम को, डीबग रिपोर्ट जनरेट करने और डीबग कुंजियां सेट करने के लिए सेट अप करते हैं, तब ब्राउज़र सभी एट्रिब्यूशन रिपोर्ट और डीबग रिपोर्ट में इन डीबग कुंजियों को शामिल करेगा.

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

क्या इसे लागू करने के बारे में सवाल हैं?

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

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

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

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

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

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

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

  • (टेस्टिंग फ़ेज़ के दौरान ज़रूरी नहीं: देखें कि आपने अनुमतियों से जुड़ी नीति सेट की है या नहीं)

इंटिग्रेशन की बुनियादी समस्याओं को ठीक करना

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

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

स्क्रीनशॉट: हेडर की पुष्टि करने वाला टूल

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

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

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

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

डेमो कोड: डीबग कुकी

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

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

हर डीबग कुंजी, 64-बिट की बिना हस्ताक्षर वाले पूर्णांक में होनी चाहिए. इस वैल्यू को base-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"
}

डेमो कोड: सोर्स डीबग की कुंजी डेमो कोड: ट्रिगर डीबग कुंजी

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

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

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

डीबग रिपोर्ट इकट्ठा करने के लिए, एंडपॉइंट सेट अप करें. यह एंडपॉइंट, मुख्य एट्रिब्यूशन एंडपॉइंट के जैसा होना चाहिए. साथ ही, पाथ में अतिरिक्त 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
}

डेमो कोड: सोर्स हेडर

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

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

डीबग रिपोर्ट इकट्ठा करने के लिए, एंडपॉइंट सेट अप करें. यह एंडपॉइंट, मुख्य एट्रिब्यूशन एंडपॉइंट के जैसा होना चाहिए. साथ ही, पाथ में अतिरिक्त 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)

अगला गाना

तीसरा चरण: कुकबुक को डीबग करना