In the past, I've been able to use Charles to view HTTPS traffic for requests made to Google ad services. Today, I am no longer able to see the requests made to https://pubads.g.doubleclick.net/gampad/ads, in order to confirm that my ad params are correct. For example, I want to be able to see the "sz" param to make sure I'm looking at a banner request (320x50), and I want to see the "iu" param to make sure the full ad unit path is correct.
This problem is specific to Google ad traffic. I am able to see the details of other HTTPS requests made by my app. I've jumped through the hoops to configure SSL support in Charles, I've installed the Charles SSL certificate on my device, and I've configured my app to accept third-party root certificates in order to allow for visibility into SSL-proxied traffic. But I'm not seeing the gampad requests my app is making to Google's ad server, where before I used to see them.
There is now an additional step. With Android developer mode enabled, there's an ad debugging option that become visible in settings for Google Ads:
Settings > Google > Ads > Enable debug logging for ads
Enabling this option allows for Google HTTPS ad traffic to be viewed in a third-party proxy, such as Charles. There's more info available on this here.
The explanation I was given for this is that ad requests are now made from a separate Google Play Services process, so configuring your own app to allow third-party proxy certificates for HTTPS requests (by creating a custom network_security_config.xml
file and pointing your app manifest at it) isn't enough. This additional step is required to also make Google Play Services accept the Charles root certificate.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With