【Titanium】ListViewにAdMobの広告を表示したい

titanium_admobTitaniumで作ったアプリに広告を表示しようと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上のドキュメントとサンプルを参考に

 

まずはサンプルを貼り付けて動くか確認。

その後、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 >