TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

AndroidアプリでAdMobを使って広告表示する

公開したVocal Pitch Monitor - Apps on Google Playですが、AdMobを使って無料広告アプリとしました。
AdMobを組み込む際に、はまった点など書いておきます。


AdMobに登録すると、設定手順のページのリンクを教えられますが、Eclipse用の設定の解説になっていて、Android Studioの方法がわからないです。

Android Studioの場合は、こちらを見ましょう。


はじめ教えられるページでは、広告のViewをJavaコードで追加する方法が載っていますが、activity_main.xmlでViewを追加したほうが簡単です。

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="xxxxxxxxxxxxxxxxxxxxx" />

メインアクティビティのJavaコードの方にも記述が必要なので追加しましょう。

        AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

これだけで、表示されるようになります。


この後、はまったのが、SurfaceView使って全画面で描画していると、起動直後に広告が表示されず、更新間隔の1分たつと表示されるという現象が置きました。

原因がわからず試行錯誤をしていましたが、SurfaceViewを透明で表示することで解決しました。

    <com.tadaoyamaoka.vocalpitchmonitor.MainSurfaceView
        android:id="@+id/MainSurfaceView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#00FFFFFF" />

android:backgroundの値の始めの2文字がアルファ値なので、00を指定しています。

これで、起動直後も表示されるようになりました。