titaniumでモジュールを使ってadmobを表示


admob

Titaniumの情報も古いのばっかりになってきましたね。。
1ソースコードでios,android同時対応にはコツが必要で結構難しいっていうのが見えてきて、
だったら~ みたいに思われているのかもしれません。
※後、時代はunityっしょ!みたいな流れもあるかも。
自分は少しコツがつかめて、難しいアプリ作ってないってのもありますが、
だいぶ楽に同時展開できているので、まだまだtitaniumでがんばります。

で、タイトルの件ですが、
ずっとアプリはnendとi-mobileをwebviewで自分で配分決めてやっていたので、
admobは使った事なかったんですが、海外にアプリ公開するにあたって
必要だったので導入したところ、後から見ると一瞬で片付く問題で3日程ハマったので、
それのメモです。

●admobのSDK的な奴
https://github.com/appcelerator/titanium_modules/tree/master/admob/mobile

・android
https://github.com/appcelerator/titanium_modules/blob/master/admob/mobile/android/dist/ti.admob-android-2.1.1.zip?raw=true

・ios
https://github.com/appcelerator/titanium_modules/blob/master/admob/mobile/ios/ti.admob-iphone-1.6.0.zip?raw=true

ここにappceralator公式のモジュールがあるので、
それをDLして組み込みます。
※titaniumのモジュール導入方法 >> Titaniumのmodule追加方法

それで後はこんなかんじで、viewを追加してfireEventすればいいんですが、ここでハマります。

Ti.App.addEventListener('showAds',function(){
  var admob = require('ti.admob');
  ad = admob.createView({bottom:0,height:50,adUnitId:'xxxxxxxx'});
  window.add(ads);

});

このままiphoneでテストするとうまく表示されるんですが、
androidにもっていくとクラッシュ!

これでずっとはまっていました。

でどうすればいいかというと実は答えは簡単で、

//ios
ad = admob.createView({bottom:0,height:50,adUnitId:'xxxxxxxx'});

//android
ad = admob.createView({bottom:0,height:50,publisherId:'xxxxxxxx'});

とするだけです。
なぜかパラメータ名が違うんです。。

こういう小さい所がちょっとづつ違うのがtitaniumのイケてないとこなんですよね。
なんかphpみたいですね。


Leave a Reply