Rastreo de red

El seguimiento de red te permite ver actividades de red relacionadas con el SDK de anuncios de Google para dispositivos móviles. Esto puede ser útil para depurar tu implementación de anuncios de Google para dispositivos móviles.

Un motivo clave para usar el seguimiento de red en lugar de herramientas como Charles Proxy es que funcionará en todas las versiones de Android y dispositivos que ejecutan una versión compatible de los Servicios de Google Play. Este no es el caso de las herramientas de proxy debido a cambios en las CA y certificados de confianza implementados a partir de Android 7.0.

En esta guía, se explica cómo habilitar el seguimiento de red para depurar.

Habilita el seguimiento

Si deseas habilitar el seguimiento de red, habilita las opciones para desarrolladores en tu dispositivo. Luego, inicia la app de Configuración de Google y selecciona la opción Anuncios:

Si tienes las opciones para desarrolladores habilitadas y la función está disponible, la pantalla se verá de la siguiente manera:

Selecciona la opción Habilitar registro de depuración para anuncios. A continuación, verás el siguiente diálogo:

Presiona Aceptar y verás un identificador de publicidad que termina en 10ca1ad1abe1:

Ahora, puedes ver todo el resultado del registro de red en logcat.

El siguiente comando de logcat te permite ver solo el resultado del registro y guardarlo en un archivo de registro:

adb logcat '*:S' Ads:I | grep "GMA Debug" | tee logs.txt

Este comando registra el resultado en la terminal y guarda todos los resultados del registro en un archivo logs.txt.

Salida

Los registros de la consola estándar adecuados para la plataforma se usan a fin de generar los registros de red.

Los mensajes de registro de la consola siempre comienzan con la string GMA Debug BEGIN, GMA Debug CONTENT o GMA Debug FINISH, por lo que puedes buscar o filtrar en estas strings. Para cada registro de red, el primer mensaje de registro es GMA Debug BEGIN, el último mensaje de registro es GMA Debug FINISH y el contenido del registro de red comienza con GMA Debug CONTENT. Si el contenido es demasiado largo para caber en una línea, se divide entre varias líneas y cada una comienza con GMA Debug CONTENT.

Ejemplo de resultado de Console

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

Ejemplo de resultado JSON

Estas son algunas muestras de los resultados de JSON de 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;..."
      }
    ]
  }
}

Respuesta de red

{
  "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"
      },
      ...
    ]
  }
}

Cuerpo de la respuesta de la red

{
  "timestamp": 1510679995375,
  "event": "onNetworkResponseBody",
  "components": [
    "ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2",
    "network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90"
  ],
  "params": {
    "bodydigest": "B2520049D02F3C70A12AD1BC0D1B58A4",
    "bodylength": 122395
  }
}