« Android のマルチタスク(2) | トップページ | Android NDK r4 »

2010.05.23

AdMob の設定方法

Android アプリへの登録方法が前から少し変わっていたので、メモ。

アカウントの取得方法などは、他のサイトに書かれてるので、適当にぐぐってください。

以下、Android アプリに広告を入れる方法。

AdMob に login してimage の、imageをクリック

■アプリ選択画面になるので、image をクリック

■App name: に適当に入れる(後で変更できる)

■Android Package URL: は、http://market.android.com/search?q=pname:<package name> とする。<package name> に自分のアプリのパッケージネームを入れる。
拙作の CPUMonitorMini の場合は、http://market.android.com/search?q=pname:ms.salt.cpumonitormini。(後で変更できる)

■Category: App description: は適当に。(後で変更できる)

■最後に、image を押すと、SDK のダウンロード画面に行く。
けど、既にダウンロードしてあれば必要無し。
アプリ名に依ってバイナリが変わる訳ではない。

imageに戻ると、リストに追加されているので、image をクリック

■アプリ名の下に、Publisher ID: が表示されているので、コピー
(以下、”abcdefghijklmno” と仮定する)

■アプリの AndroidManifest.xml の <application> </application> の直下に

<meta-data android:value="abcdefghijklmno" android:name="ADMOB_PUBLISHER_ID"/>

を追加。

■同じく、<manifest> </manifest> の直下に

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

を追加。

■アプリのディレクトリに libs ディレクトリを作り、AdMob SDK に入っている admob-sdk-android.jar をコピー

■eclipse の Package Explorer で、アプリを右クリックして、[Refresh]

■同じく、eclipse の Package Explorer で、アプリを右クリックして、[Properties] → [Java Build Path] → [Libraries] タブ → [Add jars..] ボタン→先程コピーした admob-sdk-android.jar を選択→[OK] ボタンで閉じる

■res/values/attrx.xml を作る
アプリの res/values で右クリック→[New]→[Ohter..]→[Android XML File]→Fileに attrs.xml と入れて[Finish]→中身をヘルプ通りに

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="com.admob.android.ads.AdView">
<attr name="backgroundColor" format="color" />
<attr name="primaryTextColor" format="color" />
<attr name="secondaryTextColor" format="color" />
<attr name="keywords" format="string" />
<attr name="refreshInterval" format="integer" />
</declare-styleable>
</resources>

とする

■広告を入れたいレイアウトリソース(res/layout/foo.xml)の中のレイアウト(LinearLayout とか RelativeLayout とか)のタグの attribute に

xmlns:app=”http://schemas.android.com/apk/res/<package name>”

を追加し(<package name> はアプリのものに置き換える)、
要素として、

<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:backgroundColor="#000000"
app:primaryTextColor="#FFFFFF"
app:secondaryTextColor="#CCCCCC"
/>

を追加する。
タグの attribute で指定した xmlns: の後の app と、要素の attribute の app を合わせればいいので、myapp とかにして説明しているところもあるけど適当でOK。

■個人的には、xml の inflation が微妙に遅いので使いたくない。。。
そういう場合は、java のコードで、

AdView adView = new AdView(this);
adView.setVisibility(android.view.View.VISIBLE);
adView.requestFreshAd();
adView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

mLinearLayout.addView(adView); // LinearLayout に追加

という感じで、LayoutView に add すれば OK。

xml での layout はすごくすごく便利なのだけど、inflation が遅いので気を付けましょう。
xml ファイルは、apk にした時点で binary に変換されてるけど、java の object になっている訳ではなく、inflateする時に java の object を生成しています。(と思っています。)
なので、直接 java のコードでガリガリ書いたものに比べると、数倍~十数倍ぐらいの時間がかかります。
(実際にベンチマークテストしたのは animation 用の xml だけですけどね。たいして複雑でもないのに、15倍ぐらいの時間がかかってました。)

まぁ、自前で xml を parse することを考えてみると、時間がかかるのは自明ですよね~

■あと、注意点は、横幅が 320 dot ないと、広告が全く表示されない、ということです。
レイアウト(LinearLayout や RelativeLayout)の attribute が、android:layout_width="wrap_content" だったりすると、中の要素で width が 320 dot になるものが無い限り広告は表示されないみたいです。
popup させた AlertDialog の中に入れようとしましたが、popup した時点で 300 dot ぐらいになるため、広告が全く表示されませんでした。その場合でも、landscape 表示にすれば、AlertDialog の中でも表示されたので、横幅に影響していると思われます。

|

« Android のマルチタスク(2) | トップページ | Android NDK r4 »

Android」カテゴリの記事

コメント

admobを使い始めようとして、この記事に巡り合いました。
書いている通りにやっているのですが、表示されません(TT)
というより、サンプルも広告が出ないんですよね^^;
何かご存知でしたら教えていただきたく思い、コメントさせていただきました。
よろしくお願いします!

投稿: azumax | 2010.06.06 01:45

すみません、コメント、気付いてませんでしたm(..)m

表示されないときは、しばらくは表示されない感じがします。5分ぐらい経ってからアプリを起動し直すと表示されるのではないでしょうか?

横幅320dot必要なのは、私は何回かひかかりました。
と並列に
なのを置いて、ボタンの横幅が320dotあることを確認するのがよさげです。

投稿: Salt | 2010.07.10 10:12

タグ消えた。。。

<com.admob.android.ads.AdView 。。。>
と並列に
<Button android:layout_width="fill_parent" 。。。>
なのを置いて、ボタンの横幅が320dotあることを確認するのがよさげです。

投稿: Salt | 2010.07.10 10:14

ずいぶん前ですが、ありがとうございます♪
久しぶりにちょっと確認してみようと思います^^

投稿: azumax | 2010.11.12 21:23

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/20208/48430926

この記事へのトラックバック一覧です: AdMob の設定方法:

« Android のマルチタスク(2) | トップページ | Android NDK r4 »