Android N 以上で Google Mobile Ads SDK を使用するための Charles プロキシを設定する

Android N 以降では、Charles プロキシでの広告呼び出しが表示されるのは、次の手順の場合のみです。

  1. モバイル デバイスで Google Play 開発者サービスを更新します。
  2. モバイル デバイスでネットワーク トレースを有効にします。
  3. デバイスに Charles SSL 証明書をインストールし、プロキシを設定します。
  4. モバイルアプリで SSL プロキシを有効にします。

モバイル デバイスで Google Play 開発者サービスを更新する

エミュレータを使用する場合、サイドメニューに Google Play のセクションが表示されない場合は、仮想デバイス設定で Android Studio を更新して最新のシステム イメージをダウンロードする必要があります。システム イメージをターゲットにして Google Play を使用してください。

サイドメニューを使用して、Google Play 開発者サービスを確認して最新バージョンに更新します。Google Play 開発者サービスの最小動作バージョンは 14.5.74 です。

実際のモバイル デバイス(スマートフォンまたはタブレット)で Google Play を検索するか、またはリンクから Google Play を直接開くことができます。

モバイル デバイスでネットワーク トレースを有効にする

ネットワーク トレースを有効にするには、デバイスの開発者向けオプションを有効にする必要があります。Google 設定アプリを起動して、[Google & Ads; AdMob のデバッグ ロギングを有効にする] を選択します。詳しいガイドは、AdMob と Google アド マネージャーの両方に対応しています。

デバイスに Charles SSL 証明書をインストールしてプロキシを設定する

Charles をモバイルアプリのプロキシとして使用するには、Charles をダウンロードして、パソコンにインストールする必要があります。Charles' の手順に沿って、Android Emulator またはモバイル デバイスに SSL 証明書をインストールします。

エミュレータは Charles を実行しているコンピュータと同じ Wi-Fi ネットワークに接続されているため、エミュレータでプロキシを使用するほうが簡単です。エミュレータをプロキシで使用する場合は、プロキシを localhost(http://127.0.0.1)に設定し、Charles プロキシが実行されているポート(Charles メニュー オプションの [Proxy > Proxy Settings] にあります)を設定します。

物理的なモバイル デバイス(スマートフォンまたはタブレット)を使用する場合は、Charles を実行しているパソコンと同じ Wi-Fi ネットワークに、高度なネットワーク設定でモバイル デバイスを接続する必要があります。実機のプロキシ設定を行うときに、Charles のメニュー オプションの [Help > Local IP address] を使用してパソコンの IP アドレスを取得し、デバイスのプロキシ アドレスに入力します(これを行うには、同じ Wi-Fi ネットワークに接続している必要があります)。Charles プロキシが実行されているポートを使用します。

モバイルアプリで SSL プロキシを有効にする

Charles がモバイルアプリの SSL トラフィックをインターセプトするには、ユーザー指定の SSL 証明書をアプリが信頼できることを宣言する必要があります。

まず、ネットワーク セキュリティ構成のパスを res/xml/network_security_config.xml というパスに、新しい 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 のログで広告リクエストを探します。

ご不明な点がある場合や 1 対 1 の相談をご希望の場合は、Google のテクニカル アカウント マネージャーにご連絡いただき、Google 広告デベロッパー リレーションズ チームのオフィスアワーにご登録ください。