AndroidにAdmob広告を設置する方法

AndoridアプリのAdmobの広告を入れてみたのでその時のメモです。

アカウント登録

  1. Admobを開いて「今すぐスタート」をクリック
  2. アカウント情報を登録する
  3. メールが送られてくるのでリンクをクリックすると登録完了

アプリの登録

  1. ページ上のメニューからマーケットプレイスを開く
  2. 「サイト及びアプリケーション」タブを選択
  3. 「サイト/アプリケーションの追加」をクリック
  4. Android アプリケーション」をクリック
  5. アプリ情報を入力
    • 正直、ここの情報がどこで使われるのか分からない。詳細は日本語でいいのか、英語で書くべきなのか、、、
  6. 次の画面で「SDKのダウンロード」をクリックしてSDKをダウンロードする

SDKを使った広告の設定方法

READMEとサンプルアプリも付いてくるが、Javadocに設定方法が書いてある。以下はその訳。

jarファイルのインクルード
  1. SDKに含まれているjarファイルをAndroidプロジェクトのexternal libraryに設定する。
    • プロジェクトのルート直下にlibsディレクトリを作成し、admob-sdk-android.jarをlibsの中にコピーする
Eclipseでパスを通す
  1. プロジェクトのプロパティを開く(パッケージエクスプローラで右クリック→プロパティ)
  2. パネルから"Java Build Path" を選択
  3. "Libraries" タブを選択
  4. "Add JARs..."をクリック
  5. libsにコピーしたjarファイルを選択
  6. "OK"をクリック
AndroidManifest.xml

AdMob publisher ID(アカウントを作成したときに作られる。http://jp.admob.com/my_sites/から対象のアプリをクリックすると確認できる)をタグの直前で設定する。

  <!-- The application's publisher ID assigned by AdMob -->
  <meta-data android:value="ここにIDをコピペ" android:name="ADMOB_PUBLISHER_ID" />
</application>

タグの直前でパーミッションの設定をする

  <!-- AdMob SDK permissions -->
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
  • INTERNETは必須。
  • ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATIONを設定すると地域にあったの広告が表示される
attrs.xml

AdViewのアトリビューション設定をするファイル。"/res/values/attrs.xml"がなければ下記の内容で作成する。
すでに存在する場合はdeclare-styleableエレメントを追加する。

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <declare-styleable name="com.admob.android.ads.AdView">
      <attr name="testing" format="boolean" />
      <attr name="backgroundColor" format="color" />
      <attr name="textColor" format="color" />
      <attr name="keywords" format="string" />
      <attr name="refreshInterval" format="integer" />
      <attr name="isGoneWithoutAd" format="boolean" />
    </declare-styleable>
  </resources>
Placing an AdView in a Layout

AdViewウィジェットはどのXML layoutにも設置することができる。
最初のステップはattrs.xmlを参照するために、AndroidManifest.xmlに書かれているパッケージ名をレイアウトのxmlnsに記述すること。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:admobsdk="http://schemas.android.com/apk/res/com.admob.android.example"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <com.admob.android.ads.AdView  
                android:id="@+id/ad" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                admobsdk:backgroundColor="#000000"
                admobsdk:textColor="#FFFFFF"
                admobsdk:keywords="Android application"
        />
                
</LinearLayout>
  • AdViewの横幅はスクリーンサイズにすべきで、高さは常に48pixel.
Test Mode

アプリケーションにAdMobを入れたら、最初はテストモードにすることを推奨する。テストモードでは、常に同じ広告が表示される。通常の広告はタイムアウトなどもあるので、動作確認には向いてない。

テストモードで期待通りの表示ができたら、モードをoffにする。テストモード enableでAndroid Marketにアプリをあげてはいけない。

表示例

「かなぶん」ではゲーム終了時の結果表示画面の下に広告が表示されます。

広告を貼っておくと、統計情報も取れるので結構便利かも。