2010/10/30

Androidアプリに広告表示

※ブログ移転につき再掲
※この情報は古い可能性があります。

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"
              } );

0 件のコメント:

コメントを投稿