AdMobを組み込む方法
AdMob SDKをダウンロード後、組み込み方がよく分からなくて意外とはまったのでまとめ。
基本的には下記のドキュメントの通りですが、広告がない場合は表示されなかったり、端末によって表示されなかったりしました。AdMob側の設定で、リフレッシュレートを短め、Google AdSenseを有効にして掲載率を高めて実装した方がよいかなと思います。
Google AdMob Ads Android Fundamentals
Google AdMob Ads Android Intermediate
GoogleAdMobAdsSdk-4.1.1.jarをBuild Pathに追加
プロジェクトを右クリック > Properties > Java Build Path > Libraries
AndroidManifest.xmlにActivityとPermissionを追加
<manifest ...> <application android:icon="@drawable/icon" android:label="@string/app_name"> ... <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation"/> </application> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> </manifest>
AdMob差し込み用のレイアウトを追加
<LinearLayout android:id="@+id/ad" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" />
onCreateメソッドに生成コードを追加
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... AdView adView = new AdView(this, AdSize.BANNER, "パブリッシャーID"); adView.setAdListener(this); adView.loadAd(new AdRequest()); LinearLayout layout = (LinearLayout)findViewById(R.id.ad); layout.addView(adView); }
AdListenerを実装
public class Main extends Activity implements AdListener{ ... @Override public void onReceiveAd(Ad ad) { Log.d(TAG, "recive ad"); } @Override public void onFailedToReceiveAd(Ad ad, ErrorCode errorCode) { Log.d(TAG, "failed to receive ad (" + errorCode + ")"); if(ad.isReady()){ ad.loadAd(new AdRequest()); } } @Override public void onDismissScreen(Ad ad) { } @Override public void onLeaveApplication(Ad ad) { } @Override public void onPresentScreen(Ad ad) { } }
こんな感じで表示できました。