ネットワーク トレースを使用すると、Google Mobile Ads SDK に関連するネットワーク アクティビティを確認できます。これは、Google モバイル広告の実装をデバッグする際に役立ちます。
Charles Proxy などのツールの代わりにネットワーク トレースを使用する主な理由として、Android のすべてのバージョンと、サポートされているバージョンの Google Play 開発者サービスを搭載したデバイスで動作することが挙げられます。ただし、Android 7.0 以降で導入された信頼できる CA と証明書は変更されているため、プロキシツールにはそのようなことはありません。
このガイドでは、デバッグ目的でネットワーク トレースを有効にする方法について説明します。
トレースを有効にする
ネットワーク トレースを有効にするには、デバイスの開発者向けオプションを有効にします。次に、Google 設定アプリを起動して、[広告] オプションを選択します。
開発者向けオプションを有効にしていて、この機能が利用可能な場合、画面は次のようになります。
[Enable debug logging for ads] オプションを選択すると、次のダイアログが表示されます。
[OK] をタップすると、末尾が 10ca1ad1abe1
の広告 ID が表示されます。
これで、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
で始まります。コンテンツが長すぎて 1 行に収まらない場合は、各行が 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
}
}