【Titanium】ListViewにAdMobの広告を表示したい
Titaniumで作ったアプリに広告を表示しようとAdMobモジュールを使ってみたときの覚書。
環境: Titanium SDK 5.2.2.GA, ti.admob(iPhone) 2.1.0 ti.admob(Android) 2.1.5
まずはAdMobの管理画面にアクセスして広告ユニットIDを作っておく。
ListView内にネイティブ広告を出したいけど、まだベータ版なので今回はListView内にバナー広告を出すのが目標。
AdMob用TitaniumモジュールはGitHubで公開されている
1.iOS向けSimulator上で試す
ti.admob-iphone-2.1.0.zipをダウンロードして配置。
tiapp.xmlに追記
<modules>
<module platform="iphone">ti.admob</module>
</modules>
使い方はGitHub上のドキュメントとサンプルを参考に
- ti.admob/ios/documentation at master · appcelerator-modules/ti.admob | GitHub
- ti.admob/ios/example at master · appcelerator-modules/ti.admob | GitHub
まずはサンプルを貼り付けて動くか確認。
その後、ListView内のテンプレートとして指定して表示してみる。
テンプレートの書き方は下記サイトを参考に。propertiesはサンプルの方に合わせる。
問題なく表示できるのを確認。
2.Android向けに実機で試す
まずはサンプルを参考に表示できるか確認。iOSとプロパティが結構違うので注意。
起動してみるとエラー
[ERROR] TiExceptionHandler: (main) [1173,2046] ----- Titanium Javascript Runtime Error -----
[ERROR] TiExceptionHandler: (main) [0,2046] - In ui/pages/common/posts-comments.js:1,69
[ERROR] TiExceptionHandler: (main) [0,2046] - Message: Uncaught TypeError: Object #<Admob> has no method 'createAdMobView'
[ERROR] TiExceptionHandler: (main) [0,2046] - Source: .call(this),getData.call(this);var e=require("ti.admob");this.add(e.createAdMo
[ERROR] V8Exception: Exception occurred at ui/pages/common/posts-comments.js:1: Uncaught TypeError: Object #<Admob> has no method 'createAdMobView'
「createAdMobView」メソッドがないって怒られた。ソースをみるとcreateViewでできそう。
createViewで試すと成功。
気付いた点
- publisherIdはユニットIDでOK
- 横幅を320dp以下で指定すると表示されない
- エラーが出力されるけど表示はされる。
[ERROR] Ads: JS: Uncaught ReferenceError: AFMA_ReceiveMessage is not defined (null:1)
今度はListViewのテンプレートで試してみる。
エラー
TiAdmob is not defined
になる。
どうやらapp.jsに
var TiAdmob = require('ti.admob');
を付けると大丈夫らしい。
今度は何もエラーを吐かずにアプリ自体落ちる。
モジュールをビルドした環境が古いので最新でビルドしてみた。
やっぱり落ちる。
GitHubで公開されているAdMobのサンプルを参考に書き直す必要がありそう。
< 2016/05/24 Modified >
AdMobはFirebaseに統合されてこのリンクはなくなった。
つづく(たぶん)。。。
< Related Posts >