2014年5月5日月曜日

Google Mobile Ads SDK

Google Mobile Ads SDK

開発環境:Eclipse

これまではAdMobについては、GoogleMobileAdsSdkAndroid.zip 6.4.1を使ってきましたが、もはや時代遅れとなってしまいました。Androidアプリは、August 1, 2014以降は、新規リリース版やアップデート版ではAdMob SDKを使えなくなってしまいます。

日本語による概要は次のとおり。
従来の「AdMob SDK」にいくつかの大幅な改良を加えた最新のバージョンを、「Google Mobile Ads SDK」と名称を変え、Google Play 開発者サービス 4.0 の一部としてご利用いただけます。
Google Mobile Ads SDK Downloadsの「Android (Google Play)」のタブを読みましょう。
すると、「Google Mobile Adsを読みなさい」とのことです。
これを読むと、「Set Up Google Play Services SDKを読め」と書いてあります。
すると、「Eclipseで、Window > Android SDK Managerをクリックして、Google Play servicesをインストールしなさい」と書いてあります。ので、そうしましょう。

また、Google Mobile Adsでは、「端末の次のフォルダーに、サンプルがあるので、使ってみなさい」とのことです。
<android-sdk>/extras/google-play-services/samples/ads
でも、実際に存在するのは、次の名前のフォルダーです。
\sdk\extras\google\google_play_services\samples\admob
むむむ!フォルダー名の付け方について、ドキュメントと実装とが異なりますが、正確性を要求するのは今は遠慮しておきましょう。
とにかく、このフォルダーをimportしましょう。とりあえず、この時点では、importするだけに留めておきます。そして、このimportしたサンプルを、この文書では「自分がこれから開発するアプリ」としておきます。

スタート ガイドを読みます。すると、「Set Up Google Play Services SDKを読め」と書いてあります。
そこには、次のように書いてあります。
If you are using Eclipse, import the library project into your workspace. Click File > Import, select Android > Existing Android Code into Workspace, and browse to the copy of the library project to import it.
この英語をメッチャ意訳すると、次のような感じです。
EclipseのPackage Explorerを使って、\sdk\extras\google\google_play_services\libproject\google-play-services_lib\フォルダーをimportしなさい。import先は、当然ながら、自分がこれから開発するアプリのプロジェクトが存在するworkspaceです。
そして、重要なのが、Package Explorerで、(このimportした)google-play-services_libプロジェクトを開いた状態にしておくということです。「Close Project」をしてはならないのです。物好きな人はClose Projectをしてみてください。そうすると、私が陥った罠に出会えます。
当然ながら、自分が開発するアプリのプロジェクトも開いた状態にしておきます。
(かつての)AdMob SDKであれば、自分のアプリのlibsフォルダーに.jarファイルをimportする方式だったのですが、Google Mobile Ads SDKの場合はlibsフォルダーを参照するのでは無く、google-play-services_libプロジェクトを参照する、という方式です。そういう意味で、libsフォルダーの中身は空っぽです。
なお、/libs/フォルダーにGoogleAdMobAdsSdk-6.4.1.jarファイルが存在する場合、それを削除してください。削除しない場合、エラーが発生します。
(このimportした)google-play-services_libプロジェクトを参照する手順は、スタート ガイドの「SDK の導入」の「1. Eclipse ワークスペースに Google Play 開発者サービス ライブラリ プロジェクトを追加、参照する」に書かれています。
これで、エラーを発生させることなくプロジェクトを再構築できるようになります。って、サンプルプロジェクトなので、当たり前じゃ!。
「当たり前じゃ!」と思うのは甘い。次のエラーが発生します。むむむ!
E/GooglePlayServicesUtil(11153): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
「なんでや?サンプルやろが?」という疑問を持つのは、今は遠慮しておきましょう。
解決策はGoogle Mobile Ads SDK に関するよくある質問に書かれています。ただし、このページの最下端右端にある言語設定をEnglishに設定してください。日本語では解決策は書かれていません。むむむ!
解決策は次のとおりです。
I keep getting the error 'The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.'
You can safely ignore this message. Your app will still fetch and serve banner ads.
とにかく、「無視すれば良い」ってことですね。って、「どこが解決策やねん」というツッコミを入れるのは、今は遠慮しておきましょう。
そして「なんで日本語版ではこの解決策は掲示されて無いねん」という疑問を持つのも、今は遠慮しておきましょう。


/GoogleAdsSampleActivity/res/values/strings.xml内に次の1行があります。
<string name="ad_unit_id">INSERT_YOUR_AD_UNIT_ID_HERE</string>
このINSERT_YOUR_AD_UNIT_ID_HEREの部分にユニット ID(AdMob パブリッシャー ID)を指定します。ユニット IDの形式は、ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN のような形式になります。


確認はしてませんが、google-play-services_libプロジェクトと、自分がこれから開発するアプリのプロジェクトにおけるandroid:minSdkVersionやandroid:targetSdkVersionは一致させておいた方が良いのかもしれません(知らんけど)。


提案的改良点
/GoogleAdsSampleActivity/res/layout/activity_banner_xml.xml内の
        ads:adSize="BANNER"を
        ads:adSize="SMART_BANNER"に変えた方が良いでしょう。


後は、サンプルプログラムを調べて、プログラムの仕方を学習していけばよろしゅうございます。


所感
Google Mobile Ads SDKの実装は、まるでパズルを解いているようだ。皆さん、楽しんでいますか?

0 件のコメント:

コメントを投稿