নেটওয়ার্ক ট্রেসিং আপনাকে Google Mobile Ads SDK সম্পর্কিত নেটওয়ার্ক অ্যাক্টিভিটি দেখতে দেয়। আপনার Google Mobile Ads প্রয়োগ করা সংক্রান্ত সমস্যা সমাধান করার ক্ষেত্রে এটি কাজে লাগতে পারে।
Charles Proxy-এর মতো টুলের পরিবর্তে নেটওয়ার্ক ট্রেসিং ব্যবহার করার মূল কারণ হল, এটি Android-এর সব ভার্সন এবং Google Play পরিষেবার কাজ করে এমন ভার্সন চালানো ডিভাইসের সাথে কাজ করে। 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
}
}