アプリの広告表示で iAd と Admob の実測値を過去のエントリーで紹介したが、その結論として、
- CPM は iAd の方が高いので優先的に表示
- でも、iAd の Fill Rate が悪すぎるので、表示エラーになった時に CPM が低いけど Fill Rate ほぼ100%の AdMob を表示する
とまとめた。
実際、Titanium でどうやっているのか紹介しておく。参考になれば幸いです。
iAd を表示するには Titanium に標準でついてくる Titanium.UI.iOS.AdView を使う。AdMob は Appcelerator 提供の Admob module を利用する。Admob moudle のセットアップは以前書いたエントリーを参照ください。
app.js に表示するサンプルコードを示します。
///////////// iAD ///////////////
var win = Ti.UI.currentWindow;
var IadView = require('ui/handheld/iadView');
var iad = new IadView();
var IadErrorView = require('ui/handheld/iadErrorView');
var errorview = new IadErrorView();
iad.addEventListener('error', function(e){
iad.hide();
Ti.API.debug('iAd load Error: ' + e.message);
});
iad.addEventListener('load', function(){
iad.show();
Ti.API.debug('iAd load OK');
});
win.add(iad);
iad.hide();
win.add(errorview);
iad は iAd、errorview は AdMob を表示することで、それぞれ win.add(iad), win.add(errorview) で currentWindow に表示させる。
iad と errorview は上下に重なっている状態にして、iad を隠したり表示したりする。iad が隠された時に errorview が表示される。という仕組み。
iad の error イベント(提供エリア外 or 広告在庫がなくて表示ができない)場合に iad.hide() で隠す。
逆に load イベント(表示できた) 時は iad.show() で表示させる。
// iAD
function iadView(){
var iadview = Ti.UI.iOS.createAdView({
top : 0,
left : 0,
height : 50,
width : 320,
zIndex : 3
});
return iadview;
};
module.exports = iadView;
iAd の表示設定はこんな感じ。zIndex : 3 にしてある。画面上部に表示させるので top : 0 にしてある。
広告のサイズにあわせて、height : 50, width : 320 としている。
// Admob
function admobView(){
var Admob = require('ti.admob');
var admobview = Admob.createView({
top: 0,
left: 0,
width: 320,
height: 50,
zIndex : 1,
adBackgroundColor: 'black',
keywords: '',
publisherId: <Your API Key> // Replace this string with your own API key!
});
return admobview;
}
module.exports = admobView;
Admob の表示設定はこんな感じ。こちらは zIndex : 1 にしていて、zIndex : 3 を設定した iadView の方が上の面にくるところがミソ。
publisherId の部分は自分で取得したIDを入れてください。
これを動かすと、iad ‘load’ の時は
iad ‘error’ の時は
これらの設定は、私が作ったアプリだとメンションとDMだけのやり取りに特化したTwitterクライアント DmAtChat、FacebookとTwitterに同時ポストできる FTupdater で実装されています。

