2014年3月19日水曜日

Android向けAdMob SDKからGoogle Play 開発者サービス SDKへの移行

2014年8月1日でこれまで利用してきたAndroid向けAdMob SDKのサポートが終了する
これに伴って旧来のAdMob SDKを利用しているアプリはGoogle Playへの新規登録やアップデートができなくなる。但し引き続き広告配信は可能。
GoogleはGoogle Play開発者サービスへの移行を推奨している。ここでは移行の手順を簡単に纏めておく。なお以下はEclipseで開発していることを前提にしている。Android Studio等他の環境を使用している場合は参考先を確認すること。

Google Play Services SDKのインストール


Google Play開発者サービスを使用するにはまず開発環境にGoogle Play Services SDKをインストールする必要がある。

  • Android SDK Managerを立ちあげる。Eclipseからならメニューのwindow → Android SDK Manager を選択。
  • ExtrasのGoogle Play servicesをインストール。対象端末はAndroid 2.3以上。
  • Buildに使用するSDKのバージョン(EclipseならPackage ExplorerのProperties - Android - Project Build Targetで指定するSDKのバージョン)のGoogle APIsもインストールする。
  • メニューの File → Importを選択しダイアログを表示させる。
  • Android → Existing Android Code into Warkspace を選択し Next ボタンをクリックしダイアログを表示する。
  • AndroidのSDKをインストールしたディレクトリの下に sdk/extras/google/google_play_services/libproject/google-play-services_lib/ があるはずなので、Root Directoryにこのディレクトリを記入する。
  • Copy projects into workspaceをチェックする。これによって現在のワークスペースにライブラリのコピーが作成される(これ大事らしい)。
  • Finishボタンをクリックしてワークスペースへライブラリプロジェクトをインポートする。

Google Play Servicesのライブラリを自分のプロジェクトから参照する


Google Play Services SDKをインストールしたら、自分のプロジェクトからそれを利用できるようにライブラリを参照する。
なおlibディレクトリに入っている古いAdMob用ライブラリ(GoogleAdMobAdsSdk-*.*.*.jar)は衝突するので削除しておく。

  • Package ExplorerでAdMobを利用するプロジェクトを右クリックしPropertiesを選択しダイアログを表示させる。
  • Androidを選択し下段のLibraryのAddボタンをクリック。
  • google-play-services_libを選択しOKボタンを押す。
  • Applyボタンをクリック(必要?)。
  • OKボタンを押し、ダイアログを閉じる。

Manifestファイルを編集


Manifestファイルを開き<application>エレメントの子エレメントとして以下の記述を追加する。

<application>
省略...
    <activity android:name="com.google.android.gms.ads.AdActivity"   android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    <meta-data android:name="com.google.android.gms.version"
                            android:value="@integer/google_play_services_version" />
省略...
</application>

Proguardの設定


(参考:Set Up Google Play Services SDK)
Proguardが必要なクラスを削除しないようにプロジェクトディレクトリ下にproguard-project.txtを作成する。これは google-play-services_lib ライブラリプロジェクトの下にあるものをコピーしてくれば良い。


ソースコードの修正


AdMobの使い方は様々なのであくまで一例。
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;

// 省略

// なにかの関数の中。onResumeが良い?

// Google Play servicesが利用可能か確認。
int res = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (res == ConnectionResult.SUCCESS) {
    // Google Play service使用可能
  // adView を作成する
  adView = new AdView(this);
    // MY_ADD_UNIT_IDには自分の広告ユニットIDを入れる。
  adView.setAdUnitId("MY_ADD_UNIT_ID");
  adView.setAdSize(AdSize.BANNER);
   
  // LinearLayout をルックアップする
  LinearLayout layout = (LinearLayout)findViewById(R.id.my_layout);

  // adView を追加
  layout.addView(adView);

  // 広告のリクエストを行い広告を表示する。
  // またテストデバイス(ここではエミュレータ)では
    // 広告が表示されないようにする。
  AdRequest adRequest = new AdRequest.Builder()
  .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
  .build();
  adView.loadAd(adRequest);
}

0 件のコメント:

コメントを投稿