Network Tracing
Stay organized with collections
Save and categorize content based on your preferences.
Select platform:
Android
iOS
Network tracing lets you see network activities relating to the Google Mobile
Ads SDK. This can be useful in debugging your Google Mobile Ads implementation.
A key reason to use network tracing instead of tools such as Charles
Proxy is that it works with all versions of
Android and devices running a supported version of Google play services. This
isn't the case with proxying tools due to changes in
trusted CAs and certificates in place since Android 7.0.
This guide explains how to enable network tracing for debugging purposes.
Enable tracing
To enable network tracing, enable developer
options for your device.
Then, launch the Google Settings app and select the Ads option:

Assuming you have developer options enabled and the feature is available, your
screen would then look like this:

Select the Enable debug logging for ads option to bring up following dialog:

Tap OK and you're then presented with an advertising identifier that ends
with 10ca1ad1abe1
:

You are now able to see all the output from the network logging in logcat. To
filter only Information-level Ads output to both the screen and a file, issue
the following command:
adb logcat '*:S' Ads:I Ads-cont:I | tee logs.txt
Output
Standard platform-appropriate console logs are used to output the network logs.
Console log messages always begin with the string GMA Debug BEGIN
,
GMA Debug CONTENT
, or GMA Debug FINISH
, so you can search or filter on these
strings. For each network log, the first log message is GMA Debug BEGIN
,
the last log message is GMA Debug FINISH
, and the network log content begins
with GMA Debug CONTENT
. If content is too long to fit on a line, it is split
among multiple lines, each line beginning with GMA Debug CONTENT
.
Console output example
I/Ads ( 4660): GMA Debug BEGIN
I/Ads ( 4660): GMA Debug CONTENT {"timestamp":1510679993741,...}
I/Ads ( 4660): GMA Debug FINISH
JSON output example
Here are some samples of JSON output from logcat:
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
}
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-09-04 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eNetwork tracing provides insights into network activities related to the Google Mobile Ads SDK, aiding in debugging your implementation.\u003c/p\u003e\n"],["\u003cp\u003eIt's compatible with all Android versions and devices running supported Google Play services, unlike some proxy tools.\u003c/p\u003e\n"],["\u003cp\u003eEnable tracing through developer options in the Google Settings app, selecting "Ads" and then "Enable debug logging for ads".\u003c/p\u003e\n"],["\u003cp\u003eNetwork logs, viewable in logcat, are identified by "GMA Debug BEGIN," "GMA Debug CONTENT," and "GMA Debug FINISH" markers and provide detailed request and response information in JSON format.\u003c/p\u003e\n"],["\u003cp\u003eThe JSON output includes timestamps, event types (like onNetworkRequest, onNetworkResponse, onNetworkResponseBody), and relevant parameters such as URLs, headers, response codes, and body details.\u003c/p\u003e\n"]]],["Network tracing for the Google Mobile Ads SDK enables debugging by viewing network activities, which works across all Android versions unlike proxying tools. To enable it, activate developer options on your device, then in the Google Settings app, select the \"Ads\" option and \"Enable debug logging for ads.\" Network logs are outputted to the console, starting with \"GMA Debug BEGIN,\" followed by \"GMA Debug CONTENT\" for the content, and ending with \"GMA Debug FINISH\", which are filterable. JSON output examples include `onNetworkRequest`, `onNetworkResponse`, and `onNetworkResponseBody`.\n"],null,["Select platform: [Android](/admob/android/network-tracing \"View this page for the Android platform docs.\") [iOS](/admob/ios/network-tracing \"View this page for the iOS platform docs.\")\n\n\u003cbr /\u003e\n\nNetwork tracing lets you see network activities relating to the Google Mobile\nAds SDK. This can be useful in debugging your Google Mobile Ads implementation.\n\nA key reason to use network tracing instead of tools such as [Charles\nProxy](//www.charlesproxy.com) is that it works with **all** versions of\nAndroid and devices running a supported version of Google play services. This\nisn't the case with proxying tools due to changes in\n[trusted CAs and certificates in place since Android 7.0](//developer.android.com/about/versions/nougat/android-7.0#default_trusted_ca).\n\nThis guide explains how to enable network tracing for debugging purposes.\n\nEnable tracing\n\nTo enable network tracing, [enable developer\noptions](//developer.android.com/studio/debug/dev-options) for your device.\nThen, launch the **Google Settings** app and select the **Ads** option:\n\nAssuming you have developer options enabled and the feature is available, your\nscreen would then look like this:\n\nSelect the **Enable debug logging for ads** option to bring up following dialog:\n\nTap **OK** and you're then presented with an advertising identifier that ends\nwith `10ca1ad1abe1`:\n\nYou are now able to see all the output from the network logging in logcat. To\nfilter only Information-level Ads output to both the screen and a file, issue\nthe following command: \n\n adb logcat '*:S' Ads:I Ads-cont:I | tee logs.txt\n\nOutput\n\nStandard platform-appropriate console logs are used to output the network logs.\n\nConsole log messages always begin with the string `GMA Debug BEGIN`,\n`GMA Debug CONTENT`, or `GMA Debug FINISH`, so you can search or filter on these\nstrings. For each network log, the first log message is `GMA Debug BEGIN`,\nthe last log message is `GMA Debug FINISH`, and the network log content begins\nwith `GMA Debug CONTENT`. If content is too long to fit on a line, it is split\namong multiple lines, each line beginning with `GMA Debug CONTENT`.\n\nConsole output example \n\n I/Ads ( 4660): GMA Debug BEGIN\n I/Ads ( 4660): GMA Debug CONTENT {\"timestamp\":1510679993741,...}\n I/Ads ( 4660): GMA Debug FINISH\n\nJSON output example\n\nHere are some samples of JSON output from logcat:\n\nonNetworkRequest \n\n {\n \"timestamp\": 1510679994904,\n \"event\": \"onNetworkRequest\",\n \"components\": [\n \"ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2\",\n \"network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90\"\n ],\n \"params\": {\n \"firstline\": {\n \"uri\": \"http://googleads.g.doubleclick.net/pagead/ads?carrier=....\",\n \"verb\": \"GET\"\n },\n \"headers\": [\n {\n \"name\": \"User-Agent\",\n \"value\": \"Mozilla/5.0 (Linux; Android 5.0.2;...\"\n }\n ]\n }\n }\n\nonNetworkResponse \n\n {\n \"timestamp\": 1510679995295,\n \"event\": \"onNetworkResponse\",\n \"components\": [\n \"ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2\",\n \"network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90\"\n ],\n \"params\": {\n \"firstline\": {\n \"code\": 200\n },\n \"headers\": [\n {\n \"name\": null,\n \"value\": \"HTTP/1.1 200 OK\"\n },\n {\n \"name\": \"X-Google-DOS-Service-Trace\",\n \"value\": \"main:pagead\"\n },\n {\n \"name\": \"Content-Type\",\n \"value\": \"text/html; charset=UTF-8\"\n },\n ...\n ]\n }\n }\n\nonNetworkResponseBody \n\n {\n \"timestamp\": 1510679995375,\n \"event\": \"onNetworkResponseBody\",\n \"components\": [\n \"ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2\",\n \"network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90\"\n ],\n \"params\": {\n \"bodydigest\": \"B2520049D02F3C70A12AD1BC0D1B58A4\",\n \"bodylength\": 122395\n }\n }"]]