先日Admobを使ってみました。
Googleのアカウントを持っているとAdmobのアカウントはわざわざ作らなくても使えるようにできました。
まずSDKの入手方法ですが、実際にAdmobにログインして「Add Sites & Apps」でAndroidアプリの追加をすることでダウンロードできるようになります。
最近SDKのバージョンがあがったのか、色々なサイトで使い方を調べてもコンパイルエラーになってしまったので備忘録を兼ねて書きます。
SDKを展開すると「GoogleAdMobAdsSdk-4.1.1.jar」というファイルがあります。
広告を掲載したいプロジェクトのフォルダにlibsというフォルダを作ってその中へコピーします。
プロジェクト→プロパティー→Javaのビルド・パス→ライブラリー→JARの追加でlibsフォルダにコピーしたそのファイルを指定します。
まず、インポートの追加をしておきます。
import com.google.ads.Ad; import com.google.ads.AdListener; import com.google.ads.AdRequest; import com.google.ads.AdSize; import com.google.ads.AdView; import com.google.ads.AdRequest.ErrorCode;
onCreateから呼び出すかonCreateに記述
テスト端末と書いてある行実機でデバッグしているとLogcatに出てくるのでコピーして追加します
public void admobCreate(){ //adViewを作成 adView = new AdView(this, AdSize.BANNER, "あなたのPublisher ID"); AdRequest adRequest=new AdRequest(); adRequest.addTestDevice("0123456789ABCDEF0123456789ABCDEF"); // テスト端末 adRequest.addTestDevice(AdRequest.TEST_EMULATOR); // Emulator //adRequest.setTesting(true); // 全部テスト //広告を表示したかどうか判断をしたい場合はAdListenerを設定します。 adView.setAdListener(this); //xmlへads_layoutというIDのLinearLayoutをあらかじめ追加しておきます。 LinearLayout layout = (LinearLayout)findViewById(R.id.ads_layout); // Add the adView to it layout.addView(adView); // Initiate a generic request to load it with an ad adView.loadAd(adRequest); }
AdListenerを設定した場合は下記のメソッドを追加します。
public void onReceiveAd(Ad arg0) { Log.v("AdMob","ads ok"); } public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) { Log.v("AdMob","ads failed="+arg1.toString()); } public void onDismissScreen(Ad arg0) { } public void onLeaveApplication(Ad arg0) { } public void onPresentScreen(Ad arg0) { }
ネットワークに接続していない場合やhostsファイルなどを書き換えて広告を出さないようにしている場合
はonFailedToReceiveAdが呼び出されます。
正常に通信したけど表示する広告がなかった場合もonFailedToReceiveAdが呼び出されるようです。
今回は動的にAdViewを作っていますが、静的に貼り付けておく方法もあります。
動的に作った理由は「動的に作る方法が先に上手くいったから」です。
特に困らないので静的にAdViewを貼る方法は上手くいかないまま放置です。