Traccia di rete

La traccia di rete ti consente di visualizzare le attività di rete relative a SDK Google Mobile Ads. Ciò può essere utile per il debug dell'implementazione di Google Mobile Ads.

Uno dei motivi principali per utilizzare la traccia 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 vale per gli strumenti di proxy a causa delle modifiche apportate a CA e certificati attendibili in vigore da Android 7.0.

Questa guida spiega come attivare la tracciatura di rete a scopo di debug.

Enable tracing

Per abilitare la tracciatura di rete, attiva le opzioni sviluppatore per il tuo dispositivo. Dopodiché, avvia l'app Impostazioni Google e seleziona l'opzione Annunci:

Supponendo che tu abbia attivato le opzioni sviluppatore e che la funzionalità sia disponibile, la schermata dovrebbe avere questo aspetto:

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

Tocca Ok e ti verrà mostrato un identificatore pubblicità che termina con 10ca1ad1abe1:

Ora puoi visualizzare tutto l'output del logging di rete in logcat. Per filtrare solo l'output degli annunci a livello di informazioni sia sullo schermo che in un file, esegui 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 per la piattaforma.

I messaggi del log della console iniziano sempre con la stringa GMA Debug BEGIN, GMA Debug CONTENT o GMA Debug FINISH, quindi puoi eseguire ricerche 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 il contenuto del log di rete inizia con GMA Debug CONTENT. Se i contenuti sono troppo lunghi per essere contenuti in una riga, vengono suddivisi su più righe, ognuna delle quali 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 di 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
  }
}