AdMob[1]の配信する広告をアプリケーションに表示させるために, Google AdMob Ads SDK for Androidを試してみた.
2011年4月1日発行の「Google Android Web API プログラミング入門」[2]のChapter 10 広告配信ライブラリを参考にトライしたが, 2011年5月頃にAdMob SDKがGoogle AdMob Ads SDKとなり, 広告の表示方法も少し変わったようなのでまとめておく.
1. 準備[2]
1.1 AdMob ユーザ登録
ここからユーザ登録する. ユーザ登録はサイトの右上に登録リンクがあるので, そこから登録を行う.
1.2 アプリケーションの登録とAdMob SDKのダウンロード
1) AdMobにログインする.
2) "サイト及びアプリケーション"のメニューから"サイト/アプリケーションの追加"を選択する.
3) Androidアプリケーションを選択する.
4) アプリケーション名, パッケージURL, ジャンル, アプリケーションの説明等を入力する.
まだアプリをAndroid Market等に登録していない場合, パッケージURLは"http://"でもOK.
5) 登録が完了すると, "AdMob Android SDKのダウンロード"をクリックして, AdMob SDKをダウンロードする.
7/17時点のダウンロードファイル:googleadmobadssdkandroid.zip
6) AdMob SDKを解凍する.
解凍したAdMob SDK:GoogleAdMobAdsSdkAndroid-4.1.0
1.3 パブリッシャーIDの確認
1) "サイト及びアプリケーション"に移動する.
2) 登録したアプリにカーソルを移動し, "設定を管理"を選択する.
3) パブリッシャーIDを控えておく. このIDがアプリの識別IDとなる.
1.4 広告フィルタの設定
表示する広告を制御するために, 各種フィルタを設定する.
1) 言語設定で, 表示する広告の言語を設定する. 例では, 日本語のみに設定.
2) カテゴリ及びタイプ設定で, 表示する広告のタイプを設定する.
3) URLフィルタ, テキストフィルタも必要があれば設定する.
2. AdMob広告の表示[2][3]
2.1 プロジェクトの作成
1) AdmobSampleのプロジェクトを作成する.
2.2 AdMob SDKの組み込み
1) AdmobSample以下にlibsディレクトリを作成する.
2) libsディレクトリに, ダウンロードしたAdMob SDKの中にある, GoogleAdMobAdsSdk-4.1.0.jarをコピーする.
3) GoogleAdMobAedsSdk-4.1.0.jar上で右クリック→Build Path→Add to Build Pathを選択し, ライブラリパスを設定する.
2.3 広告バナー表示プログラム
1) layout/main.xml
レイアウトファイルは, LinearLayoutにidを付与する.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ad_id"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</LinearLayout>
2) AdmobSample.java
広告バナーを表示するコード(赤字)を追加する.
MY_AD_UNIT_IDには, 1.3で確認したパブリッシャーIDを設定する.
package com.moonlight_aska.android.admobsample;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
import com.google.ads.*;
import com.google.ads.AdRequest.ErrorCode;
public class AdmobSample extends Activity {
private static final String MY_AD_UNIT_ID = "xxxxxxxxxxxx";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// AdMob設定
AdView adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
LinearLayout layout = (LinearLayout)findViewById(R.id.ad_id);
layout.addView(adView);
// リスナー登録
adView.setAdListener(new AdListener() {
@Override
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
// TODO Auto-generated method stub
Log.v("AdMob", "失敗");
}
@Override
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onReceiveAd(Ad arg0) {
// TODO Auto-generated method stub
Log.v("AdMob", "成功");
}
});
// 広告表示
AdRequest request = new AdRequest();
request.setTesting(true); // <-- アプリ公開時には削除
adView.loadAd(request);
}
}
3) AndroidManifest.xml
ネットワークアクセスを許可するために, "INTERNET"と"ACCESS_NETWORK_STATE"のパーミションを設定する.
コンフィグレーション(キーボードや画面の向き等)が変更された場合に, Activityが一旦終了して再スタートしないように設定する.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.moonlight_aska.android.admobsample"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AdmobSample"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation">
</activity>
</application>
</manifest>
2.4 アプリケーションの実行
SH-03C(SHARP, Android 2.2)で動作確認してみた.
広告が表示される場合と, 広告のリクエストには成功するが, 広告の表示に失敗する場合があった.
----
参照URL:
[1] モバイル広告ネットワークプラットフォーム| AdMob
[2] Google Android Web API プログラミング入門(秀和システム)
[3] Google AdMob Ads Android Fundamentals - Google AdMob Ads SDK
プロフィール
明日香
アクセスカウンター
- 今日:
- 昨日:
- 累計:
記事検索
最新記事
人気記事
カテゴリ別アーカイブ
公式サイト
姉妹サイト