2012年12月23日

AdmobでAndroidアプリを無料化すると皆がハッピーに!!


最近のAndroidアプリは無料版が多くなってきて利用者側からすると、ありがたい傾向であり、本来、ソフトとかアプリというものは原則無料であるべきだなんていう、過去の話まで思い出してしまいます。

無料の代わりとしてAdmobという広告が表示されるアプリが増えています。これは広告によって少しだけ収益が得られるシステムで、アプリ開発者にとっては無料とするけど広告を掲載することが出来てうれしいですね。



Admobを自作アプリに入れようと思い、いろいろ調べたのですが、プログラムコードとして書こうとすると、かなり面倒そうなので、簡単にレイアウトに挿入する方法、XMLファイルの変更のみでAdmob広告を掲載する方法を記載します。

AndroidアプリへのAdmobの設置方法

最初にAdmobを掲載するアプリのパブリッシャーIDを取得しておきます。
http://jp.admob.com/

02.jpg

パブリッシャーIDはメモしておきましょう。

(以下、Eclipseで広告を掲載するアプリを開き、開発できる状態にして、エミュレータも起動してください。)

最初にAdmob用の外部ファイルを取り込みます。

パッケージエクスプローラーのプロジェクト名を右クリック

ビルド・パス → 外部アーカイブの追加

Admob登録時にダウンロードしたファイル(GoogleAdMobAdsSDK-6.2.1.jar)を取り込みます。

(GoogleAdMobAdsSDK-6.2.1.jar)は2012年12月時点のバージョンです。
10.jpg

すると、参照ライブラリーとして追加されます。
25.jpg


もう一度、パッケージエクスプローラーのプロジェクト名を右クリックして、(下の方にある)プロパティを表示します。

Javaのビルド・パス → 順序およびエクスポート → Admobのjarファイル(GoogleAdMobAdsSDK-6.2.1.jar)にチェックを入れる。

30.jpg

AndroidManifest.xml で com.google.ads.AdActivity を宣言する

AndroidManifest.xmlを開き、(下部のタブもAndroidManifest.xml)

</application> の上に次の宣言を入れる。

<activity android:name="com.google.ads.AdActivity"

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

36.jpg

(参考サイト https://developers.google.com/mobile-ads-sdk/docs/android/fundamentals?hl=ja#adactivity


広告リクエストを行うには INTERNET と ACCESS_NETWORK_STATE のネットワーク権限が必要なため、これらについてもマニフェストで宣言する

</manifest> の上に次の2行を入れる。

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

37.jpg


修正後は随時保存してください。すると、ターゲットのバージョンが低いとエラーが出ると思います。

String types not allowed(at 'configChanges' with value・・・
38.jpg


これらは、AdmobのSDKで使うAPIプログラムバージョンの違いによってエラーが出ます。

ターゲットのバージョンを高くします。

プロジェクト名を右クリックしてプロパティ画面になります。

Androidを選び、プロジェクト・ビルド・ターゲット画面で、Android3.2を選択します。Android1.6やAndroid2.1などの低いバージョンで開発してから、最後にAdmobを挿入する時だけバージョンをAndroid3.2に設定すれば、3.2よりも低いバージョンで動作するアプリになります。

55.jpg

プロジェクトをクリーンするとエラーが消えると思います。

ここで何度か躓いたことをメモ
レイアウトを開こうとするとエラーが出てしまい、その後プロジェクトのクリーンやリフレッシュしても一向にエラーが消えず、パッケージエクスプローラーの gen ディレクトリ以下に存在するはずの R.java が消失している状況が発生しました。原因は不明なのですが、どうやらEclipse自体がキャッシュで設定ファイルを持っていて、それが影響しているようにも見えました。

解決策は、Eclipseを一度終了させ、通常のEclipse起動ではなくて eclipse.exe -clean.cmd の方でキャッシュをクリーンして起動すると治りました。

レイアウトの変更などで動作がおかしくなった場合試すと良いですね。

ここで、また、Rファイルが影響しているらしくエラーがいろいろ出て、インポート文からRの部分を削除したら解決???。意味がわからないので同じ症状が出たら追及しようと思います。

AndroidManifest.xml での設定を終えたら、後は、広告を掲載しようとする画面のレイアウトファイルに修正を入れるだけです。通常はアプリが起動する最初の画面なので、レイアウトのメイン画面が一般的だと思います。


広告を頭の方(上の方)に入れる場合には、レイアウト画面のXMLファイルを開くと最初に次のような宣言部分があります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"


この次に広告の宣言部分を挿入します。

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"


次に広告を入れたい場所に次の宣言を挿入します。

<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="MY_AD_UNIT_ID"
ads:adSize="BANNER"
ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
ads:loadAdOnCreate="true"/>



posted by Kunihiko at 18:06 | Comment(0) | TrackBack(0) | Android | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック


現在、このブログは更新を停止しています。
最新の内容は次のブログでお願いします。


新ブログ
趣味は長生きと秘密
http://home.mynsworld.com/