AndroidアプリにAdMobの広告を組み込む


モバイル向けの広告配信サービスの1つにAdMobがあります。今回はこの広告配信サービスであるAdMobをAndroidアプリケーションに組み込む方法を説明します。

AdMobはAndroidアプリケーション以外にもiPhoneなどにも配信可能です。まだAdMobのSDKがβ版ですがWindowsPhone7にも対応しています。

  • Androidアプリケーション
  • iPhone/iPadアプリケーション
  • スマートフォン向けWebサイト
  • WindowsPhone7アプリケーション

AdMobをアプリケーションに組み込むためには以下のことが必要です。

  • AdMobのアカウント登録
  • AdMobにアプリケーションを登録&パブリッシャーIDと呼ばれるアプリケーション固有のIDを取得
  • AdMobSDKの入手/アプリケーションに組み込み

それでは続きで説明してきます。

AdMobのアカウント登録

まずはhttp://jp.admob.com/にアクセスしてAdMobのアカウントを作成します。

右側の「今すぐスタート」と書かれたボタンを押すと登録フォームの画面に遷移するので必要な情報を記入してアカウントを作成します。Googleのアカウントを持っていればGoogleのアカウントでログインすることも可能です。

アプリケーションの登録

アカウントを作成したら、ログインして、広告を表示させたいアプリケーションを登録しましょう。この時点では、まだアプリケーションが完成していなくても大丈夫です。

「マーケットプレイス」を開いて「サイト/アプリケーションの追加」へ進みます。

登録できるアプリケーションの種類の一覧が表示されるのでAndroidを選択します。

Androidを選択すると登録するアプリケーションの詳細が入力出来るようになります。

詳細に入力する内容は以下の表を参考にしてください。

App名 登録するアプリケーション名を入力
AndroidパッケージURL すでにアプリケーションをAndroidMarketに登録していればそのURLを入力。まだであれば仮のパッケージ名でURLを入力してMarketに登録後に修正する
ジャンル AndroidMarketに登録している(登録する予定の)ジャンルを選択
Appの説明 登録するアプリケーションの説明を記入

アプリケーションの詳細を入力し終えたら画面したの「次へ」のボタンを押して進みます。

これでアプリケーションの登録は完了です。「次へ」のボタンを押して進んだ画面でAdMobのSDKがダウンロードしておきます。

※AdMobのSDKはAndroid SDK and AVD Managerからダウンロードすることも可能です。

もう一点大事なものとしてパブリッシャーIDがあります。パブリッシャーIDはアプリケーションごとに異なり、アプリケーションに組み込む際に必要になります。

「マーケットプレイス」を開いて「サイト/アプリケーション」を選択すると登録しているアプリケーションの一覧が表示されるので目的のアプリケーションの「設定を管理」ボタンを選択します。

次の画面でパブリッシャーIDが確認できるのでこのIDをメモしておきます。

アプリケーションの登録、AdMobSDKのダウンロード、パブリッシャーIDのメモが完了したら次はいよいよアプリケーションへの組み込みます。

アプリケーションへの組み込み方法

SDKをダウンロードしたら解凍しておきます。解凍すると中にはライブラリとドキュメントが入っています。

※ライブラリのバージョンは2011/9/5現在 4.1.1です。今後変わる可能性があります。

組み込み手順は以下の通りです。

  1. プロジェクトにAdMobSDKのライブラリであるJARファイルを追加する
  2. マニフェストファイルに必要な記述を書く
  3. ActivityでAdMobのViewを追加する記述を書く

1.プロジェクトにAdMobSDKのライブラリであるJARファイルを追加する

プロジェクトのプロパティを開いてJavaのビルドパスから外部JARの追加でGoogleAdMobAdsSdk-4.1.1.jar(バージョンによって名前は変わります)を追加します。

「JARファイルを作って、別のプロジェクトで使う」の「JARファイルを読み込んで利用する」の項が参考になります。

2.マニフェストファイルに必要な記述を書く

AndroidManifest.xmlに必要な記述を追加します。

必要なのはAdMobのActivityの記述と、パーミッションの追加です。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="org.jpn.techbooster.sample.admobsample"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.google.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation"/>
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
</manifest>

3.ActivityでAdMobのViewを追加する記述を書く

AdMobの広告の実態はAdViewクラスというViewです。このAdViewクラスを生成し、レイアウトに追加、そしてAdView::loadAdを呼ぶことで広告の表示を開始させます。

AdViewクラスのコンストラクタで先ほどメモしたパブリッシャーIDを記載します。

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 // AdMobのViewを作成
 adView = new AdView(this, AdSize.BANNER, "パブリッシャーIDをここに記載");

 LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
 layout.addView(adView);

 // 広告の表示を開始
 adView.loadAd(new AdRequest());
}

@Override
public void onDestroy() {
 // AdMobのViewの破棄処理
 adView.destroy();
 super.onDestroy();
}

お疲れさまでした。最低限表示させるだけであれば上記の処理だけで行えます。AdMobSDKには他にもクラス、メソッドがあります。詳細はドキュメントを参照してください。