Ağ İzleme

Ağ izleme, Google Mobile Ads SDK'sı ile ilgili ağ etkinliklerini görmenizi sağlar. Bu, Google Mobile Ads uygulamanızda hata ayıklamada faydalı olabilir.

Charles Proxy gibi araçlar yerine ağ izlemeyi kullanmanın en önemli nedeni, bu yöntemin Android'in tüm sürümlerinde ve Google Play Hizmetleri'nin desteklenen bir sürümünü çalıştıran cihazlarda çalışabilmesidir. Android 7.0'dan beri geçerli olan güvenilir CA'lar ve sertifikalarda yapılan değişiklikler nedeniyle proxy araçları bu durumdan etkilenmez.

Bu kılavuzda, hata ayıklama amacıyla ağ izlemenin nasıl etkinleştirileceği açıklanmaktadır.

Enable tracing

Ağ izlemeyi etkinleştirmek için cihazınızda geliştirici seçeneklerini etkinleştirin. Ardından Google Ayarları uygulamasını açıp Reklamlar seçeneğini belirleyin:

Geliştirici seçeneklerinin etkin olduğu ve özelliğin kullanılabildiği varsayıldığında ekranınız aşağıdaki gibi görünür:

Aşağıdaki iletişim kutusunu açmak için Reklamlar için hata ayıklama günlüğünü etkinleştir seçeneğini belirleyin:

Tamam'a dokunduğunuzda 10ca1ad1abe1 ile biten bir reklam kimliği gösterilir:

Artık ağ günlüğünden gelen tüm çıkışları logcat'te görebilirsiniz. Yalnızca bilgi düzeyindeki reklam çıktısını hem ekrana hem de bir dosyaya filtrelemek için aşağıdaki komutu verin:

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

Çıkış

Ağ günlüklerini yayınlamak için platforma uygun standart konsol günlükleri kullanılır.

Console günlük mesajları her zaman GMA Debug BEGIN, GMA Debug CONTENT veya GMA Debug FINISH dizesiyle başlar. Bu nedenle, bu dizeleri arayabilir veya filtreleyebilirsiniz. Her ağ günlüğünde ilk günlük mesajı GMA Debug BEGIN, son günlük mesajı GMA Debug FINISH, ağ günlüğü içeriği ise GMA Debug CONTENT ile başlar. İçerik bir satıra sığmayacak kadar uzunsa birden fazla satıra bölünür ve her satır GMA Debug CONTENT ile başlar.

Konsolda gösterilen çıkış örneği

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

JSON çıkışı örneği

Logcat'ten alınan JSON çıkışlarına ilişkin bazı örnekleri aşağıda bulabilirsiniz:

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
  }
}