Titaniumでadmobを利用する(Android編)

検索していくつか類似のページはヒットするものの、Appceleratorが配布しているモジュールと何だか違う説明が多かったので、方法をまとめておきます。

まずは必要なアカウントとして、admobは必要になるので、公式サイトからアカウントをっておきます。
また、後ほど必要になるので、「サイト/アプリケーションの追加」から利用するアプリを登録しておきます。

モジュールの配置

次にadmobのモジュールをダウンロードします。現在のファイル名は

ti.admob-iphone-1.3-android-2.0.1.zip

でした。解凍するとmodulesディレクトリが作成されます。このディレクトリをモジュールを利用するアプリのプロジェクトに配置します。配置するパスはプロジェクト直下(Resourcesディレクトリがあるディレクトリと同じところ)になります。
以下の様な状態になっているならOKです。

$ ls -F
CHANGELOG.txt  LICENSE.txt    Resources/     build.log      modules/
LICENSE        README         build/         manifest       tiapp.xml

配下のdocumentation、exampleディレクトリは、ビルドする時にエラーで止まるので削除してしまいます。1.0は私の環境では上手く動かなかったので、2.0.1のみ配置しました。

tiapp.xmlの修正

以下を変更します。

    <android xmlns:android="http://schemas.android.com/apk/res/android"/>
    <modules/>

modulesはTitanium Studioが新しいと以下の様になっているかも知れません。この場合、タグ内に追記してください。

    <modules>
        <module platform="commonjs" version="2.0.1">ti.cloud</module>
    </modules>

編集後は以下の通り。

    <android xmlns:android="http://schemas.android.com/apk/res/android">
        <manifest android:versionCode="3" android:versionName="2.2"/>
        <uses-sdk android:maxSdkVersion="13" android:minSdkVersion="8" android:targetSdkVersion="13"/>
        <tool-api-level>14</tool-api-level>
    </android>
    <modules>
        <module version="2.0.1">ti.admob</module>
    </modules>
<module version="2.0.1">ti.admob</module>

のバージョンは、利用するモジュールのバージョンに合わせます。

app.jsの修正

// 広告枠定義
Titanium.Admob = require('ti.admob');

var adMobView = Titanium.Admob.createView({
	publisherId:'************',
	testing:false, // default is false
	top: 0, //optional
	left: 0, // optional
	right: 0, // optional
	bottom: 0, // optional
	adBackgroundColor:'FF8800', // optional
	backgroundColorTop: '738000', //optional - Gradient background color at top
	borderColor: "#000000", // optional - Border color
	textColor: "#000000", // optional - Text color
	urlColor: "#00FF00", // optional - URL color
	linkColor: "#0000FF" //optional -  Link text color
});

//listener for adReceived
adMobView.addEventListener(Ti.Admob.AD_RECEIVED,function(){
	//alert("ad received");
	//Ti.API.info("ad received");
});

//listener for adNotReceived
adMobView.addEventListener(Ti.Admob.AD_NOT_RECEIVED,function(){
	//alert("ad NOT received");
	//Ti.API.info("ad NOT received");
});
// 広告描画
win.add(adMobView);

testingは組み込み時はtrueにしておけばテスト用の広告が表示されます。
publisherIdは、admobのページで「サイト及びアプリケーション」を作成しておくと以下の様に表示されます。