一介の開発者の戯言

先日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を貼る方法は上手くいかないまま放置です。

コメント

コメントを受け付けておりません。