AdMobの利用の方法

AdMobを組み込んでみたいと思います。

アプリに広告をいれる事は賛否が分かれる事ではありますが、開発自体がモチベーションであればよいのですが、より高くモチベーションをもてるのであれば広告をいれてもよいと思っています。

広告をいれても尚、使ってもらえるアプリを目指した方が、作りっぱなしのものに勝るかな。。と。

 

AdMobは最初にデベロッパー登録をする必要があります。

admob

より名前などを登録すれば簡単に登録が完了します。

[サイト/アプリケーションの追加]からAndroidアプリケーションクリックするとAdmobの発行の画面に移動できます。

 

ここからが問題なのですが、admobに関しては、最近仕組みが変更されたようで、以前のリファレンスや参考書が役に立ちません。

※2011年5月現在の情報を記載しています。

 

使ってはいけないデータは以下です。

com.admob.android.ads.AdView

を利用しているもの。

 

上記のpath自体が通らなくなっていて、利用しているクラスもことなります。

気をつけましょう。

 

新しい情報で役に立ったサイトは下記です。

Google AdMob Ads Android Fundamentals

ドロイド君LOVE

 

Google AdMob Ads Android FundamentalsはaddViewで追加をしているので確認はしていないのですが、簡単に設置ができるようなので方法を記して見ます。

eclipseの設定画面からライブラリにadmobからダウンロードしたクラスファイルをいれます。または、プロジェクトファイル内にlibsディレクトリを作成してクラスファイルをいれ、右クリックをしてBuild pathを選んでパスを通します。

次のアクティビティをマニフェストに追加をします。

<activity 
 android:name="com.google.ads.AdActivity"
 android:configChanges="keyboard|keyboardHidden|orientation"/>

マニフェストで次の2つのパーミッションを設定します。

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

マニフェストに関しても以前のadmobとは設定を変える必要があるので、古い情報を取得しないように気をつけてください。

メインのクラスファイルを下記の形でaddViewします。

import com.google.ads.*;

public class BannerExample extends Activity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 AdView adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
 LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);
 layout.addView(adView);
 adView.loadAd(new AdRequest());
 }
}

MY_AD_UNIT_IDにはadmobで発行されている、idを入れてください。上記でadmobが表示されるはずです。

 

layoutに組み込む場合には少し違う方法を利用します。

まず、values.xmlを作成します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <declare-styleable name="com.google.ads.AdView">
 <attr name="adSize">
 <enum name="BANNER" value="1"/>
 <enum name="IAB_MRECT" value="2"/>
 <enum name="IAB_BANNER" value="3"/>
 <enum name="IAB_LEADERBOARD" value="4"/>
 </attr>
 <attr name="adUnitId" format="string"/>
 </declare-styleable>
</resources>

ここで変数の用意をしたら、メインのレイアウトファイルに次の記述をします。

<com.google.ads.AdView
 android:id="@+id/ad"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 ads:adUnitId="MY_AD_UNIT_ID"
 ads:adSize="BANNER"
 />

この時に上記を囲むレイアウトのタグには次の属性値を設定します。(linearlayoutなどに)

xmlns:ads="http://schemas.android.com/apk/res/(利用しているパス)"

上記でパスが通ります。

これで、レイアウト内にadmobが組み込まれますが、表示をする為にはrequestを行う必要があります。

AdView adGoogle = (AdView)this.findViewById(R.id.ad);
AdRequest adr = new AdRequest();
adGoogle.loadAd(adr);

でonResume()で呼び出したりすれば、表示がされるはずです。

しかし、ここで「表示されるはず」となってしまうのは、テスト環境だと、admobが反応しない為です。

テスト環境で、確認をする為には、AdRequestを次のようにテストモードに設定をしてあげれば表示がされます。

adr.setTesting(true);

admob

以上でadmobの組み込みが完了しました。

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑