※ブログ移転につき再掲
※この情報は古い可能性があります。
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"
} );