एट्रिब्यूशन रिपोर्टिंग को डीबग करने के बारे में तीन में से दूसरा चरण. डीबग रिपोर्ट सेट अप करें.
शब्दावली
- रिपोर्टिंग ऑरिजिन वह ऑरिजिन है जो एट्रिब्यूशन रिपोर्टिंग सोर्स और ट्रिगर हेडर सेट करता है.
ब्राउज़र से जनरेट की गई सभी रिपोर्ट इस ऑरिजिन पर भेजी जाती हैं. इस दिशा-निर्देश में,
हम रिपोर्टिंग ऑरिजिन के लिए
https://adtech.example
का इस्तेमाल करते हैं. - एट्रिब्यूशन रिपोर्ट (कम शब्दों में रिपोर्ट) ऐसी फ़ाइनल रिपोर्ट (इवेंट-लेवल या एग्रीगेट की जा सकने वाली) होती है जिसमें आपके अनुरोध किया गया मेज़रमेंट डेटा होता है.
- डीबग रिपोर्ट में, एट्रिब्यूशन रिपोर्ट या किसी सोर्स या ट्रिगर इवेंट के बारे में ज़्यादा डेटा होता है. डीबग रिपोर्ट मिलने का मतलब यह नहीं है कि कुछ गलत काम कर रहा है! दो तरह की डीबग रिपोर्ट होती हैं
- ट्रांज़िशनल डीबग रिपोर्ट एक डीबग रिपोर्ट होती है, जिसके जनरेट और भेजने के लिए कुकी को सेट करना ज़रूरी होता है. अगर कुकी सेट नहीं की गई है और तीसरे पक्ष की कुकी के बंद होने के बाद, ट्रांज़िशनल डीबग रिपोर्ट की सुविधा उपलब्ध नहीं होगी. इस गाइड में बताई गई सभी डीबग रिपोर्ट, ट्रांज़िशनल डीबग रिपोर्ट हैं.
- सही डीबग रिपोर्ट एट्रिब्यूशन रिपोर्ट जनरेट करने की प्रोसेस को ट्रैक करती हैं. ये एट्रिब्यूशन रिपोर्ट से सीधे तौर पर जुड़े होते हैं. सक्सेस डीबग रिपोर्ट की सुविधा, Chrome 101 (अप्रैल 2022) से उपलब्ध है.
- वर्बोस डीबग रिपोर्ट, छूटी हुई रिपोर्ट ट्रैक कर सकती हैं. साथ ही, आपको यह पता लगाने में मदद मिलती है कि वे रिपोर्ट क्यों मौजूद नहीं हैं. इनसे उन मामलों में जानकारी मिलती है जहां ब्राउज़र ने सोर्स या ट्रिगर इवेंट को रिकॉर्ड नहीं किया. इसका मतलब है कि इससे एट्रिब्यूशन रिपोर्ट जनरेट नहीं होगी. साथ ही, ऐसे मामले भी दिखते हैं जिनमें किसी वजह से एट्रिब्यूशन रिपोर्ट जनरेट नहीं की जा सकती या भेजी नहीं जा सकती.
वर्बोज़ डीबग रिपोर्ट में एक
type
फ़ील्ड होता है, जो सोर्स इवेंट, ट्रिगर इवेंट या एट्रिब्यूशन रिपोर्ट के जनरेट न होने की वजह बताता है. वर्बोस डीबग रिपोर्ट, Chrome 109 (जनवरी 2023 में स्थिर) की शुरुआत से उपलब्ध हैं. - डीबग कुंजियां, यूनीक आइडेंटिफ़ायर होती हैं. इन्हें सोर्स साइड और ट्रिगर, दोनों पर सेट किया जा सकता है. डीबग कुंजियों की मदद से, कुकी पर आधारित कन्वर्ज़न और एट्रिब्यूशन पर आधारित कन्वर्ज़न को मैप किया जा सकता है. अगर आपने अपने सिस्टम को डीबग रिपोर्ट जनरेट करने और डीबग कुंजियां सेट करने के लिए सेट किया है, तो ब्राउज़र इन डीबग कुंजियों को सभी एट्रिब्यूशन रिपोर्ट और डीबग रिपोर्ट में शामिल करेगा.
हमारे सभी दस्तावेज़ों में इस्तेमाल किए गए ज़्यादा कॉन्सेप्ट और मुख्य शब्दों के बारे में जानने के लिए, Privacy Sandbox की ग्लॉसरी देखें.
क्या इसे लागू करने के बारे में सवाल हैं?
अगर डीबग रिपोर्ट सेट अप करते समय आपको कोई समस्या आती है, तो डेवलपर सहायता के डेटा स्टोर करने की जगह में कोई समस्या डालें. हम समस्या हल करने में आपकी मदद करेंगे.
डीबग रिपोर्ट सेट अप करने की तैयारी करना
डीबग रिपोर्ट सेट अप करने से पहले, यह तरीका अपनाएं:
यह देखना कि आपने एपीआई इंटिग्रेशन के लिए सबसे सही तरीके लागू किए हैं या नहीं
यह देख लें कि आपका कोड, सुविधा की पहचान करने वाली सुविधा के पीछे लगा हो. यह पक्का करने के लिए कि एपीआई अनुमतियों की नीति के तहत ब्लॉक नहीं किया गया है, नीचे दिया गया कोड चलाएं:
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);
}
);
सफल डीबग रिपोर्ट के उलट, ज़्यादा शब्दों वाली रिपोर्ट के लिए सिर्फ़ एक एंडपॉइंट होता है. इवेंट-लेवल और एग्रीगेट की गई रिपोर्ट से जुड़ी वर्बोस रिपोर्ट, एक ही एंडपॉइंट पर भेजी जाएंगी.
डेमो कोड: वर्बोस डीबग रिपोर्ट एंडपॉइंट
पांचवां चरण: पुष्टि करें कि आपके सेट अप से ज़्यादा शब्दों वाली डीबग रिपोर्ट जनरेट होगी
वैसे तो कई तरह की वर्बोस डीबग रिपोर्ट मौजूद होती हैं, लेकिन सिर्फ़ एक तरह की वर्बोस डीबग रिपोर्ट के ज़रिए डीबग करने के सेटअप की जांच करना काफ़ी है. अगर एक तरह की वर्बोस डीबग रिपोर्ट सही तरीके से जनरेट और मिलती है, तो इसका मतलब है कि सभी तरह की वर्बोस डीबग रिपोर्ट सही तरीके से जनरेट होंगी और मिल भी जाएंगी. इसकी वजह यह है कि सभी वर्बोस डीबग रिपोर्ट एक ही कॉन्फ़िगरेशन का इस्तेमाल करती हैं और एक ही एंडपॉइंट पर भेजी जाती हैं.
chrome://attribution-internals
को अपने ब्राउज़र में खोलें.- एट्रिब्यूशन रिपोर्टिंग की मदद से सेट अप की गई साइट पर एट्रिब्यूशन (ग्राहक में बदलना) ट्रिगर करें. इस कन्वर्ज़न से पहले, विज्ञापन पर यूज़र ऐक्टिविटी (इंप्रेशन या क्लिक) नहीं थी,
इसलिए आपको
trigger-no-matching-source
के टाइप की वर्बोस डीबग रिपोर्ट जनरेट करनी होगी. chrome://attribution-internals
में, वर्बोस डीबग रिपोर्ट टैब खोलें और देखें किtrigger-no-matching-source
टाइप की वर्बोस डीबग रिपोर्ट जनरेट की गई है या नहीं.- अपने सर्वर पर, पुष्टि करें कि आपके एंडपॉइंट को तुरंत यह वर्बोस डीबग रिपोर्ट मिल गई हो.
छठा चरण: वर्बोस डीबग रिपोर्ट पर नज़र रखना
ट्रिगर के समय जनरेट की गई वर्बोस डीबग रिपोर्ट में सोर्स-साइड और ट्रिगर-साइड डीबग कुंजी, दोनों शामिल होते हैं. ऐसा तब किया जाता है, जब ट्रिगर के लिए कोई मिलता-जुलता सोर्स मौजूद हो. सोर्स समय पर जनरेट की गई, ज़्यादा शब्दों वाली डीबग रिपोर्ट में सोर्स-साइड डीबग कुंजी शामिल होती है.
ब्राउज़र से भेजी गई वर्बोस डीबग रिपोर्ट वाले अनुरोध का उदाहरण:
[
{
"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
)