在 Android N 以上版本中為 Google Mobile Ads SDK 設定 Charles 代理程式

在 Android N 以上版本中,只有執行下列步驟時,Charles Proxy 才會顯示廣告呼叫:

  1. 更新行動裝置上的 Google Play 服務。
  2. 在行動裝置上啟用網路追蹤。
  3. 在裝置上安裝 Charles SSL 憑證,並設定 Proxy。
  4. 為行動應用程式啟用 SSL Proxy。

更新行動裝置上的 Google Play 服務

如果是模擬器,側邊選單中沒有顯示 Google Play 專區,可能需要更新 Android Studio,並在虛擬裝置設定中下載最新系統映像檔。請務必在目標中使用含有 Google Play 的系統映像檔。

使用側邊選單檢查 Google Play 服務,並更新至最新版本。Google Play 服務的最低運作版本為 14.5.74

如果是實體行動裝置 (手機或平板電腦),你可以搜尋 Google Play,或點選這個連結直接開啟 Google Play。

在行動裝置上啟用網路追蹤

如要啟用網路追蹤,請先啟用裝置的開發人員選項。啟動 Google 設定應用程式,然後依序選取「Google」>「廣告」>「啟用廣告的偵錯記錄」。AdMob 和 Google Ad Manager 發布商都可參閱更詳細的指南

在裝置上安裝 Charles SSL 憑證,並設定 Proxy

如要將 Charles 設為行動應用程式的 Proxy,請先在電腦上安裝 Charles。按照 Charles 的說明,在 Android 模擬器或行動裝置上安裝 SSL 憑證。

透過 Proxy 使用模擬器較為簡單,因為模擬器已連上與執行 Charles 的電腦相同的 Wi-Fi 網路。搭配 Proxy 使用模擬器時,請將 Proxy 設為 localhost (http://127.0.0.1) 和 Charles Proxy 執行的通訊埠 (位於 Charles 選單選項「Proxy」>「Proxy 設定」)。

如果使用實體行動裝置 (手機或平板電腦),請使用進階網路設定,將行動裝置連上與執行 Charles 的電腦相同的 Wi-Fi 網路。設定實體裝置的 Proxy 設定時,請使用 Charles 選單選項「Help」>「Local IP address」取得電腦的 IP 位址,然後在裝置上輸入 Proxy 位址 (您必須連上相同 Wi-Fi 網路,這項操作才能生效)。使用 Charles Proxy 執行的通訊埠。

為行動應用程式啟用 SSL Proxy

如要讓 Charles 攔截行動應用程式的 SSL 流量,您必須聲明應用程式可以信任使用者提供的 SSL 憑證。

首先,您需要在以下位置新增網路安全性設定的 XML 資源檔案:

<network-security-config>
   <debug-overrides>
       <trust-anchors>
           <!-- Trust user added CAs while debuggable only -->
           <certificates src="user" />
       </trust-anchors>
   </debug-overrides>
</network-security-config>

接著,更新 AndroidManifest.xml 檔案,使用網路安全性設定。

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application ...
                 android:networkSecurityConfig="@xml/network_security_config"
                 ... >
        ...
    </application>
</manifest>

完成後,您可以啟動行動應用程式,並在 Charles 記錄中尋找廣告請求。