Traccia di rete

Il tracciamento della rete ti consente di visualizzare le attività di rete relative all'SDK Google Mobile Ads. Questo può essere utile per eseguire il debug dell'implementazione di Google Mobile Ads.

Uno dei motivi principali per utilizzare il tracciamento di rete al posto di strumenti come Charles Proxy è che funziona con tutte le versioni di Android e con i dispositivi che eseguono una versione supportata di Google Play Services. Questo non è il caso degli strumenti di proxy a causa di modifiche alle CA e ai certificati attendibili in vigore a partire da Android 7.0.

Questa guida spiega come attivare il tracciamento della rete per scopi di debug.

Enable tracing

Per attivare il tracciamento della rete, attiva le opzioni sviluppatore sul tuo dispositivo. Poi avvia l'app Impostazioni Google e seleziona l'opzione Annunci:

Supponendo che le opzioni sviluppatore siano attive e la funzionalità sia disponibile, la schermata risulterà simile alla seguente:

Seleziona l'opzione Attiva il logging di debug per gli annunci per visualizzare la seguente finestra di dialogo:

Tocca OK. Viene visualizzato un identificatore pubblicità che termina con 10ca1ad1abe1:

Ora puoi visualizzare tutto l'output dei log di rete in logcat. Per filtrare solo l'output degli annunci a livello di informazione sia sulla schermata sia su un file, utilizza il seguente comando:

adb logcat '*:S' Ads:I Ads-cont:I | tee logs.txt

Output

Per l'output dei log di rete vengono utilizzati i log della console standard appropriati alla piattaforma.

I messaggi di log della console iniziano sempre con la stringa GMA Debug BEGIN, GMA Debug CONTENT o GMA Debug FINISH, quindi puoi cercare o filtrare in base a queste stringhe. Per ogni log di rete, il primo messaggio di log è GMA Debug BEGIN, l'ultimo messaggio di log è GMA Debug FINISH e i contenuti del log di rete iniziano con GMA Debug CONTENT. Se i contenuti sono troppo lunghi per essere inseriti in una riga, vengono suddivisi tra più righe e ogni riga inizia con GMA Debug CONTENT.

Esempio di output della console

I/Ads     ( 4660): GMA Debug BEGIN
I/Ads     ( 4660): GMA Debug CONTENT {"timestamp":1510679993741,...}
I/Ads     ( 4660): GMA Debug FINISH

Esempio di output JSON

Ecco alcuni esempi di output JSON da 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
  }
}