Bescottee苦しいときは伸びてるとき、楽なときは伸びていないとき

2 リリース済みアプリのAdmobをGoogle Play services対応する方法

admin to Android SDK, development — Tags: ,  

AdmobをGoogle Play services対応する方法

従来のadmobをいれる場合は、admob sdkをダウンロードして、GoogleAdMobAdsSdk-6.4.1.jarを AndroidProject/libs フォルダにいれていましたが、Google Play Service という仕組みが導入されてからはこちらを利用することができます。利用する場合の利点は以下のようなものがあります。一番大きな特徴としては、いままで Admob server側のインタフェースの変更などがあった場合に admob SDKをいれなおして、アプリをビルド、google playへの再アップロードが必要でしたが、その界面をGoogle Play Service が担ってくれるようになるため、admob SDKの更新に伴うアプリの修正、再アップロードなどが不要になる点です。

  • 自動的なadmob 機能の更新
  • 位置情報に基づいた広告機能の提供
  • 柔軟で強力なツール群の利用

Google Play Serviceへの対応方法

  1. 既存のadmob SDK(libs/GoogleAdMobAdsSdk-6.4.1.jar)の削除
  2. /extras/google/google_play_services/libproject/google-play-services_lib を eclipse に import
  3. AndroidManifest.xml への meta-data の追加(*1)
  4. [既存admob]import com.google.ads.* の削除
  5. [既存admob]AdView adView = new AdView(activity, AdSize.BANNER, “YOUR_AD_UNIT_ID”); の削除
  6. import com.google.android.gms.ads.* の import
  7. AdView()の更新対応(*2)
  8. AdRequest()の更新対応(*3)
(*1)

(*2)
AdView adView = new AdView(activity);
adView.setAdUnitId("YOUR_AD_UNIT_ID");
adView.setAdSize(AdSize.BANNER);
(*3)
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

Google Play への更新版のアップロード

上記の対応を行って、更新版アプリをGoogle Playへアップロードできます。更新する場合はいつものようにandroid:versionCode,android:versionNameも数字をあげてapkを作って、同じ鍵で署名をしてアップロードしましょう。

jenkinsなどのCIでビルド・テストを実行するためにコマンドラインからビルドする準備

アプリプロジェクト向けのbuild.xmlの作成方法

android update project --path ./ --target "android-19" --subprojects

/extras/google/google_play_services/libproject/google-play-services_libをライブラリプロジェクト向けにbuild.xmlの作成方法

android update lib-project -p .

アプリのテストプロジェクトを作っている場合は以下のようになります。(アプリプロジェクトのフォルダから実行)

android update test-project --path tests --main ..

ビルドはいつものようにアプリプロジェクトのディレクトリで以下のコマンドで実行できます。

ant clean debug install

テストプロジェクトもある場合は以下のようにできます。

ant clean emma debug install; cd tests; ant clean emma debug install test

参考情報

admob google play service sample AndroidManifest.xml



    

    
    

    
    

    

        

        
            
                

                
            
        
        
        
        
        
        
    


admob google play service BannerCode
/**
 * Example of including a Google banner ad in code and listening for ad events.
 */
public class BannerCodeActivity extends Activity {
    private AdView mAdView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_banner_code_ad_listener);

        mAdView = new AdView(this);
        mAdView.setAdUnitId(getResources().getString(R.string.ad_unit_id));
        mAdView.setAdSize(AdSize.BANNER);
        mAdView.setAdListener(new ToastAdListener(this));
        RelativeLayout layout = (RelativeLayout) findViewById(R.id.mainLayout);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        layout.addView(mAdView, params);
        mAdView.loadAd(new AdRequest.Builder().build());
    }
admob google play service BannerXml
public class BannerXmlActivity extends Activity {
    private AdView mAdView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_banner_xml);

        mAdView = (AdView) findViewById(R.id.adView);
        mAdView.setAdListener(new ToastAdListener(this));
        mAdView.loadAd(new AdRequest.Builder().build());
    }

コメントをどうぞ