※この情報は古い可能性があります。
Androidアプリへの広告掲載方法については ”Android Admob ” でググれば色々出てくるので詳細は省きますが、本日テスト的に実装してみると、何故か紹介されてる方法では広告が表示されません。
結局のところ良くわかってないのですが、一応解決したので参考として記事を書いてみます。
最近自分で広告掲載に挑戦して散々悩んだ人向けです)
まず、AdMob Android SDK がバージョンアップ(20101012-ANDROID)しているようです。
なので関係あるかな?と思ってSDKの説明書(PDF)を参照してみると、AndroidManifest.xml内の タグの前に、以下のコードを追加しろ、という記述あり。
<meta-data android:name="ADMOB_PUBLISHER_ID" android:value="アンタのIDココ!"> <activity android:configchanges="orientation|keyboard|keyboardHidden" android:name="com.admob.android.ads.AdMobActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <receiver android:exported="true" android:name="com.admob.android.ads.analytics.InstallReceiver"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"></action> </intent-filter> </receiver> </activity></meta-data>前のバージョンのAdMobSDKは良く知らないのですが、良くWebで紹介されてる記述に比べると内容が増えてます。
attrs.xmlでは
<attr name="testing" format="boolean" />という記述もなかったので削除し、同様にレイアウトファイル上の myapp:testing の所を削除します。
<com.admob.android.ads.AdView android:id="@+id/ad" android:layout_width="fill_parent" android:layout_height="wrap_content" myapp:backgroundColor="#000000" myapp:primaryTextColor="#FFFFFF" myapp:secondaryTextColor="#CCCCCC" myapp:testing="true" <!-- ←これも不要 --> />
このテストモード属性は関係ないかもしれないけど、これだけじゃテスト用の広告は出ませんでした。テスト用の広告をエミュレーターで出すには、広告を出したいActivityのonCreateで以下のようにする。
AdManager.setTestDevices( new String[] { AdManager.TEST_EMULATOR } );実機でテスト広告を出したい場合は、とりあえずそのまま実機でテストアプリを実行させると、LogCatに
To get test ads on device use AdManager.setTestDevices( new String[]{"xxxxxxxxxxxxxxxxxxxxxxx"})
と、メッセージが表示されるのでこれの xxxxxxxxxxxxxxxxx の目でコピー(笑)します。通常のログだと探すの大変なので、 タグ AdMobSDK でフィルタを作っておくとすぐわかると思います。
onCreateのコードに目コピーした値を以下のように書けば実機でもテスト広告が表示される。
AdManager.setTestDevices( new String[] { "xxxxxxxxxxxxxxxxxxxxxx" } );