안녕하세요. 광고를 AdMob으로 처음 붙여보는데 궁금하게 많아 질분드립니다. ^^:
곧 출시를 앞둔 어플에 광고를 붙여보려고 하는데... 경험이 없어서요.
구글제공 샘플코드를 보고 광고를 올렸는데... 샘플코드 정도만 해도 되는지 잘 모르겠네요.
일단 테스트폰에서 광고는 잘 뜨고 있습니다. ^^:
/*
* AdMob 샘플
*/
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
public class Activity_AdMob extends Activity{
public static final String TAG = "";
//테스트 여부 ( true : 에뮬 , false : 디바이스 )
public static Boolean IS_ADMOB_TEST = true;
LinearLayout ll_admob;
public static final String TEST_DEVICE_ID = "AAAAAAAABBBBBBBBCCCCCCCDDDDDDDEE";
private AdView adView;
@Override
protected void onCreate(Bundle savedInstanceState) {
//AdMob광고설정부분
// Create an ad.
adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-0101010101010101/0101010101");
adView.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
Log.d(TAG, "onAdClosed");
}
@Override
public void onAdFailedToLoad(int error) {
String message = "onAdFailedToLoad: " + getErrorReason(error);
Log.d(TAG, message);
}
@Override
public void onAdLeftApplication() {
Log.d(TAG, "onAdLeftApplication");
}
@Override
public void onAdOpened() {
Log.d(TAG, "onAdOpened");
}
@Override
public void onAdLoaded() {
Log.d(TAG, "onAdLoaded");
if(ll_admob.getVisibility()==View.GONE){
ll_admob.setVisibility(View.VISIBLE);
}
}
});
// Add the AdView to the view hierarchy. The view will have no size
// until the ad is loaded.
ll_admob = (LinearLayout) findViewById(R.id.adFrame);
ll_admob.addView(adView);
if(IS_ADMOB_TEST) { // 애뮬에서 테스트
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(TEST_DEVICE_ID)
.build();
// Start loading the ad in the background.
adView.loadAd(adRequest);
} else {
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (adView != null) {
adView.resume();
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
if (adView != null) {
adView.pause();
}
super.onPause();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
}
질문 드립니다.
1. 위 로직대로 하면 어플에서 광고가 문제없이 될까요? 위 로직을 간단하게 요약하면... 광고가 실리는 레이아웃 초기값이 GONE상태에서 광고가 로드되면 VISIBLE 되는것 외에는 구글 샘플코드 그대로입니다. 그리고 제 경우에 데이터를 끈상태에서 실행시키면 광고가 없는 어플처럼 실행이 되는데... 보통 이렇게 처리하는게 맞는건지도 궁금합니다.
2. 구글링을 해보니 광고를 여러개 놓고 돌리는경우가 있는데 그렇게 하는게 일반적인것인지, 여러개사용해도 큰 유익이 없기때문에 한개만 사용하는게 좋은것인지 궁금합니다. 제 어플은 유틸리티어플로 한국, 일본(구글번역으로 거의 동시지원), 중국(추후번역후 지원) 정도를 대상으로 배포하려고 계획하고 있습니다.
3. AdMob은 광고요청인 기본값 60초로 되어있는것으로 알고있습니다. 코드상에서 adView.loadAd(adRequest); 딱한번만 실행시켜주면 자동으로 모든 요청처리가 이루어지는건지도 궁금합니다. 앱을 실행후 광고화면은 Pause -> Resume 상태를 반복합니다.
-_-: 기초적인 질문 죄송합니다. 광고쪽은 완전 무지해서요.
3. 좋은 샘플코드가 있다면 공유 부탁드리겠습니다. 광고관련해서는 구글링으로 검색을 해도 거의 구글제공샘플 범주를 벗어나는경우가 없네요. 리스너를 등록하거나 네트워크 및 어플 상태변화에 따른 대응을 해야할거같은데... 감이 안오네요.
이곳에서 많은 도움을 받았는데 직접적인 질문은 처음해보는거 같습니다. ^^:)> (__)꾸벅~




아는것만 답변드릴게요.
1번은 저는 XML방식으로 해서 잘모르겠구요.
2번은 보통 여러개로하는 이유는 Activity별로 광고 노출을 관리하기위해서 여러개로 합니다.
하나로 하셔도 관계없습니다.
3.한번만 해주면 알아서 갱신됩니다.
4.움 저는 샘플 그대로 거의 써서 이부분은 모르겠네요.