付録‎ > ‎

5. AdMob

せっかく作ったアプリを公開したからには、アプリそのものに課金をして収入を得るのとは別に広告を掲載するAdmobというのがある。
自分のアプリに広告バナーを表示して、クリックしたら数円的なもの。

AdMobはGoogleに登録(即日OK)したら自分のアプリに追加することができる。

Googleへの登録は済んだという前提で。

まず、登録する過程でAdMob SDKなるものをダウンロードさせられたはずだ。
このAdMob SDKを使うのだが、Googleのマニュアルによれば、Build Pathの設定でLibraryの外部JARを設定せよとなっている。
しかし、この通りに進めると、実行時エラーするはめになる。
なんでやねん。

というわけで、Googleが示した方法ではなく、プロジェクトにlibsフォルダを生成して、そこにダウンロードしたAdMobSDKのjarファイルを入れるのが正解。

まず、ここで軽くつまずく。

次に、実際に広告を挿入するコードをActivityのonCreateに記述する。


// adView を作成する
mAdView = new AdView(this, AdSize.BANNER, "パブリッシャーID");

// 属性 android:id="@+id/LinearLayout1" が与えられているものとして
LinearLayout layout = (LinearLayout)findViewById(R.id.LinearLayout1);

// adView を追加
layout.addView(mAdView);

// 一般的なリクエストを行って広告を読み込む
AdRequest request = new AdRequest();
request.addTestDevice(AdRequest.TEST_EMULATOR); 
mAdView.loadAd(request);

まず
mAdViewはフィールドに宣言しておいて、newする。
この時AdViewの3番目の引数。パブリッシャーIDはAdModにアプリを登録すると、与えらるIDだ。

次は、実際広告を載せるViewのレイアウトを取得している。
そして、そのレイアウトにAdViewを追加することになる。

AdViewを追加したあとは実際にそこに広告を読み込むのだが、自分の端末から広告をたたいてしまうと違反なので、自分の端末は除外するような設定をしている。
そこが
request.addTestDeviceの行だ。
本来ここには自分のデバイスIDを引数に文字列をして渡すのだが、そもそもデバイスIDがわからない。
そこで、TEST_EMULATORとしていったんビルドして実行する。
そうするとLogCatに自分のデバイスIDがTo get test ads on this device, call adRequest.addTestDevice("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
こんな感じで表示される。

そこで、ここに示された値を次はaddTestDeviceに与えて実行すると、ここに登録した端末でAdViewが表示されると、Googleの試験バナーが表示されるようになる。
あと注意しなければならないのが、Android SDKのバージョン。
Googleのサイトにもかいてあったが、SDKのバージョンは13以降でなければならない。
さらにAndroidManufestで指定するminSDKはAPI8以降じゃなければならないらしい。
そうしないと、次のコードをAndroidManufestに追加しなければならないが、エラーが発生してしまう。

<activity 
   android:name="com.google.ads.AdActivity"
   android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
        </application>

さらに、インターネット接続が広告の表示に必要となるので、
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
の2つのPermissionが必要になる。







Comments