नेटवर्क ट्रेसिंग की मदद से, Google Mobile Ads SDK से जुड़ी नेटवर्क की गतिविधियां देखी जा सकती हैं. इससे, Google Mobile Ads को लागू करने से जुड़ी गड़बड़ियों को ठीक करने में मदद मिल सकती है.
Charles प्रॉक्सी जैसे टूल के बजाय, नेटवर्क ट्रेसिंग का इस्तेमाल करने की खास वजह यह है कि यह Android के सभी वर्शन और Google Play services के ऐसे वर्शन पर काम करता है जो इसके साथ काम करते हैं. प्रॉक्सी टूल के मामले में ऐसा नहीं है. इसकी वजह यह है कि Android 7.0 के बाद से, भरोसेमंद CA और प्रमाणपत्रों में बदलाव किए गए हैं.
इस गाइड में, डीबग करने के लिए नेटवर्क ट्रेसिंग की सुविधा चालू करने का तरीका बताया गया है.
ट्रेसिंग की सुविधा चालू करना
नेटवर्क ट्रेसिंग की सुविधा चालू करने के लिए, अपने डिवाइस पर डेवलपर के लिए सेटिंग और टूल चालू करें. इसके बाद, Google की सेटिंग ऐप्लिकेशन लॉन्च करें और विज्ञापन विकल्प चुनें:

मान लें कि आपने डेवलपर के लिए सेटिंग और टूल चालू किए हैं और यह सुविधा उपलब्ध है. ऐसे में, आपकी स्क्रीन इस तरह दिखेगी:

विज्ञापन दिखाने से जुड़ी गड़बड़ी को लॉग करने की सेटिंग चालू करें विकल्प चुनें. इसके बाद, यह डायलॉग दिखेगा:

ठीक है पर टैप करें. इसके बाद, आपको एक विज्ञापन आईडी दिखेगा, जो 10ca1ad1abe1 से खत्म होता है:

अब logcat में, नेटवर्क लॉगिंग से जुड़ा सारा आउटपुट देखा जा सकता है. स्क्रीन और किसी फ़ाइल, दोनों पर सिर्फ़ सूचना के लेवल वाले विज्ञापनों का आउटपुट फ़िल्टर करने के लिए, यह कमांड जारी करें:
adb logcat '*:S' Ads:I Ads-cont:I | tee logs.txtआउटपुट
नेटवर्क लॉग का आउटपुट देने के लिए, प्लैटफ़ॉर्म के हिसाब से कंसोल लॉग के स्टैंडर्ड फ़ॉर्मैट का इस्तेमाल किया जाता है.
कंसोल लॉग मैसेज हमेशा GMA Debug BEGIN, GMA Debug CONTENT या GMA Debug FINISH स्ट्रिंग से शुरू होते हैं. इसलिए, इन स्ट्रिंग को खोजा या फ़िल्टर किया जा सकता है. हर नेटवर्क लॉग के लिए, पहला लॉग मैसेज GMA Debug BEGIN होता है. आखिरी लॉग मैसेज GMA Debug FINISH होता है. साथ ही, नेटवर्क लॉग का कॉन्टेंट GMA Debug CONTENT से शुरू होता है. अगर कॉन्टेंट इतना लंबा है कि वह एक लाइन में नहीं आ सकता, तो उसे कई लाइनों में बांटा जाता है. हर लाइन GMA Debug CONTENT से शुरू होती है.
कंसोल आउटपुट का उदाहरण
I/Ads ( 4660): GMA Debug BEGIN
I/Ads ( 4660): GMA Debug CONTENT {"timestamp":1510679993741,...}
I/Ads ( 4660): GMA Debug FINISH
JSON फ़ॉर्मैट में आउटपुट का उदाहरण
यहां logcat से JSON फ़ॉर्मैट में मिले आउटपुट के कुछ सैंपल दिए गए हैं:
onNetworkRequest
{
"timestamp": 1510679994904,
"event": "onNetworkRequest",
"components": [
"ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2",
"network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90"
],
"params": {
"firstline": {
"uri": "http://googleads.g.doubleclick.net/pagead/ads?carrier=....",
"verb": "GET"
},
"headers": [
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Linux; Android 5.0.2;..."
}
]
}
}
onNetworkResponse
{
"timestamp": 1510679995295,
"event": "onNetworkResponse",
"components": [
"ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2",
"network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90"
],
"params": {
"firstline": {
"code": 200
},
"headers": [
{
"name": null,
"value": "HTTP/1.1 200 OK"
},
{
"name": "X-Google-DOS-Service-Trace",
"value": "main:pagead"
},
{
"name": "Content-Type",
"value": "text/html; charset=UTF-8"
},
...
]
}
}
onNetworkResponseBody
{
"timestamp": 1510679995375,
"event": "onNetworkResponseBody",
"components": [
"ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2",
"network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90"
],
"params": {
"bodydigest": "B2520049D02F3C70A12AD1BC0D1B58A4",
"bodylength": 122395
}
}