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 を更新して、[Virtual Device Configuration] にある最新のシステム イメージをダウンロードしてください。システム イメージを選択する際には、必ずターゲットに Google Play が含まれていることを確認してください。

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

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

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

ネットワーク トレースを有効にするには、デバイスの開発者向けオプションを有効にする必要があります。Google 設定アプリを起動し、[Google] > [広告] > [広告のデバッグログを有効にする] を選択します。AdMob および Google アド マネージャーのパブリッシャー様は、詳しいガイドをご利用いただけます。

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

Charles をモバイルアプリのプロキシとして使用するには、Charles をダウンロードし、パソコンにインストールします。表示される手順に沿って、Android エミュレータまたはモバイル デバイスに 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 のログで広告リクエストを確認できるようになります。

ご不明な点がある場合、またはマンツーマンのご相談をご希望の場合は、担当の Google テクニカル アカウント マネージャーにご連絡のうえ、Google 広告デベロッパー リレーションズ チームへの相談時間を予約してください。