본문 바로가기
Study/ETC & TIP

Admob google play 버전

by Answer Choi 2015. 2. 12.
반응형



9월 1일자로 기존 admob 서비스가 종료되고, 새로운 admob으로 바뀌면서 기존 라이브러리도 바뀌게 되었습니다. 

 

이제 google play에 publish 할때에는 새로운 admob 라이브러리를 적용 해야 합니다.

 

그리고 기존 admob(admob.com)에서 new admob(app.admob.com)으로 주소도 바뀌었습니다.

 


일단 오늘 중요한건 admob 라이브러리 업데이트 인데요.


기존과 비교를 해보면...


개념

Android SDK

Google Play 서비스

라이브러리를 번들로 포함

 프로젝트의 libs/ 폴더 내에 GoogleAdMobAdsSdk-x.x.x.jar 포함합니다.

Google Play 서비스 라이브러리 프로젝트를 설정하고 앱이 Google Play 라이브러리를 참조하도록 합니다(단계별 도움말).

라이브러리 클래스 가져오기

import com.google.ads.*

import com.google.android.gms.ads.*

AndroidManifest.xmlAdActivity 선언

<activity android:name="com.google.ads.AdActivity"/>

<activity android:name="com.google.android.gms.ads.AdActivity"/>
<meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version"/>

더보기...

AdView 만들기

AdView adView = new AdView(activity, AdSize.BANNER,
    "YOUR_AD_UNIT_ID");

AdView adView = new AdView(activity);
adView.setAdUnitId("YOUR_AD_UNIT_ID");
adView.setAdSize(AdSize.BANNER);

테스트 AdRequest 만들기

AdRequest request = new AdRequest()
    .addTestDevice(AdRequest.TEST_EMULATOR);

AdRequest request = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .build();

AdListener 객체

public interface AdListener {
  public void onReceiveAd(Ad ad);
  public void onFailedToReceiveAd(Ad ad, AdRequest.ErrorCode error);
  public void onPresentScreen(Ad ad);
  public void onDismissScreen(Ad ad);
  public void onLeaveApplication(Ad ad);
}

public abstract class AdListener {
  public void onAdLoaded() {}
  public void onAdFailedToLoad(int errorCode) {}
  public void onAdOpened() {}
  public void onAdClosed() {}
  public void onAdLeftApplication() {}
}

AdListener 설정

class MyClass implements AdListener {
  public void onReceiveAd(Ad ad) {}
  public void onFailedToReceiveAd(Ad ad, ErrorCode error) {}
  public void onPresentScreen(Ad ad) {}
  public void onDismissScreen(Ad ad) {}
  public void onLeaveApplication(Ad ad) {}
}

adView.setAdListener(new MyClass());

adView.setAdListener(new AdListener() {
  public void onAdLoaded() {}
  public void onAdFailedToLoad(int errorcode) {}
  // 필요한 메소드만 구현합니다.
});

XML AdView 작성  광고 로드

<com.google.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adUnitId="YOUR_AD_UNIT_ID"
    ads:adSize="BANNER"
    ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
    ads:loadAdOnCreate="true"/>


// Java 코드는 필요하지 않습니다.

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adUnitId="YOUR_AD_UNIT_ID"
    ads:adSize="BANNER"/>


// Java 코드가 필요합니다.
// testDevices  loadAdOnCreate 속성은
 이상 사용되지 않습니다.AdView adView = (AdView)this.findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .addTestDevice("TEST_DEVICE_ID")
    .build();
adView.loadAd(adRequest);

AdView 주기 메소드

@Override
public void onDestroy() {
  adView.destroy();
  super.onDestroy();
}

@Override
public void onPause() {
  adView.pause();
  super.onPause();
}

@Override
public void onResume() {
  super.onResume();
  adView.resume();
}

@Override
public void onDestroy() {
  adView.destroy();
  super.onDestroy();
}

AdMob 추가 사항 전달

AdRequest adRequest = new AdRequest();
AdMobAdapterExtras extras = new AdMobAdapterExtras()
    .addExtra("color_bg", "AAAAFF")
    .addExtra("color_text", "808080");
adRequest.setNetworkExtras(extras);

Bundle bundle = new Bundle();
bundle.putString("color_bg", "AAAAFF");
bundle.putString("color_text", "808080");
AdMobExtras extras = new AdMobExtras(bundle);
AdRequest adRequest = new AdRequest.Builder()
    .addNetworkExtras(extras)
    .build();


이렇습니다.


먼가 상당히 복잡한데요.;;


기본 admob은 라이브러리를 추가해서(첫번째 항목)

-> manifest에 adactivity추가(3번째 )

-> adview만들기(4번째)

->광고가 나올 activity에 adview추가(마지막 항목)


이렇게 하면 끝났습니다. 

 

자세한건 예전에 포스팅 admob 광고 추가하기 보러가기


그런데 새로운 admob 라이브러리는 google play 서비스로 이관되면서 google play 버전이라고 하는데요.


이번엔 외부 라이브러리를 사용합니다.





위 그림과 같이 admob google play 버전 라이브러리를 다운로드 받아 이클립스에 추가시켜 줍니다.


그리고 manifest에는 아래와 같이 추가시켜 줍니다.


  1.         <!-- ADMOB - Google Play 버전을 위한 선언입니다. -->
  2.         <activity android:name="com.google.android.gms.ads.AdActivity"
  3.             android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
  4.         <meta-data android:name="com.google.android.gms.version"
  5.     android:value="@integer/google_play_services_version"/>
  6.         <!-- ADMOB - 사용하지 않는다면 여기까지 삭제 -->

 

adActivity 주소가 변경이 되고, meta-data가 더 추가되었습니다.

 

그리고 자바파일에선 기존 코드밑에 다음 한줄을 추가시켜 줍니다.

 

  1. adView=(AdView)findViewById(R.id.adView);
  2. AdRequest adRequest = new AdRequest.Builder().build();
  3. adView.loadAd(adRequest);

마지막으로 xml파일에서는 아래와 같이 추가시켜 줍니다.

 

  1. <com.google.android.gms.ads.AdView
  2.     android:id="@+id/adView"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="wrap_content"
  5.     ads:adUnitId="YOUR_AD_UNIT_ID"
  6.     ads:adSize="BANNER"/>


그럼 새로 적용된 admob 광고를 적용할 수 있습니다.^^




반응형

'Study > ETC & TIP' 카테고리의 다른 글

windows 10 upgrade 실패  (1) 2015.07.29
windows 10 업그레이드  (0) 2015.07.28
Wire Shark (network mornitoring)  (1) 2015.07.17
static !!  (0) 2015.03.05
PPA  (0) 2015.02.12

인기글